D010MySQL學習筆記-多表查詢

一、概述

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:子查詢的結果是多行多列的

子查詢的結果作爲一張虛擬表參與查詢,也可以使用普通內連接的方式進行查詢

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章