列出查询语句中涉及到的所有关键字,以及执行先后顺序!
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
复制