目录
插入(insert)
方式一(经典插入)
语法
insert into 表名(列名,...) values(值1,...);
特点
-
beauty表的字段
-
插入的类型要与列的类型一致或兼容
- 兼容指的是两个数据类型之间可以互相转换,就比如从网页获取到的整数类型都是以字符的方式获取的,比如123,获取到的就是’123’。但是字符类型的’123’可以转换为整数类型,这就叫可以兼容。但如果获取到的信息为’john’,这就没法转换成整数类型,即不兼容。
- 兼容指的是两个数据类型之间可以互相转换,就比如从网页获取到的整数类型都是以字符的方式获取的,比如123,获取到的就是’123’。但是字符类型的’123’可以转换为整数类型,这就叫可以兼容。但如果获取到的信息为’john’,这就没法转换成整数类型,即不兼容。
-
不可以为null的列必须插入值,可以为null的列(nullable)如果不想插入值,如何插入
- 方式一:插入的值直接填null
- 方式二:插入的字段和值都不填写(如果预先为字段设置了默认值,会填入默认值,否则会填入null)
- 方式一:插入的值直接填null
-
列的顺序可以调换,但是需要值和字段一一对应
-
列数和值的个数必须一致,否则会报错
-
可以省略列名,默认所有列,而且列的顺序和表中列的顺序是一致的,如果遇到不想插入且可以为null的字段,不能省略,只能填null
方式二(不常用)
语法
insert into 表名
set 列名1=值1, 列名2=值2, ...
- 案例
两种方式对比
- 方式一支持一次性插入多行,方式二不支持
- 方式一支持子查询,方式二不支持
- 一般都使用方式一
修改(update)
修改单表的记录(重点掌握)
语法
update 表名
set 列1=新值, 列2=新值, ...
where 筛选条件
案例
- 修改beauty表中姓唐的女神的电话为13899888899
- 修改boys表中的id号为2的名称为张飞,魅力值为20
修改多表的记录(不常用)
语法
- SQL92语法:
update 表1 别名, 表2 别名
set 列=值, ...
where 连接条件
and 筛选条件;
- SQL99语法:
update 表1 别名
连接类型 join 表2 别名
on 连接条件
set 列=值, ...
where 筛选条件;
案例
- 修改张无忌女朋友的的手机号为114
- 修改没有男朋友的女神的男朋友编号为2号
删除(delete)
方式一(delete)
单表的删除
- 语法:
delete from 表名 where 筛选条件
- 删除手机号以9结尾的女神信息
多表的删除
- SQL92语法
delete 表的别名 #删除哪个表,就写哪个表的别名,如果要删除多个表,就都写上
from 表1 别名, 表2 别名
where 连接条件
on 筛选条件;
- SQL99语法
delete 表的别名 #删除哪个表,就写哪个表的别名,如果要删除多个表,就都写上
from 表1 别名
连接类型 join 表2 别名
on 连接条件
where 筛选条件;
- 删除张无忌的女朋友的信息
- 删除黄晓明的信息以及他女朋友的信息
方式二(truncate)
- 直接删除表中所有信息,即直接清空表
- 删除boys表中所有信息
两种方法对比(面试题)
delete
可以添加where条件,而truncate
不能truncate
删除,效率略高一些- 假如要删除的表中有自增长列,如果使用
delete
删除后(这里指的是将表中内容全部删除),再插入数据,自增长列的值从断点开始,而truncate
删除后,在插入数据,自增长列的值从1开始。 truncate
删除没有返回值(执行后不会显示几行受影响,一律显示0行受影响),而delete
删除有返回值truncate
删除不能回滚,delete
删除可以回滚