插入(insert)

本文详细介绍了C++标准库中string类的insert()成员函数的各种用法,包括使用迭代器插入字符、指定位置插入字符串及其子串、批量插入字符等操作。

 

插入(insert)

语法:

  iterator insert( iterator i, const char &ch );
  basic_string &insert( size_type index, const basic_string &str );
  basic_string &insert( size_type index, const char *str );
  basic_string &insert( size_type index1, const basic_string &str, size_type index2, size_type num );
  basic_string &insert( size_type index, const char *str, size_type num );
  basic_string &insert( size_type index, size_type num, char ch );
  void insert( iterator i, size_type num, const char &ch );
  void insert( iterator i, iterator start, iterator end );

insert()函数的功能非常多:

  • 在迭代器i表示的位置前面插入一个字符ch,
  • 在字符串的位置index插入字符串str,
  • 在字符串的位置index插入字符串str的子串(从index2开始,长num个字符),
  • 在字符串的位置index插入字符串str的num个字符,
  • 在字符串的位置index插入num个字符ch的拷贝,
  • 在迭代器i表示的位置前面插入num个字符ch的拷贝,
  • 在迭代器i表示的位置前面插入一段字符,从start开始,以end结束.
### 达梦数据库 `INSERT` 语句使用方法 #### 插入单条记录 在达梦数据库中,可以使用标准 SQL 的 `INSERT INTO ... VALUES (...)` 语法来插入一条新记录。此操作会向指定表中添加一行数据。 ```sql -- 向 student 表中插入一条学生信息 INSERT INTO student (sno, sname, sex, age, college) VALUES ('S001', '张三', '男', 22, '电子信息工程学院'); ``` 上述命令将创建一个新的学生记录并将其加入到 `student` 表里[^3]。 #### 批量插入多条记录 为了提高效率,当需要一次性插入多个相同结构的数据项时,可以通过一次性的 `INSERT` 语句完成: ```sql -- 同时向 student 表中插入三条不同学生的记录 INSERT ALL INTO student (sno, sname, sex, age, college) VALUES ('S002', '李四', '女', 21, '计算机科学系') INTO student (sno, sname, sex, age, college) VALUES ('S003', '王五', '男', 23, '机械制造系') INTO student (sno, sname, sex, age, college) VALUES ('S004', '赵六', '女', 20, '土木建筑系') SELECT * FROM dual; ``` 这里采用的是 Oracle 风格的批量插入方式,在某些版本的达梦数据库可能不完全兼容;对于更广泛的适用性建议按照下面的方式执行批处理插入: ```sql -- 使用 UNION ALL 实现批量插入 INSERT INTO student (sno, sname, sex, age, college) SELECT 'S005', '孙七', '男', 24, '物理化学系' UNION ALL SELECT 'S006', '周八', '女', 22, '生物医学部'; ``` 这种形式更加通用,并且能够被大多数关系型数据库管理系统所接受。 #### 获取最后插入 ID (`LAST_INSERT_ID`) 如果希望获取刚刚通过 `INSERT` 操作新增加的那一行对应的自动增长主键值,则可调用特定函数 `LAST_INSERT_ID()` 来获得该返回值。需要注意的是这个特性依赖于具体的数据库配置和支持情况。 ```sql -- 插入之后立即查询最新产生的ID编号 INSERT INTO article(title,content) VALUES('测试文章','这是一篇用于测试的文章...'); SELECT LAST_INSERT_ID(); ``` 以上代码片段展示了如何在一个事务内连续地先做插入再读取最新的自增字段值[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值