insert into 表名(列名1,列名2,...) values (值1,值2,...)
注意点:
1、插入的值的类型要与列的类型一致或兼容
2、不可以为null的列必须插入值,可以为null的列(nullable)要么将null作为值插入,要么可以同时省略列和列对应的值不写。
3、列的顺序是可以调换的,但要求对应的值也同时匹配调换
4、列数和值的个数必须一致
5、可以省略列名,但要求列的顺序和表中列的顺序一致,并且值为null的不可以省略
insert into 表名
set 列名=值,列名=值,...
对比这两种插入方式
1、方式一可以支持插入多行,方式2不支持insert into 表名 values (值1,值2,...) ,(值1,值2,...) ,(值1,值2...);
- 1
- 2
- 3
- 4
2、方式一支持子查询,方式二不支持子查询
insert into 表名(列名1,列名2,...) select语句
- 1
- 2
所以方式一使用的场景更多
update 表名
set 列=新值,列=新值,...
where 筛选条件;
# 修改beauty表中姓唐的女生的电话为13887888881
update beauty set phone = '13887888881'
where name like '唐%';
# 修改boys表中id号为2的名称为张飞,年龄为22
update boys set name = '张飞',age = 22
where id = 2;
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件
# 修改张无忌的女朋友的手机号为114
update boys b
inner join beauty b
on bo.`id`=b.`boyfrind_id`
set b.`phone`='114'
where bo.`boyName`='张无忌';
作用:删除表中的数据
1、单表的删除
# 删除表中所有数据
delete from 表名;
# 删除表中指定条件的数据
delete from 表名 where 筛选条件;
例题:
# 删除手机号以9结尾的女生信息
delete from beauty where phone like '%9';
2、多表的删除
# 删除张无忌的女朋友的信息
delete 表1的别名,表2的别名
from 表1,表2
inner|left|right join 表2 别名
on 连接条件
where 筛选条件;
例题:
# 删除张无忌的女朋友的信息
delete b
from beauty b
inner join boys bo
on b.`boyfriend_id`=bo.`id`
where bo.`boyName`='张无忌';
作用:删除表中所有数据
truncate table 表名;
delete和truncate语句的区别
1、delete可以加where条件,truncate不能加
2、truncate删除效率比delete高
3、如果要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始
4、truncate删除没有返回值,delete删除有返回值
5、truncate删除不能回滚,delete删除可以回滚