sql自学笔记(七)

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

连接

MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作

语法结构

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

数据表参照

table _ reference
tbl _ name [[AS]alias] | table _ subquery [AS] alias

数据表可以使用tbl _ name AS alias _ name 或 tbl _ name alias _name赋予别名。
tbl _ subquery可以作为子查询使用在FROM子句中,这样的子查询必须为其赋予别名。

连接类型

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

连接条件

使用ON关键字来设定连接条件,也可以使用WHERE来代替。
通常使用ON关键字来设定连接条件。
使用WHERE关键字进行结果集记录的过滤。

内连接

显示左表及右表符合连接条件的记录。


内连接

左外连接

显示左表的全部记录及右表符合连接条件的记录。


左外连接

右外连接

显示右表的全部记录及左表符合连接条件的记录。


右外连接

外连接

A LEFT JOIN B join _ condition
数据表B的结果依赖数据表A。
数据表A的结果集根据左连接条件依赖所有数据表(B表除外)
左外连接条件决定如何检索数据B(在没有指定WHERE条件的情况下)。
如果数据表A的某条记录符合WHERE条件,但是在数据表B不存在符合连接条件的记录,将生成一个所有列为空的额外的B行。
如果使用的连接查找的记录在连接数据表中不存在,并且在WHERE子句中尝试以下操作:col_ namd IS NULL时,如果col _name 被定义为NOT NULL,MySQL将在找到符合连接条件的记录后停止搜索更多的行。

自身连接

同一个数据表对其自身进行连接。

多表删除

DELETE tbl _ name [.*][tbl _ name [.*]]......
FROM table _ referencess
[WHERE where _ condition].
上一篇下一篇

猜你喜欢

热点阅读