連接查詢

舉例:

image.png
笛卡爾乘積現(xiàn)象:
select name,boyname from beauty,boys;

笛卡爾乘積現(xiàn)象
添加有效的連接條件進(jìn)行避免:

image.png
連接查詢的分類:

image.png
sql92標(biāo)準(zhǔn)(只支持內(nèi)連接)
等值連接

特點(diǎn)

image.png
為表起別名:提高簡(jiǎn)潔度,區(qū)分多個(gè)重名的字段,如果為表起了別名,則查詢的字段就不能用原來的表名去限定

案例二

案例三

添加分組條件的等值連接查詢

image.png

image.png
三表連接案例:

三表連接
非等值連接

image.png
自連接,和自連接的區(qū)別是,自己和自己連接(一般是表中有特殊字段才能進(jìn)行自連接)
案例:

圖示

image.png
sql99標(biāo)準(zhǔn)
語法:

image.png
92和99語法對(duì)比:

image.png
舉例:

image.png
內(nèi)連接:

image.png
-
等值連接:
1.
2.
3.
image.png
特點(diǎn):
image.png - 非等值連接
查詢員工工資級(jí)別個(gè)數(shù)>20的個(gè)數(shù),并且按工資級(jí)別降序
SELECT
grade_level,count(*) mount
FROM employees e
join job_grades j
on e.salary between j.lowest_sal and j.highest_sal
GROUP BY grade_level
HAVING mount>20
ORDER BY grade_level DESC
-
自連接
查詢員工的上級(jí):
表,將同一張表看作2張表,進(jìn)行自連接
SELECT
e.last_name 員工名,e.employee_id 員工id,m.last_name 領(lǐng)導(dǎo)名,m.employee_id 領(lǐng)導(dǎo)id
FROM employees e
join employees m
on e.manager_id = m.employee_id

查詢結(jié)果
外連接
應(yīng)用場(chǎng)景:查詢一個(gè)表有而另一個(gè)表沒有的數(shù)據(jù)時(shí)就需要用到外連接了。

特點(diǎn)

image.png
-
左右外連接
左連接
右連接 -
全(外)連接
全連接
交叉連接

交叉連接
連接查詢總結(jié)
1.以后推薦使用sql99語法,更有優(yōu)勢(shì)

sql92和sql99的pk

image.png

image.png








