列出查询语句中涉及到的所有关键字,以及执行先后顺序!

3. DML语言(数据操作)
3.1 插入语句(insert)
-- 一.插入语句
-- 插入方式一:经典插入
/*
语法:
insert into 表名(列名,...)
values(值1,...)
特点如下:
*/
SELECT * FROM beauty;
# 案例1:插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','18999999999',NULL,2);
# 案例2:不可以为null的列必须插入值,可以为null的列如何插入值?
#方式一:
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','18999999999',NULL,2);
#方式二:
INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','18999999999',2);
# 案例3:插入时列的顺序可以调换
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('唐艺昕','女',13,'18999999999')
# 案例4:列数和值的个数必须一致
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('唐艺昕','女',13,'18999999999')
# 案例5:可以省略列名,默认为所有列,且列的顺序和表中列的顺序一致
INSERT INTO beauty
VALUES(13,'唐艺昕','女',NULL,'18999999999',NULL,NULL);
-- 插入方式二
/*
语法:
insert into 表名
set 列名=值,列名=值,...
*/
# 案例1:
INSERT INTO beauty
SET id=19,NAME='张飞',sex='女',borndate='1999-3-2',phone='999';
-- 两种插入方式比较(方式一使用较多)
# 1.方式一支持插入多行,方式二只能插入单行
INSERT INTO beauty
VALUES(21,'tom','女','1998-4-3','996',NULL,2),
(23,'jerry','女','1998-7-3','997',NULL,3),
(22,'rose','女','1998-9-3','998',NULL,4);
# 2.方式一支持子查询插入,方式二不支持
INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,'12434'
FROM boys WHERE id<3;#将查询到的虚拟表插入
3.2 修改语句(update)
/*
情况一:修改单表的记录
语法:
uptate 表名 ①
set 列=新值,列=新值,... ②
where 筛选条件; ③
情况二:修改多表的记录(级联更新)【补充】
语法:
sql92语法
sql99语法
uptate 表1 别名,表2 别名,... update 表1 别名
set 列=值,...
连接类型 join 表2 别名
where 连接条件 on 连接条件
and 筛选条件;
set 列=值,...
WHERE 筛选条件;
*/
-- 修改单表的记录
#案例1:修改beauty表中姓周的女生电话为1314159,性别为'男'
UPDATE beauty
SET phone='1314159',sex='男'
WHERE `name` LIKE '周%';
-- 修改多表的记录
#案例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;
3.3 删除语句(delete)
/*
方式一:delete关键字(删除整表或整行)
语法:
1.单表删除语法:√
delete from 表名
where 筛选条件
2.多表删除(级联删除)语法:
sql92语法 sql99语法
delete 表1/2的别名 delete 表1/2的别名
from 表1 别名,表2 别名 from 表1 别名
where 连接条件
连接类型 join 表2 别名
and 筛选条件
on 连接条件
where 筛选条件
方式二:truncate关键字(删除整表,不能加where条件)
语法:
truncate table 表名;
delete关键字于truncate关键字的区别:
① delete可以加where条件,truncate不能加
② truncate删除,效率高一点
③ 假如要删除的表中有自增长列,如果使用delete删除后再插入数据,
自增长列的数据从断点开始。而使用truncate删除后再插入数据,
自增长列的值从1开始
④ truncate删除没有返回值,delete删除有返回值(是否提示几行受影响)
⑤ truncate删除不能回滚,delete删除可以回滚
*/
-- 方式一:delate关键字
# 1:实现单表的删除
#案例1:删除手机号以9结尾的女生信息
DELETE FROM beauty
WHERE phone LIKE '%9';
# 2. 实现多表的删除
#案例1:删除张无忌的女朋友的信息
DELETE b FROM beauty b
INNER JOIN boys bo
ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='张无忌';
#案例2:删除黄晓明的信息以及他女朋友的信息
DELETE b,bo FROM beauty b
INNER JOIN boys bo
ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';
4. DDL语言(数据定义)
4.1 库表管理
库的管理操作
创建:create
修改:alter
删除:drop
表的管理操作
创建:create
修改:alter
删除:drop
复制