最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL SERVER實(shí)現(xiàn)連接與合并查詢

 更新時間:2022年02月24日 10:45:27   作者:.NET開發(fā)菜鳥  
本文詳細(xì)講解了SQL SERVER實(shí)現(xiàn)連接與合并查詢的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

創(chuàng)建測試表MyStudentInfo

CREATE table MyStudentInfo
(
Id int not null primary key,
Name varchar(16),
Age int,
Gender varchar(2),
Phone varchar(16),
Address varchar(50),
GradeId int
)

聯(lián)合插入多條數(shù)據(jù)

INSERT INTO MyStudentInfo
SELECT 1,'張三',20,'1','15801258912','上海',1 UNION
SELECT 2,'李四',22,'1','12345678901','北京',1 UNION
SELECT 3,'王五',16,'1','13976891234','天津',2 UNION
SELECT 4,'趙六',19,'1','18676891234','重慶',3 UNION
SELECT 5,'小紅',21,'2','17776891234','廣州',4 UNION
SELECT 6,'小王',25,'2','13176891234','深圳',5 UNION
SELECT 7,'小劉',18,'2','13374591234','南京',6 UNION
SELECT 8,'小張',16,'1','13974596734','長沙',6 UNION
SELECT 9,'小羅',27,'1','13175122786','武漢',7 UNION
SELECT 10,'小袁',21,'2','17715872346','石家莊',8

創(chuàng)建測試表GradeInfo

CREATE table GradeInfo
(
Id int not null primary key,
GradeName varchar(16)
)

聯(lián)合插入多條數(shù)據(jù)

INSERT INTO GradeInfo
SELECT 1,'.NET' UNION
SELECT 2,'Android' UNION
SELECT 3,'PHP' UNION
SELECT 4,'UI' UNION
SELECT 5,'HTML5' UNION
SELECT 6,'JAVA' UNION
SELECT 9,'HADOOP' UNION
SELECT 10,'大數(shù)據(jù)'

內(nèi)鏈接

內(nèi)鏈接是從結(jié)果表中刪除其他被鏈接表中沒有匹配的所有行,所以我們說內(nèi)鏈接可能丟失數(shù)據(jù)

SELECT s.Id,s.Name,s.Age,s.Gender,s.Phone,s.GradeId,g.GradeName
FROM MyStudentInfo s INNER JOIN GradeInfo g ON s.GradeId=g.Id

外部鏈接

左外聯(lián)接,關(guān)鍵字LEFT JOIN

左外聯(lián)接,結(jié)果集中包括左表中的所有行,如果左表的某一行在右表中沒有匹配行,則在關(guān)聯(lián)的結(jié)果集行中,

來自右表的所有選擇列表均為NULL

SELECT s.Id,s.Name,s.Age,s.Gender,s.Phone,s.GradeId,g.GradeName
FROM MyStudentInfo s LEFT JOIN GradeInfo g ON s.GradeId=g.Id

右外聯(lián)接

GIGHT JOIN進(jìn)行聯(lián)接

是左外聯(lián)接的反向聯(lián)接,將返回右表的所有行,如果右表的某一行在左表中沒有匹配行,則將為左表返回NULL

SELECT s.Id,s.Name,s.Age,s.Gender,s.Phone,s.GradeId,g.GradeName
FROM MyStudentInfo s RIGHT JOIN GradeInfo g ON s.GradeId=g.Id

完整外聯(lián)接

關(guān)鍵字是FULL JOIN

完整外聯(lián)接使用了FULL JOIN進(jìn)行聯(lián)接,當(dāng)某一行在另一表中沒有匹配行,另一表的選擇列表將返回NULL

SELECT s.Id,s.Name,s.Age,s.Gender,s.Phone,s.GradeId,g.GradeName
FROM MyStudentInfo s FULL JOIN GradeInfo g ON s.GradeId=g.Id

交叉聯(lián)接(笛卡爾積)

CORSS JOIN 沒有where 也沒有on,返回行數(shù)是兩表行數(shù)的乘積

SELECT s.Id,s.Name,s.Age,s.Gender,s.Phone,s.GradeId,g.GradeName
FROM MyStudentInfo s CROSS JOIN GradeInfo g

UNION:UNION操作符用于合并兩個或多個 SELECT 語句的結(jié)果集

UNION必須遵循

  • 1.兩個SELECT語句選擇列表中的列數(shù)目必須一樣,而且對應(yīng)位置上的列的數(shù)據(jù)類型必須相同或者兼容,每條 SELECT 語句中的列的順序必須相同
  • 2.UNION 結(jié)果集中的列名總是等于 UNION 中第一個 SELECT 語句中的列名
  • 3.union默認(rèn)自動去除重復(fù)行
  • 4.如果需要手動排序,order by語句必須加在最后一個select語句之后,但是他所使用的排序列名必須是第一個select選擇列表中的列名
SELECT Age,Name FROM MyStudentInfo
UNION
SELECT Id,GradeName FROM GradeInfo
ORDER BY Age DESC

UNION ALL

  • 1.加上ALL關(guān)鍵字之后,功能就是不刪除重復(fù)行,也不對行進(jìn)行自動排序
  • 2.如果希望把不同數(shù)據(jù)類型的字段合并查詢,必須進(jìn)行類型轉(zhuǎn)換使其相對應(yīng)的數(shù)據(jù)類型相同或者兼容
  • 3.當(dāng)合并兩個表,列數(shù)不同時.只要向其中一個表源中添加列,就可以使其兩個表的列數(shù)相同
SELECT Age,Name,Address FROM MyStudentInfo
UNION ALL
SELECT Id,GradeName,NULL FROM GradeInfo
ORDER BY Age DESC

UNION和聯(lián)接查詢有什么區(qū)別

  • 1.在合并中,兩個表的數(shù)量和數(shù)據(jù)類型必須相同 ; 在聯(lián)接中,一個表的行可能與另一個表的行有很大的區(qū)別
  • 2.在合并中,行的數(shù)量是兩個表行的"和" ; 在聯(lián)接中,行的最大數(shù)目是他們的"乘積"

到此這篇關(guān)于SQL SERVER實(shí)現(xiàn)連接與合并查詢的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

叙永县| 洪江市| 汝阳县| 乡宁县| 泸水县| 阿克| 休宁县| 芷江| 双城市| 揭东县| 达州市| 沙坪坝区| 丰台区| 五常市| 门源| 八宿县| 合山市| 确山县| 西丰县| 江华| 湟中县| 台湾省| 凉山| 秭归县| 都兰县| 特克斯县| 白玉县| 阿拉善盟| 林甸县| 蒙山县| 手机| 岫岩| 涡阳县| 遵义县| 玛多县| 本溪市| 阳谷县| 贞丰县| 鹤庆县| 万荣县| 塔河县|