MySQL学习-表记录的增、删、改操作

表记录的插入

使用 insert 语句进行插入:

insert into 表名[(字段列表)] values (值列表);

(字段名列表) 可以不用写,但是后面的 (值列表) 一定要和相应字段一一对应。

对自增型(AUTO_INCREMENT)的字段,可以插入 NULL 值,执行插入命令后会自动将对应字段变为下一个编号。需要注意的是,如果最后一个自增字段的值为 n,删除该行记录后,再插入新的语句,自增字段的编号会跳过 n,即新的自增字段会是 n+1。

示例:

 

使用 insert 语句批量插入:

insert into 表名[(字段列表)] values(值列表1),(值列表2),...,(值列表n);

和上面的插入方式一样,多个值列表用逗号隔开,且值列表每个值一定要和相应字段一一对应。

示例:

使用 insert...select 语句插入结果集:

insert into 目标表名[(字段列表1)] select (字段列表2) from 源表 where 条件表达式;

用于将源表的查询结果添加到目标表中,如果两个表的结构相同,(字段列表1) 可以不用写。

示例:

使用 replace 语句插入:

格式1: replace into 表名[(字段列表)] values(值列表)
格式2: replace [into] 目标表名[(字段列表)] 查询语句
格式3: replace [into] 表名 set 字段1 = 值1, 字段2 = 值2,...,字段n = 值n;

格式 1 和格式 2 在用法上和 insert 语句类似,不多说。格式 3 则与 update 语句类似,将某个字段值替换为新的值。

replace 顾名思义,就是代替的意思,insert 语句和 replace 语句最大的不同在于,如果 replace 插入的字段与表中的某个字段相同,且该字段满足唯一性约束,那么新插入的这个记录就会替换掉原来的记录(相当于删除掉原来的字段在插入),注意删除的记录不能违背外键约束条件。

示例:

表记录的修改 

使用 update 语句进行修改: 

update 表名 set 字段1 = 值1, 字段2 = 值2,...,字段n = 值n [where条件表达式];

where 条件表达式用于指定修改的位置,若不写,则将整个该字段的值修改。

示例:

表记录的删除

使用 delete 语句进行删除:

delete from 表名 [where 条件表达式];

where 条件表达式用于删除指定位置的记录,若不写,将删除整个表的所有记录。

示例:

使用 truncate 语句进行清空:

truncate [table] 表名;

和 “delete form 表名;” 作用大致相同,都是将表中的所有数据删除。

在某些情况下,两者还是存在着差异。比如,delete是 dml 操作,truncate 是 ddl 操作,delete删除整个表的数据时会产生大量的回滚,而 truncate 不会;truncate 删除的表若是父表,那么该命令将永远执行失败;truncate 会重置自增字段的计数器等等。关于两者详细的不同可以看这个:delete和truncate的区别 - 韦邦杠 - 博客园 (cnblogs.com) 。

 示例:

相关参考:《MySQL 数据库基础与实例教程》

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什巳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值