表library:

表borrow:

表reader:

1、等值連接:(常用)
原理:將多張表組合成一個邏輯大表,即字段相加記錄相乘(笛卡爾積)。
語法:select * from 表A,表B where 表A.主鍵=表B.外鍵 and 查詢條件。
步驟:①明確來源於哪幾張表;②找到關聯字段;③添加條件;④合並語句。
優點:簡單方便。
缺點:查詢效率低,查詢記錄快速增長。
適用范圍:不適用於海量數據的查詢。
例子:
找出李某所借圖書的所有圖書的書名及借書日期。
SELECT
full_name,
book_name,
borrowdate
FROM
library,
borrow,
reader
WHERE
library.mastr_serial_number = borrow.mastr_serial_number
AND borrow.library_card_number = reader.library_card_number
AND full_name LIKE '李%'
2、嵌套查詢:(常用)
原理:將多個單表查詢結果拼接在一起。
步驟:①依據需求,拆分多個單表查詢;②針對每一個單表查詢編寫sql語句(每寫完一條執行,檢查是否正確);③合並sql語句(單表查詢結果單個:=、!=、>、<、>=、<=;多個查詢結果:in、not in)。
優點:查詢效率高,記錄不會增加。
缺點:復雜、邏輯性強,表結構要清晰
例子:
查詢1997年10月以后借書的讀者借書證號、姓名和單位。
SELECT
full_name,
unit,
library_card_number
FROM
reader
WHERE
library_card_number in (
SELECT
library_card_number
FROM
borrow
WHERE
borrowdate > '1997-10-31')
3.內連接:(不常用)
特點:先判斷再組合
語法:inner join ... on
兩張表:select * from 表A inner join 表B on 表A.主鍵=表B.外鍵 where 查詢條件
三張表:select * from 表A inner join 表B on 表A.主鍵=表B.外鍵 inner join 表C on 表C.主鍵=表B.外鍵 where 查詢條件
4.外連接:(不常用)
分為左外連接和右外連接。
