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

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
复制