数字操作语言:
插入:insert
修改:update
删除:delete
- 插入语句
方式一:
语法:
Insert into 表名(列名, ...)values(值1, ...);
1.插入的值的类型要与列的类型一致或兼容
例:insert into girl(id, name, age)
values(13, ‘小刘’, 20);
2.为null的列如何插入值:①列名写上插入的值填null ②列名和值均省略不写
例:insert into girl(id, name, age, number)
values(13, ‘小刘’, 20, null);
3.字段的个数和顺序不一定与原始表中的字段个数和顺序一致,但必须保证值和字段一一对应
例:insert into girl(name, id, age)
values(‘小刘’, 13, 20);
4.列数和值的个数必须一致
5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
例:insert into girl
values(13, ‘小刘’, 20);
方式二:
语法:insert into 表名
set 列名=值, 列名=值...
例:insert into girl
set id=13, name=’小刘’;
两种方式对比:
- 方式一支持插入多行,方式二不支持
- 方式一支持子查询,方式二不支持
- 修改语句
1.修改单表记录
语法:update 表名 set 字段=值,字段=值 【where 筛选条件】;
例:修改girl表中姓刘的女生年龄为18
update girl set age=18
where name like ‘刘%’;
2.修改多表记录
update 表1 别名,表2 别名
(或 update 表1 别名 inner|left|right join 表2 别名 on 连接条件)
set 列=值,...
where 连接条件
and 筛选条件;
- 删除语句
方式一:delete
1、单表删除
语法:
delete from 表名 where 筛选条件
例:删除手机号以9结尾的女生信息
delete from girl where phone like ‘%9’;
2、多表删除(级联删除)
语法:delete 别名(表1 别名,表2 别名)
from 表1 别名
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
语法:truncate table 表名;
例:将年龄大于30的男生信息删除
truncate table boys; (清空)
两种方式对比:
1、delete可以加where条件,truncate不能加
2、truncate删除,效率比delete高
3、假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
4、truncate没有返回值,delete可以返回受影响的行数
5、truncate不可以回滚,delete可以回滚
6、truncate删除表中的内容,不删除表结构,释放空间;delete删除内容,不删除表结构,但不释放空间;drop删除整个表(结构和数据)。