一、概述
1、查詢語法
select
列名列表
from
表名列表
where
...
2、笛卡爾積:
有兩個集合A、B,取這兩個集合的所有組成情況;
要完成多表查詢需要消除無用的數據;
3、多表查詢的分類
①內連接查詢;
②外連接查詢;
③子查詢;
二、內連接
1、隱式內連接
語法:
select
列名列表
from
表名列表
where
...
使用where條件消除無用數據;
一般查詢的時候不要要查詢全部列以及簡化寫法
2、顯式內連接
語法:
select 字段列表 from 表名1 inner join 表名2 on 條件
-- inner可以省略
3、內連接查詢注意事項
①從哪些表中查詢數據;
②條件是什麼;
③查詢哪些字段;
三、外連接
1、左外連接
語法:
select 字段列表 from 表名1 left outer join 表名2 on 條件
-- outer可以省略
左外連接查詢的是左表所有數據及其與右表交集的部分;(內連接只查詢兩表交集的部分)
2、右外連接
語法:
select 字段列表 from 表名1 right outer join 表名2 on 條件
-- outer可以省略
左外連接查詢的是右表所有數據及其與左表交集的部分;(內連接只查詢兩表交集的部分)
三、子查詢
1、基本演示
查詢中嵌套查詢,稱嵌套查詢爲子查詢;
示例:
傳統查詢方法:
子查詢方法:
2、情況1:子查詢的結果是單行單列的
子查詢的結果作爲查詢條件的“匿名變量”,使用運算符去判斷,運算符:> <= < <= =
3、情況2:子查詢的結果是多行單列的
子查詢的結果作爲查詢條件的“匿名變量”,使用in去判斷
4、情況3:子查詢的結果是多行多列的
子查詢的結果作爲一張虛擬表參與查詢,也可以使用普通內連接的方式進行查詢