DML是Data Manipulation Language的缩写,意思是数据操纵语言,是指在SQL语言中,负责对数据库对象运行数据访问,工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令。
DML语言是站在数据层面上
INSERT(插入)把数据插入表格中。
UPDATE(更新)更新表格中的数据。
DELETE(删除)删除表格中的数据。
(本人一点见解,若有什么错误或者问题请在评论区留言,或者私聊)
附上beauty表和boys表
方式一:
语法:
INSERT INTO 表名(列名1,列名2,列名3,...)
VALUES(值1,值2,值3,...);
#例:往beauty表中插入值
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','123465',NULL,2);
方式一支持多行插入:
#例:往beauty表中插入多行值
INSERT INTO beauty
VALUES(14,'唐艺昕1','女',null,'1313',NULL,2)
,(23,'唐艺昕2','女',null,'1313',NULL,2)
,(33,'唐艺昕3','女',null,'1313',NULL,2);
也支持子查询插入
#例:往beauty表中插入查找值
INSERT INTO beauty(id,NAME,phone)
SELECT 26,'宋茜','111082';
说明:
数据来源select语句可以有很多种写法,需要注意:select返回的结果和插入数据的字段数量、顺序、类型需要一致。
方式二:
INSERT INTO 表名
SET 列名1=值1,列明2=值2;
#例:往beauty表中插入值
INSERT INTO beauty
SET id=19,name ='刘涛',phone='999';
方式二不支持多行插入和子查询插入。
修改有两种方式:一种是单表修改,另一种是多表修改。
语法:
UPDATE 表面
SET 列名1=新值1,列名2=新值2 ....
WHERE 筛选条件;
#例:修改beauty表中性唐的女神的电话为13899988899
UPDATE beauty
SET phone='13899988899'
WHERE NAME LIKE '唐%'
多表的修改有两个标准:
SQL92标准
SQL99标准
#sql92语法:
UPDATE 表1 别名,表2 别名
SET列名1=新值1,列名2=新值2 ....
WHERE 连接条件
AND 筛选条件;
#例:修改张无忌的女朋友的手机号为114
UPDATE boys bo,beauty be
SET phone='114'
WHERE bo.id=be.boyfriend_id
AND boyName='张无忌';
#sql99语法
UPDATE 表一 别名
INNER||LEFT||RIGHT JOIN 表2 别名
ON 连接条件
set 列名1=新值1,列名2=新值2 ....
WHERE 筛选条件;
#例:修改张无忌的女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty be
ON bo.id=be.boyfriend_id
SET phone='114'
WHERE boyName='张无忌';
删除有三种方式:
第一种:单表删除。
第二种:多表删除。
第三种:TRUNCATE将整个表的数据全部删除,只保留表的结构,但TRUNCATE不属于DML语言属于DDL语言。(谨慎使用)
#语法:
DELETE FROM 表名 WHERE 筛选条件
#例:删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
多表的删除有两个标准:
SQL92标准
SQL99标准
#sql92语法:
DELETE 表1的别名
FROM 表1 别名,表2 别名
WHERE 连接条件
AND 筛选条件;
#例:删除张无忌的女朋友信息
DELETE b
FROM beauty b,boys bo
WHERE b.boyfriend_id=bo.id
AND bo.boyName='张无忌';
#sql99语法:
DELETE 表1的别名
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 TABLE 表名
#例:清空boys表
TRUNCATE TABLE boys;