SQL?Server數(shù)據(jù)庫(kù)入門(mén)教程之多表查詢
SQL_Server的前情介紹
??大家好呀,今天是我第三次寫(xiě)sql_server,也是最近才學(xué)習(xí)sql_server,也想著記錄一下自己的學(xué)習(xí)過(guò)程,并且分享給大家尼!
一、sql_server技術(shù)介紹
SQL Server 是由微軟公司(Microsoft)開(kāi)發(fā)的關(guān)系型數(shù)(RDBMS)。RDBMS 是 SQL 以及所有現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ),比如 MS SQL Server,IBM DB2,Oracle,MySQL 以及微軟的 Microsoft Access。
二、學(xué)習(xí)前的準(zhǔn)備工作
編程軟件:SQL Server Management Studio 2012
帶好你的小板凳,我們一起揚(yáng)帆起航!

SQL_Server之多表查詢
笛卡爾乘積的講解
在數(shù)據(jù)庫(kù)中有一種叫笛卡爾乘積其語(yǔ)法如下:
select * from People,Department
此查詢結(jié)果會(huì)將People表的所有數(shù)據(jù)和Department表的所有數(shù)據(jù)進(jìn)行依次排列組合形成新的記錄。例如People表有10條記錄,Department表有3條記錄,則排列組合之后查詢結(jié)果會(huì)有10*3=30條記錄.
多表查詢
接下來(lái)我們來(lái)看幾個(gè)例子吧!
1.查詢員工信息,顯示部門(mén)信息
select * from People,department where People.DepartmentId = department.DepartmentId

2.查詢員工信息,顯示職級(jí)名稱(chēng)
select * from People,s_rank where People.RankId = s_rank.RankId

3.查詢員工信息,顯示部門(mén)名稱(chēng),顯示職級(jí)名稱(chēng)
select * from People,department,s_rank where People.departmentId = department.DepartmentId and People.RankId = s_rank.RankId

內(nèi)連接查詢
在數(shù)據(jù)庫(kù)的查詢過(guò)程中,存在有內(nèi)連接查詢,這個(gè)時(shí)候,我們就需要用到inner這個(gè)關(guān)鍵字,下面我們來(lái)看幾個(gè)例子吧!
1.查詢員工信息,顯示部門(mén)信息
select * from People inner join department on People.departmentId = department.DepartmentId

2.查詢員工信息,顯示職級(jí)名稱(chēng)
select * from People inner join s_rank on People.RankId = s_rank.RankId

3.查詢員工信息,顯示部門(mén)名稱(chēng),顯示職級(jí)名稱(chēng)
select * from People inner join department on People.departmentId = department.DepartmentId inner join s_rank on People.RankId = s_rank.RankId

外連接查詢(左外連,右外連,全外連)
1.查詢員工信息,顯示部門(mén)信息(左外連)
select * from People left join department on People.departmentId = department.DepartmentId

2.查詢員工信息,顯示職級(jí)名稱(chēng)(左外接)
select * from People left join s_rank on People.RankId = s_rank.RankId

3.查詢員工信息,顯示部門(mén)名稱(chēng),顯示職級(jí)名稱(chēng)(左外連)
select * from People left join department on People.departmentId = department.DepartmentId inner join s_rank on People.RankId = s_rank.RankId

4.右外連
A left join B = B right join A
select * from People right join department on People.departmentId = department.DepartmentId

全外連查詢(無(wú)論是否符合關(guān)系,都要顯示數(shù)據(jù))
1.select * from People full join department on People.departmentId = department.DepartmentId

多表查詢的主要例子
1.查詢出武漢地區(qū)所有的員工信息,要求顯示部門(mén)名稱(chēng),以及員工的詳細(xì)資料(顯示中文別名)
select PeopleId 員工編號(hào),DepartmentName 部門(mén)名稱(chēng),PeopleName 員工姓名,PeopleSex 員工性別, PeopleBirth 員工生日,PeoPleSalary 月薪,PeoplePhone 電話,PeopleAddress 地址 from People,department where People.departmentId = department.DepartmentId

2.查詢出武漢地區(qū)所有員工的信息,要求顯示部門(mén)名稱(chēng),職級(jí)名稱(chēng)以及員工的詳細(xì)資料
select PeopleId 員工編號(hào),DepartmentName 部門(mén)名稱(chēng),RankName 職級(jí)名稱(chēng), PeopleName 員工姓名,PeopleSex 員工性別, PeopleBirth 員工生日,PeoPleSalary 月薪,PeoplePhone 電話,PeopleAddress 地址 from People,department,s_rank where People.departmentId = department.DepartmentId and People.RankId = s_rank.RankId and PeopleAddress = '武漢'

3.根據(jù)部門(mén)分組統(tǒng)計(jì)員工人數(shù),員工工資總和,平均工資,最高工資和最低工資
select DepartmentName 部門(mén)名稱(chēng), count(*) 員工人數(shù),sum(PeopleSalary) 工資總和,avg(PeopleSalary) 平均工資,max(PeopleSalary) 最高工資,min(PeopleSalary) 最低工資 from People,department where People.departmentId = department.DepartmentId group by department.DepartmentId,DepartmentName

4.根據(jù)部門(mén)分組統(tǒng)計(jì)員工人數(shù),員工工資總和,平均工資,最高工資和最低工資平均工資在10000元以下的不參與排序。根據(jù)平均工資降序排序
select DepartmentName 部門(mén)名稱(chēng), count(*) 員工人數(shù),sum(PeopleSalary) 工資總和,avg(PeopleSalary) 平均工資,max(PeopleSalary) 最高工資,min(PeopleSalary) 最低工資 from People,department where People.departmentId = department.DepartmentId group by department.DepartmentId,DepartmentName having avg(PeopleSalary) >= 15000 order by avg(PeopleSalary) desc

5.根據(jù)部門(mén)名稱(chēng),然后根據(jù)職位名稱(chēng)分組,統(tǒng)計(jì)員工人數(shù),員工工資總和
平均工資,最高工資,和最低工資
select DepartmentName 部門(mén)名稱(chēng),RankName 職級(jí)名稱(chēng), count(*) 員工人數(shù),sum(PeopleSalary) 工資總和,avg(PeopleSalary) 平均工資,max(PeopleSalary) 最高工資,min(PeopleSalary) 最低工資 from People,department,s_rank where People.departmentId = department.DepartmentId and People.RankId = s_rank.RankId group by department.DepartmentId,DepartmentName,s_rank.RankId,s_rank.RankName

如何鞏固學(xué)習(xí)
提示:在學(xué)習(xí)的過(guò)程中,我們需要先自行進(jìn)行思考,而不是一遇到不會(huì)的就放棄思考直接看答案,如果最后遇到真的不會(huì)的題目,我們可以適當(dāng)?shù)倪M(jìn)行觀看答案,看自己的思路是否正確,在作出正確的判斷
總結(jié)
到此這篇關(guān)于SQL Server數(shù)據(jù)庫(kù)入門(mén)教程之多表查詢的文章就介紹到這了,更多相關(guān)SQLServer多表查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL數(shù)據(jù)庫(kù)查詢之多表查詢總結(jié)
- MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)概念及多表查詢和事物操作
- MySQL數(shù)據(jù)庫(kù)查詢進(jìn)階之多表查詢?cè)斀?/a>
- MySQL數(shù)據(jù)庫(kù)高級(jí)查詢和多表查詢
- 詳解MySQL數(shù)據(jù)庫(kù)--多表查詢--內(nèi)連接,外連接,子查詢,相關(guān)子查詢
- Android Room數(shù)據(jù)庫(kù)多表查詢的使用實(shí)例
- sqlserver 多表查詢不同數(shù)據(jù)庫(kù)服務(wù)器上的表
- 數(shù)據(jù)庫(kù)librarydb多表查詢的操作方法
相關(guān)文章
MSSQL 數(shù)據(jù)庫(kù)備份和還原的幾種方法 圖文教程
MSSQL 數(shù)據(jù)庫(kù)備份和還原的幾種方法小結(jié),配有圖文,大家看了就知道了。2009-12-12
sql server deadlock跟蹤的4種實(shí)現(xiàn)方法
一提到跟蹤倆字,很多人想到警匪片中的場(chǎng)景,但這里介紹的可不是一樣的哦,下面這篇文章主要給大家介紹了關(guān)于sql server deadlock跟蹤的4種實(shí)現(xiàn)方法,文中通過(guò)圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09
Windows環(huán)境下實(shí)現(xiàn)批量執(zhí)行Sql文件
這篇文章主要介紹了Windows環(huán)境下實(shí)現(xiàn)批量執(zhí)行Sql文件的相關(guān)資料,需要的朋友可以參考下2021-10-10
SQL SERVER修改函數(shù)名容易引發(fā)的問(wèn)題分析
這篇文章主要介紹了SQL SERVER修改函數(shù)名容易引發(fā)的問(wèn)題分析的相關(guān)資料,需要的朋友可以參考下2016-02-02
將一個(gè)表中個(gè)某一列修改為自動(dòng)增長(zhǎng)的方法
如果表中沒(méi)有數(shù)據(jù)可以使用 drop column然后再add column,如果存在一部分?jǐn)?shù)據(jù)可以使用本文提供的第二種解決方法2014-09-09
如何統(tǒng)計(jì)全天各個(gè)時(shí)間段產(chǎn)品銷(xiāo)量情況(sqlserver)
對(duì)一個(gè)賣(mài)場(chǎng)來(lái)說(shuō),肯定有負(fù)責(zé)人每天定時(shí)去統(tǒng)計(jì)每天各個(gè)時(shí)間段產(chǎn)品銷(xiāo)量情況,以此保證賣(mài)場(chǎng)長(zhǎng)期可持續(xù)發(fā)展,有的用excel表統(tǒng)計(jì),但是用起來(lái)很不方便,下面給大家介紹sqlserver版如何統(tǒng)計(jì)全天各個(gè)時(shí)間段產(chǎn)品銷(xiāo)量情況2015-08-08
數(shù)據(jù)庫(kù)觸發(fā)器DB2和SqlServer有哪些區(qū)別
大部分?jǐn)?shù)據(jù)庫(kù)語(yǔ)句的基本語(yǔ)法是相同的,但具體到的每一種數(shù)據(jù)庫(kù),又有些不一樣,例如觸發(fā)器,DB2和SQL Server兩種很大的不同。對(duì)數(shù)據(jù)庫(kù)觸發(fā)器DB2和SqlServer有哪些區(qū)別感興趣的朋友一起看看本文吧2015-11-11

