文章目录
子查询简介由比较运算符引发的子查询使用[NOT] IN 的子查询使用[NOT] EXISTS 的子查询使用INSERT......SELECT插入记录多表更新使用CREATE TABLE.....SELECT创建表
子查询简介
子查询指嵌套在查询内部,且必须始终出现在圆括号内子查询可以包含多个关键字或条件子查询的外层查询可以是增删改查子查询返回值:可以返回标量、一行、一列或子查询
由比较运算符引发的子查询
比较符 (operand-操作谁 comparison_operator-操作关系 subquery-子查询) =、>、<、>=、<=、<>、!=、<=>语法结构 operand comparison_operator (subquery)子查询返回多个结果时,用ANY、SOME或ALL修饰比较运算符
语法 operand comparison_operator ANY (subquery) operand comparison_operator SOME (subquery) operand comparison_operator ALL (subquery)举例 select * from 表名 where 字段名 = all(select from where)使用规则
使用[NOT] IN 的子查询
IN:取值在子查询返回的结果里面 NOT IN:取值不在子查询返回的结果里面 != ALL 或者<> ALL 运算符与 NOT IN 等价
语法结构 operand comparison_operator [NOT] IN (subquery)举例 select * from 表名 where 字段名 in(select from where)
使用[NOT] EXISTS 的子查询
如果子查询返回任何行,EXISTS将返回TRUE;否则返回FALSE 使用比较少
使用INSERT…SELECT插入记录
用于将子查询查出来的值存入表中
语法 insert [into] 表名 (列名,…) select …
多表更新
参照其他表,更新本表的记录
语法 update 表1 连接符 表2 on 表的条件 set 表1.列1 =表2.列1,表1.列2 =表2.列2
使用CREATE TABLE…SELECT创建表
在创建数据表的同时,将查询的结果写入数据表
语法 create table 表名 (列 数据类型,列 数据类型, …)select …