🍎插入
insert into 表名(列名,...)
values(值,.....);
- 使用语法1需要注意的问题:
1️⃣插入的值的类型要与列的类型一致或者兼容
2⃣️不可以为null的列必须写明插入的值,可以为null的在写列名的时候可以将其省略,或者显式的将其设置为null
3⃣️列的顺序可以调换,只要列的位置与值的位置一一对应即可
4⃣️列的个数和值的个数必须一致
5⃣️可以省略列名,默认所有列,且列的顺序与表中列的顺序一致
insert into beauty
values(18,'RB','女',null,'119',null);
insert into 表名
set 列名=值,列名=值,列名=值....
#多行插入
insert into beauty
values(18,'RB','女',null,'119',null),
(45,'RB','女',null,'119',null),
(16,'RB','女',null,'119',null);
#子查询
insert into beauty
select * from beauty_new
where id<1004;
🍊修改
update 表名
set 列名= 新值,列名= 新值,列名= 新值...
where 筛选条件;
# sql92
update 表名1,表名2
set 列名= 新值,列名= 新值,列名= 新值...
where 连接条件
and 筛选条件;
#sql 99
update 表名1
right|left|inner join 表2
on 连接条件
set 列名= 新值,列名= 新值,列名= 新值...
where 筛选条件;
- 多表修改的例子:修改没有男朋友的女神的男朋友编号都为2
update boys bo
right join beauty b on bo.id = b.boyfriend_id
set b.boyfriend_id = 2
where bo.id is null;
🍋删除
方式一
delete from 表名 where 筛选条件;
#sql92
delete 表1的别名[此处想删除哪个表的记录就写哪个表的表名]
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
#sql99
delete 表1的别名[此处想删除哪个表的记录就写哪个表的表名]
from 表1 别名
left|right|inner join 表2 别名
on 连接条件
and 筛选条件;
方式二:清空表内的数据
truncate table 表名;
两者的比较
- delete可以加where条件,truncate不能加
- truncate删除,效率高一点点
- 假如要删除的表中有自增长列,如果用delete删除后再插入数据,自增长列的值从断点开始增加;而truncate删除后,再插入数据,自增长列的值从1开始增加
- truncate删除没有返回值,delete删除有返回值
- truncate删除不能回滚,delete删除可以回滚