DML语言
数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。
一、插入
常用语法
# 单行插入
insert into 表名(字段名,...)
values(值1,...);
# 多行插入 插入3行
insert into 表名(字段名,...)
values(值1,...),(值2,...),(值3,...);
# 查询插入
insert into(id,name,phone)
select 26,'宋茜','11111111';
通过set插入值
insert into beauty
set id=19,name='刘涛',phone='999';
特点:
1、字段类型和值类型一致或兼容,而且一一对应
2、可以为空的字段,可以不用插入值,或用null填充
3、不可以为空的字段,必须插入值
4、字段个数和值的个数必须一致
5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致
二、修改
修改单表语法
update 表名 set 字段=新值,字段=新值
【where 条件】
修改多表语法
update 表1 别名1,表2 别名2
set 字段=新值,字段=新值
where 连接条件
and 筛选条件
sql99 连接+修改 语法
# 1、修改张无忌的女朋友的手机号为114
update boys bo
inner join beauty b on bo.id=b.boyfriend_id
set b.phone='114'
where bo.boyName='张无忌'
# 2、修改没有男朋友的女神的男朋友编号都为2
update boys bo
right join beauty b on bo.id=b.boyfriend_id
set b.boyfriend_id=2
where bo.id is null;
三、删除
方式1:delete语句
单表的删除: ★
delete from 表名 【where 筛选条件】
多表的删除:
delete 别名1,别名2
from 表1 别名1,表2 别名2
# 也可以用inner join内连接
where 连接条件
and 筛选条件;
方式2:truncate语句
直接操作磁盘,不经过事务!
truncate table boys; # 一删全删,在清空表的时候效率比较高
truncate table 表名
delete和truncate两种方式的区别【面试题】
#1.truncate不能加where条件,而delete可以加where条件
#2.truncate的效率高一丢丢
#3.truncate 删除带自增长的数据后,如果再插入数据,数据从1开始
# delete 删除带自增长的数据后,如果再插入数据,数据从上一次的断点处开始
#4.truncate删除不能回滚,delete删除可以回滚