DML语言
dml语言即数据操作语言:
插入:insert
修改:undate
删除:DELETE
一.插入语句
方式一:
语法:
insert INTO 表名(字段名,...) VALUES(值1,....)
#案例1.插入的值的类型与列的类型一致或兼容
INSERT into beauty(id,name,sex,borndate,phone,boyfriend) VALUES(16,'小美',1,'1989-01-04 15:48:21','15890330987',2)
#案例2.列数和值的个数必须对应且一致
INSERT into beauty(name,sex,borndate,phone) VALUES('小美2',1,'1989-01-04 15:48:21','15890330987')
#案例3.可以省略列名,默认所有列,而且列的顺序和表中的列顺序一致
insert into beauty VALUES(17,'团子',1,'1989-01-04 15:48:21','16912354698',3)
方式二:
语法:(太麻烦了不推荐)
insert INTO 表名
set 列名=值,列名=值,...
两种方式比较:
1.方式一支持多行插入
2.方式一支持子查询,方式二不支持
#案例1.方式一支持多行插入
insert into beauty VALUES (18,'小美1',1,'1989-01-04 15:48:21','16912365876',null),
(19,'小美1',1,'1989-01-04 15:48:21',null,null),
(20,'小美3',1,'1989-01-04 15:48:21',null,null);
#案例2.方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,sex,borndate) SELECT 21,'琪琪',1,'1989-01-04 15:48:21';
二.修改语句
1.修改单表的记录
语法:
update 表名
SET 列=新值,列=新值,...
WHERE 筛选条件;
#案例:修改beauty表中含有小的名字的电话为15988889999
UPDATE beauty SET phone = '15988889999'
where name LIKE '%小%';
2.修改多表的记录(比较少用)
语法:(sql99语法)
update 表1 别名
inner|LEFT|RIGHT JOIN 表2 别名
ON 连接条件
SET 列=值,...
where 筛选条件
#案例1:修改boys表路飞的女朋友的手机号为114
update beauty a INNER JOIN boys b ON a.boyfriend = b.id
SET a.phone='114',b.user_cp= 110
where b.boy_name='路飞';
#案例2:修改没有男朋友的女生的男朋友编号为1号
#内连接
update beauty a INNER JOIN boys b on a.boyfriend = b.id
set a.boyfriend = 1
WHERE a.boyfriend is NULL;
#右连接
update boys a RIGHT JOIN beauty b on a.id = b.boyfriend
set b.boyfriend = 1
WHERE b.boyfriend is NULL;
#左连接
update beauty a LEFT JOIN boys b on a.boyfriend = b.id
set a.boyfriend = 1
WHERE a.boyfriend is NULL;
三.删除语句
方式一:DELETE
语法:
1.单表的删除
DELETE FROM 表名 where 筛选条件
2.多表的删除(比较少用):
sql99语法:
DELETE 表1的别名,表2的别名
FROM 表1 别名
INNER|LEFT|RIGHT JOIN 表1 别名 on 连接条件
where 筛选条件
#(1).单表的删除
#案例1.删除beauty表中name含有"杨"字的数据删除;
DELETE FROM beauty where name LIKE '%杨%';
#(2).多表的删除
#案例1.删除周杰伦的女朋友的信息
DELETE a
from beauty a
INNER JOIN boys b ON a.boyfriend=b.id
WHERE b.boy_name='周杰伦'
#案例2.删除桃之助和他女朋友的信息
DELETE a,b
from beauty a
INNER JOIN boys b ON a.boyfriend=b.id
WHERE b.boy_name='桃之助';
方式二.TRUNCATE 删除的是整个表的数据,不支持加筛选条件
语法:
truncate TABLE 表名; (清空数据)
delect 和truncate的区别:
1.delect 可以加where条件,truncate不能加
2.TRUNCATE删除,效率高一些;
3.假入要删除的表中有自增长列,用delect删除后,再插入数据,自增长的列的值从断点开始;
而用truncate删除后,再插入数据,自增长的列的值从1开始.
4.truncate删除没有返回值,delete删除有返回值;
5.TRUNCATE 删除不能回滚,delect删除可以回滚.