0
点赞
收藏
分享

微信扫一扫

2023最系统的网络安全学习路线

芷兮离离 2023-05-26 阅读 48

MySQL学习2:多表

1. 多表查询的错误方式:没有连接条件 or 连接没起作用

cross join
也叫:笛卡尔积
也叫:交叉连接
两张表,每一条目两两相乘

2. 多表查询的正确方式:需要连接条件

【SQL优化】从sql优化的角度,建议多表查询时,每个字段前都指明其所在的表
【阅读优化】可以给多张表各自取别名,且在取了别名之后,select和where中只能只用别名而不能使用表原来的名
如果有n个表实现多表的查询,则至少需要n-1个连接条件

3. 多表查询的分类

(1) 等值连接 VS 非等值连接

等值连接
连接条件用 = 连接

非等值连接
连接条件用除了 = 之外的连接

(2)自连接 VS 非自连接

自连接
一张表,自己和自己进行连接

非自连接
多张不用的表,进行连接

(3)内连接 VS 外连接

内连接
合并具有同一列的两个以上的表的行,结果集中不包含一个表与另一个表不匹配的行
(以下为SQL92的内连接写法)
(以下为SQL99的内连接写法)

外连接
两个表在连接过程中除了返回满足连接条件的行以外,还返回左(或右)表中不满足条件的行,这种连接称为左(或右)外连接。没有匹配的行时,结果表中相应的列为空(NULL)。

左外连接
如果是左外连接,则连接条件中左边的表也称为主表,右边的表称为从表。

右外连接
如果是右外连接,则连接条件中右边的表也称为主表,左边的表称为从表。

满外连接

全都有

内连接

左外连接

右外连接

满外连接

举报

相关推荐

0 条评论