SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习
生活随笔
收集整理的這篇文章主要介紹了
SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用法:
當(dāng)查詢的字段來(lái)自于多個(gè)表時(shí),就會(huì)用到連接查詢按照功能分類(lèi)
內(nèi)連接: 等值/非等值鏈接,自鏈接
外連接: 左/右外連接,全外鏈接
交叉鏈接
笛卡爾乘積現(xiàn)象
表1有m行,表2有n行,結(jié)果=m*n行
發(fā)生原因:沒(méi)有有效的連接條件
一.內(nèi)鏈接之等值連接
案例一:從女生表查找到男生表中的男女朋友關(guān)系
案例二:添加篩選條件
查詢有獎(jiǎng)金的員工名,部門(mén)名
SELECT last_name,department_name,commission_pct FROM employees,departments WHERE employees.department_id=departments.department_id and employees.commission_pct is not null
案例三:添加分組
查詢每個(gè)城市的部門(mén)個(gè)數(shù)
SELECT count(*) 個(gè)數(shù), city FROM departments, locations WHERE departments.location_id=locations.location_id GROUP BY city;
案例四:添加排序
查詢每個(gè)工種的工種名 和 員工的個(gè)數(shù),并按照員工的個(gè)數(shù)進(jìn)行排序
SELECT job_title,count(*) FROM employees,jobs WHERE jobs.job_id = employees.job_id GROUP BY job_title ORDER BY COUNT(*) DESC;
案例四:實(shí)現(xiàn)三表鏈接
查詢員工名,部門(mén)名 和 所在的城市
二.內(nèi)鏈接之非等值連接
查詢員工的工資與工資級(jí)別
SELECT last_name,salary,grade_level FROM employees e, job_grades g WHERE salary BETWEEN g.lowest_sal and g.highest_sal自連接
即連續(xù)查詢一個(gè)表兩次
案例:查詢員工名和上級(jí)領(lǐng)導(dǎo)的名稱(chēng)
因?yàn)樯霞?jí)領(lǐng)導(dǎo)也是屬于員工,需要在員工表中查詢兩次
SELECT e.employee_id ,e.last_name 員工名 ,m.employee_id,m.last_name 領(lǐng)導(dǎo)名 FROM employees e, employees m #查詢第一遍備注為e,第二遍為m WHERE e.manager_id=m.manager_id總結(jié)
以上是生活随笔為你收集整理的SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQL语言之DQL语言学习(七)分组查询
- 下一篇: SQL语言之DQL语言学习(九)多表查询