【DML语言】
主要涉及到的是增删改;
Data Manipulation Language 数据操纵语言
是指在SQL语言中,负责对数据库对象运行数据访问工作的指令集
数据操作语言:(3种核心指令)
- 插入:Insert
- 修改:update
- 删除:delete
目录
I.插入语句
A.方式1:经典插入
语法:
insert into 表名(列名,......)
values(值1,值2,....)
eg:
1.要求插入的值的类型要与列的类型一致或兼容
--1.要求插入的值的类型要与列的类型一致或兼容--
SELECT *
FROM beauty;
INSERT INTO beauty(id,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES (13,'唐艺昕','女','1990-4-23','19000000',NULL,2);
#2.可以为null的列是如何插入值的
不可以为null的列必须插入值
可以为null的列插入值:
- 方式一:
上方列名写全,下方值用null代替
- 方式二:
上行的列名和下行的值都省略
INSERT INTO beauty(id,`name`,`sex`,`borndate`,`phone`) VALUES (15,'杨幂','女','1991-7-01','190066600');
#3列的顺序可以调换(添加时)
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('宋祖儿','女','16','1881234567');
#4列数和值的个数必须一致
否则会报错,不匹配
#5.可以省略列名,默认所有列;而且列的顺序和表中列的顺序一致
insert into beauty
values (18,'魏大勋','男','1990-05-01','1911234567',null,null);
B.方式2
语法:
inser into 表名
set 列名=值,列名=值,.......
eg:
1.插入数据:
INSERT INTO beauty
SET id=19,NAME='郑爽',phone='76543210';
两种方式区别:
1.方式1 支持插入多行;可批量插入
方式2不支持
2.方式1 支持子查询;方式2不支持
3.一般用方式1
II.修改语句
2种
A.修改单标的记录
语法:
Update 表名 ①
set 列=新值,列=新值,... ③
where 筛选条件; ②
eg:
1.修改beauty 中姓唐的电话为1389988999
UPDATE beauty
SET phone='1389988999'
WHERE NAME LIKE '唐%';
2.修改多个数据
(1)修改boys表中id=2的名称为‘张飞’,魅力值为10
update boys
set boyName='张飞',userCP=10
where id=2;
B.修改多表的记录
语法:
sql92语法:
update 表1 别名,表2 别名
set 列=值,.......
where 连接条件
and 筛选条件;
sql99语法:
update 表1 别名
inner |left |right join 表2 别名
on 连接条件
set 列=值,....
where 筛选条件;
eg:
(1)修改张无忌的女朋友的手机号为0123
UPDATE boys AS m
INNER JOIN beauty AS w
ON m.`id`=w.`boyfriend_id`
SET phone=0123
WHERE m.`boyName`='张无忌';
(2)修改没有男朋友的女神的男朋友编号都为2号
UPDATE beauty AS w
LEFT JOIN boys AS m
ON w.`boyfriend_id`=m.`id`
SET w.`boyfriend_id`=2
WHERE w.`boyfriend_id`IS NULL;
III.删除语句
A.delete
语法:
- 1.单表的删除
delete from 表名
where 筛选条件
-
2.多表的删除
sql92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:
delete 表1 的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件
eg:
(1)删除手机号以9结尾的女生的信息
DELETE FROM beauty
WHERE phone LIKE '%9';
(2)删除张无忌的女朋友的信息
DELETE w
FROM beauty AS w
INNER JOIN boys AS m ON w.`boyfriend_id`=m.`id`
WHERE m.`boyName`='张无忌';
(3)删除黄晓明的信息以及他女朋友的信息
delete m,w
from boys as m
inner join beauty as w on w.`boyfriend_id`=m.`id`
where m.`boyName`='黄晓明';
--查询数据--
select * from beauty;
SELECT * FROM boys;
B.truncate
语法:不可以有where筛选条件
一删除全部删除
truncate table 表名;
【区别】
- (1)delete可以加where添加,t不可以
- (2)t删除,效率更高
- (3)truncate删除没有返回值;delete删除有返回值
eg:删除后,提示会显示X行受影响(t:0行受影响;d:会提示)
(4)假如要删除的表中有增长列:
- 用delete删除后,再插入数据,自增长列的值从断电开始
- 用truncate删除后,在插入数据,自增长列的值从1开始
eg:
用delete删除数据后,总共编号有5个;然后再加入数据,数据编号是从6开始的;
- (5)truncate删除不能回滚;delete删除可以回滚
本节练习题见下一篇文章【Mysql练习题】-【数据的增删改】
相关数据库资源可文末留言,免费分享给你哟~
快来和我一起学习叭!