M5: insert、repalce、delete、truncate语句的使用

5.1 insert语句

5.1.1 插入全部字段
insert into 表名 values(值1,值2,值3,....);
5.1.2 插入部分字段
insert into 表名(字段1,字段2,字段3,...) values(值1,值2,值3,...);
5.1.3 插入多条数据
insert into 表名[(字段1,字段2,字段3.....)]
values
(值1,值2,值3,...),
(值1,值2,值3,...),
(值1,值2,值3,...),
......
5.1.4 insert与select的使用
insert into 表名1[(字段1,字段2,字段3,...)]
select 字段1,字段2,字段3... from 表名2;

例子:
insert into message(`id`,`name`)
select `id`,`name` from student; 

5.2 replace语句的使用

5.2.1 repalece与insert的区别

若一张表中存在主键约束或唯一约束,当要插入的数据的主键字段或唯一约束字段,与表中原有数据冲突,那么insert会插入失败,此时需要用replace语句进行插入。插入时,会删除表中原有的冲突记录,然后再插入新记录。

例子如下:

create table if not exists student(
	id int(8) not null auto_increment,
 	`name` char(20) not null,
    primary key(`id`)
)Engine=InnoDB default charset = utf8;

上述语句创建了一个 student 表,其中有 学号姓名 两个字段,其中学号作为主键。

假设表内数据如下:

idname
123456张三

此时我们执行一下语句便会报错:

insert into student values(123456,'李四');

错误:1062 - Duplicate entry '123456' for key 'PRIMARY'

但是此时我们使用 replace 语句便可以插入成功:

replace into student values(123456,'李四');

输出信息:
> Affected rows: 2
> 时间: 0.002s

表内数据如下:

idname
123456李四
5.2.2 语法

语法一:

replace into 表名[字段1,字段2,字段3,...] values(值1,值2,值3,...);

语法二

replace into 表名1[字段1,字段2,字段3,....] select 字段1,字段2,字段3,... from 表名2;

语法三

replace into 表名 set 字段1=值1,字段2=值2,字段3=值3,...

5.3 修改表记录

5.3.1 语法
update 表名 set 字段1=值1,字段2=值2,字段3=值3,...
where 条件;

例子:
update student set `name`='王二麻子' where id=123456;
5.3.2 删除表记录
delete from 表名 where 条件;

例子:
delete from student where id=1;
5.3.3 清空表记录
Truncate [table] 表名;

例子:
truncate table student;

注意:

1.使用truncate清空表记录之后,表内的auto_increment计数器将回到初始值;

2.truncat语句并不适用于参与视图和索引的表,此时,需要使用delete语句删除记录。

3.truncate语句比delete语句耗费的系统与事务日志资源少,delete每删除一条记录,都会向事务日志中插入一条记录。

随便一提,删除表的语句是:

drop talbe 表名;

例子:
drop table student;

2021.07.24

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值