电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

SQL Server數據庫連接查詢的種類及其應用

瀏覽:148日期:2023-11-05 18:20:59

在數據庫開發方面,通過單表所表現的實現,有時候需要組合查詢來找到我們需要的記錄集,這時候我們就會用到連接查詢。

連接查詢主要包括以下幾個方面:

內連接

內連接一般是我們最常使用的,也叫自然連接,是用比較運算符比較要聯接列的值的聯接。它是通過(INNER JOIN或者JOIN)關鍵字把多表進行連接。我們通過建立兩個表來說明問題:

StudentID StudentName StudentAge

----------- ----------------- -----------

1 張三 25

2 李四 26

3 王五 27

4 趙六 28

5 無名氏 27

以上是表Student,存放學生基本信息。

BorrowBookID BorrowBookName StudentID BorrowBookPublish

-------------------

1 馬克思主義政治經濟學 1 電子工業出版社

2 毛澤東思想概論 2 高等教育出版社

3 鄧小平理論 3 人民郵電出版社

4 大學生思想道德修養 4 中國鐵道出版社

5 C語言程序設計 NULL 高等教育出版社

以上是表BorrowBook,存放學生所借的書。

以上兩張表是通過StudentID進行關聯,在這里先執行內聯連語句:

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student

Inner Join BorrowBook

On Student.StudentID = BorrowBook.StudentID

上面這個語句也可以寫成

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

FROM Student,BorrowBook

WHERE Student.StudentID = BorrowBook.StudentID

其中,Inner Join是SQL Server的缺省連接,可簡寫為Join。在Join后面指定具體的表作連接。On后面指定了連接的條件。

運行的結果如下:

tudentName StudentAge BorrowBookName BorrowBookPublish

--------------

張三 25 馬克思主義政治經濟學 電子工業出版社

李四 26 毛澤東思想概論 高等教育出版社

王五 27 鄧小平理論 人民郵電出版社

趙六 28 大學生思想道德修養 中國鐵道出版社

(所影響的行數為 4 行)

根據查詢的結果來進行分析:

如果多個表要做連接,那么這些表之間必然存在著主鍵和外鍵的關系。所以需要將這些鍵的關系列出,就可以得出表連接的結果。在上例中,StudentID是Student表的主鍵,StudentID又是BorrowBook表的外鍵,這兩個表的連接條件就是Student.StudentID = BorrowBook.StudentID,對比查詢結果可以得知,內連接查詢只查詢出主鍵StudentID在另張表中存在的記錄,像Student表中的第五條記錄,因為在BorrowBook表中StudentID不存在,像BorrowBook表中的第五條記錄StudentID為Null,對應的Student表中沒有記錄,所以就不會顯示。所以內連接就是將參與的數據表中的每列與其它數據表的列相匹配,形成臨時數據表,并將滿足數據項相等的記錄從臨時數據表中選擇出來。

內連接查詢操作列出與連接條件匹配的數據行,它使用比較運算符比較被連接列的列值。內連接分三種:

1) 等值連接:在連接條件中使用等于號(=)運算符比較被連接列的列值,其查詢結果中列出被連接表中的所有列,包括其中的重復列。

2) 不等連接: 在連接條件使用除等于運算符以外的其它比較運算符比較被連接的列的列值。這些運算符包括> 、> =、 <=、 <、!> 、! <和 <> 。

3) 自然連接:在連接條件中使用等于(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,并刪除連接表中的重復列。

例如對于用不等值連接語句:

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student

Inner Join BorrowBook

On Student.StudentID <> BorrowBook.StudentID

StudentName StudentAge BorrowBookName BorrowBookPublish

----------------

李四 26 馬克思主義政治經濟學 電子工業出版社

王五 27 馬克思主義政治經濟學 電子工業出版社

趙六 28 馬克思主義政治經濟學 電子工業出版社

無名氏 27 馬克思主義政治經濟學 電子工業出版社

張三 25 毛澤東思想概論 高等教育出版社

王五 27 毛澤東思想概論 高等教育出版社

趙六 28 毛澤東思想概論 高等教育出版社

無名氏 27 毛澤東思想概論 高等教育出版社

張三 25 鄧小平理論 人民郵電出版社

李四 26 鄧小平理論 人民郵電出版社

趙六 28 鄧小平理論 人民郵電出版社

無名氏 27 鄧小平理論 人民郵電出版社

張三 25 大學生思想道德修養 中國鐵道出版社

李四 26 大學生思想道德修養 中國鐵道出版社

王五 27 大學生思想道德修養 中國鐵道出版社

無名氏 27 大學生思想道德修養 中國鐵道出版社

它就會把兩表所對應不相等的記錄給查詢出來了。

外連接

外連接主要包括左連接、右連接和完整外部連接。

1)左連接:Left Join 或 Left Outer Join

左連接的結果集包括LEFT OUTER子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值(Null)。

我們看對應的SQL語句:

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student

Left JOIN BorrowBook

On Student.StudentID = BorrowBook.StudentID

運行的結果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish

---------------

張三 25 馬克思主義政治經濟學 電子工業出版社

李四 26 毛澤東思想概論 高等教育出版社

王五 27 鄧小平理論 人民郵電出版社

趙六 28 大學生思想道德修養 中國鐵道出版社

無名氏 27 NULL NULL

(所影響的行數為 5 行)

可以看到的是,它查詢的結果是以左表Student為主,Student對應的StudentID在右表BorrowBook如果不存在的話,就會用NULL值來代替。

2) 右連接:Right Join 或 Right Outer Join

右連接和左連接相反,它將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值(Null)。

我們看對應的SQL語句

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student

Right JOIN BorrowBook

On Student.StudentID = BorrowBook.StudentID

運行的結果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish

-------------------

張三 25 馬克思主義政治經濟學 電子工業出版社

李四 26 毛澤東思想概論 高等教育出版社

王五 27 鄧小平理論 人民郵電出版社

趙六 28 大學生思想道德修養 中國鐵道出版社

NULL NULL C語言程序設計 高等教育出版社

(所影響的行數為 5 行)

可以看到的是,它查詢的結果是以右表BorrowBook為主,BorrowBook對應的StudentID在左表Student如果不存在的話,就會用NULL值來代替。

3) 完整外部聯接:Full Join 或 Full Outer Join

完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。

我們看對應的SQL語句

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student

FULL OUTER JOIN BorrowBook

On Student.StudentID = BorrowBook.StudentID

結果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish -------------------

NULL NULL C語言程序設計 高等教育出版社

張三 25 馬克思主義政治經濟學 電子工業出版社

李四 26 毛澤東思想概論 高等教育出版社

王五 27 鄧小平理論 人民郵電出版社

趙六 28 大學生思想道德修養 中國鐵道出版社

無名氏 27 NULL NULL

(所影響的行數為 6 行)

可以看到的是,它查詢的結果除了把相對應完全匹配的記錄查出來以后,還會把左連接及右連接兩種情形都包括,對應的值用NULL值來代替。

交叉連接

交叉連接(CROSS JOIN),就是指不帶W H E R E子句的查詢。在數學上,就是表的笛卡爾積。也就是它查詢出來的記錄數行為兩個表的乘積,對應記錄也就是為表A*表B。

我們看對應的SQL語句

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student Cross Join BorrowBook

運行的結果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish

---------------

張三 25 馬克思主義政治經濟學 電子工業出版社

李四 26 馬克思主義政治經濟學 電子工業出版社

王五 27 馬克思主義政治經濟學 電子工業出版社

趙六 28 馬克思主義政治經濟學 電子工業出版社

無名氏 27 馬克思主義政治經濟學 電子工業出版社

張三 25 毛澤東思想概論 高等教育出版社

李四 26 毛澤東思想概論 高等教育出版社

王五 27 毛澤東思想概論 高等教育出版社

趙六 28 毛澤東思想概論 高等教育出版社

無名氏 27 毛澤東思想概論 高等教育出版社

張三 25 鄧小平理論 人民郵電出版社

李四 26 鄧小平理論 人民郵電出版社

王五 27 鄧小平理論 人民郵電出版社

趙六 28 鄧小平理論 人民郵電出版社

無名氏 27 鄧小平理論 人民郵電出版社

張三 25 大學生思想道德修養 中國鐵道出版社

李四 26 大學生思想道德修養 中國鐵道出版社

王五 27 大學生思想道德修養 中國鐵道出版社

趙六 28 大學生思想道德修養 中國鐵道出版社

無名氏 27 大學生思想道德修養 中國鐵道出版社

張三 25 C語言程序設計 高等教育出版社

李四 26 C語言程序設計 高等教育出版社

王五 27 C語言程序設計 高等教育出版社

趙六 28 C語言程序設計 高等教育出版社

無名氏 27 C語言程序設計 高等教育出版社

(所影響的行數為 25 行)

可以看到的是,它把表Student中的每一行和BorrowBook中的每一條記錄都進行關聯,返回的記錄數為5*5=25行,即笛卡爾積,它執行的語句也就等效于

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student,BorrowBook

標簽: Sql Server 數據庫
主站蜘蛛池模板: 超声波反应釜【百科】-以马内利仪器 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 茶叶百科网-茶叶知识与茶文化探讨分享平台 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 西安中国国际旅行社(西安国旅) | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 紫外可见光分光度计-紫外分光度计-分光光度仪-屹谱仪器制造(上海)有限公司 | 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 信阳市建筑勘察设计研究院有限公司 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 |