sql自学笔记(六)

2019-04-09  本文已影响0人  itczt

子查询

子查询(subquery)是指出现在其他SQL语句内的SELECT子句。
例如:
SELECT * FROM t1 WHERE col1 = (SELECT col2 FROM t2);
其中SELECT * FROM t1 ,称为 Outer Quer/ Outer statement
SELECT col2 FROM t2,称为subQuery。

子查询

子查询指嵌套在查询内部,且必须始终出现在原括号内。
子查询可以包含多个关键或条件。
如:DTSTINCT、GROUP BY、ORDER BY、LIMIT函数等。
子查询的外层查询可以是:SELECT,INSECT,UODATE,SET或DO。

子查询返回值

子查询可以返回标量、一行、一列或子查询。

使用比较运算符的子查询

使用比较运算符的子查询

=、> 、<、 >=、<=、<>、!=、<=>

语法结构

operand、comparison _ operator、subquery
用ANY、 SOME 或ALL修饰的比较运算符

operand comparison _ operator ANY (subquery)
operand comparison _ operator SOME  (subquery)
operand comparison _ operator ALL  (subquery)

ANY、 SOME 、ALL关键字

运算符\关键字 ANY SOME ALL
>、 >= 最小值 最小值 最大值
<=、< 最大值 最大值 最小值
= 任意值 任意值
<>、!= 任意值

使用[NOT]IN的子查询

语法结构

operand comparison_operator [NOT]IN (subquery)

=ANY运算符与IN等效
!=ALL或<>ALL运算与NOT IN等效

使用[NOT]EXISTS的子查询

如果子查询返回任何行,EXISTS将返回TRUE;否则为FALSE。

INSERT.....SELECT

将查询结果写入数据表

INSERT [INTO] tbl_name [(col _ name;....)]
SELECT.....

多表更新

UPDATE table _ references
SET col _ name1 = {expr1 | DEFAULT}
[,col _ name2 = {expr2 | DEFAULT}]....
[WHERE where _ conition]

语法结构(表的参照关系)

table_reference
{[INNER | CROSS | JOIN]{LEFT | RIGHT}[OUTER]JOIN}
table _ reference
ON conditional _expr

连接类型

INNER JOIN ,内连接
在MySQL中,JOIN,CROSS.JOIN和INNER JOIN是等价的。
LEFT [OUTER] JOIN,左外连接
EIGHT[OUTER] JOIN ,右连接

CREATE.......SELECT

创建数据表同时将查询结果写入到数据表

CREATE TABLE [IF NOT EXISTS] tbl - name
[(create _ definition,.....)]
select _ statement.
上一篇 下一篇

猜你喜欢

热点阅读