日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL Sever联接查询

發(fā)布時間:2025/5/22 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Sever联接查询 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

聯(lián)接查詢:是有一個笛卡爾乘積運算再加一個選取運算構(gòu)成的查詢。
首先用笛卡爾乘積完成對兩個數(shù)據(jù)集合的乘運算,然后對生成的結(jié)果集合進行選取運算,確保只把分別來自兩個數(shù)據(jù)集合并且具有重疊部分的行合并在一起。
聯(lián)接的全部意義在于水平方向上合并兩個數(shù)據(jù)集合,并產(chǎn)生一盒新的結(jié)果集合。
聯(lián)接可分為以下幾類:內(nèi)部聯(lián)接、外部聯(lián)接、交叉聯(lián)接


1. 內(nèi)部聯(lián)接

內(nèi)部聯(lián)接是使用比較運算符比較要聯(lián)接列中的值得聯(lián)接。內(nèi)連接也叫聯(lián)接,最早被稱為普通聯(lián)接或自然聯(lián)接。
內(nèi)聯(lián)接是從結(jié)果中刪除其他被聯(lián)接表中沒有匹配行的所有行,所以內(nèi)聯(lián)接可能會丟失信息。

select * from SC join Student on Student.Sno = SC.Sno

2. 外部聯(lián)接

外部聯(lián)接則擴充了內(nèi)聯(lián)接的功能,會吧內(nèi)聯(lián)接中刪除表源中的一些保留下來,由于保留下來的行不同,可將外部聯(lián)接分為 左向外部聯(lián)接、右向外部聯(lián)接完整外部聯(lián)接。

2.1 左向外聯(lián)接

語法

select fieidlist from table1 left join table2 on table1.comlumnn=table2.column

參數(shù)說明:

參數(shù)說明
fieldlist搜索條件
table1 [inner] join table2將table1表與table2表進行外部聯(lián)接
table1.column=table2.columntable1表中與table2表中相同的列

eg. 把Studnet表和SC表左外連接,第二個表SC有不滿足聯(lián)接條件的行,則用NULL表示 。

select * from Student left join SC on Student.Sno=SC.Sno


解析:這里出現(xiàn)NULL說明SC表中沒有Sno等于4和6的

2.2 右向外聯(lián)接

右外向聯(lián)接使用 right jion 進行聯(lián)接,是左向外聯(lián)接的反向聯(lián)接。將返回右表的所有行。如果右表的某一行在左表中沒有匹配行,則將為坐標(biāo)返回空值。

語法:

select fieldlist from table1 right join table2 on table1.column=table2.column

eg. 把SC表和Course表右外聯(lián)接,第一個表SC有不滿足聯(lián)接條件的行,則用NULL表示。

select * from SC right join Course on Course.Cno=SC.Cno

這里右外聯(lián)接的是Course表,所以Course表的數(shù)據(jù)完整

2.3 完整外聯(lián)接

完整外連接使用 full join 進行聯(lián)接,將返回左表和右表中的所有行。當(dāng)某一行在另一個表中沒有匹配時,另一個表的選擇列表將包含空值。如果表之間有匹配行,則將整個結(jié)果集行包含基表的數(shù)據(jù)值。

語法:

select fieldlistfrom table1 full join table2 on table1.column=table2.column

eg. 把SC表和Course表完整外部聯(lián)接,顯示兩個表中所有的行。

select * from SC full join Course on Course.Cno=SC.Cno

3. 交叉聯(lián)接

交叉聯(lián)接使用 cross join 進行聯(lián)接,沒有where子句的交叉聯(lián)接將產(chǎn)生聯(lián)接所涉及的表的笛卡爾積。第一個表的行數(shù)乘以第二個表的行數(shù)等于笛卡爾積結(jié)果集得大小。

交叉聯(lián)接中列和行的數(shù)量是這樣計算的:

  • 交叉聯(lián)接中的列=原表中列的數(shù)量總和(想加)。
  • 交叉聯(lián)接中的行=原表中行數(shù)的積(相乘)。

語法:

select fieldlist from table1 cross join table2

其中,忽略 on 方法來創(chuàng)建交叉聯(lián)接。

eg. 把 Student 表和 Course 表進行交叉聯(lián)接。

select * from Student cross join Course

4. 聯(lián)接多表

4.1 在where子句中聯(lián)接多表

在 from 子句中寫聯(lián)接多個表的名稱,然后將任意兩個表的聯(lián)接條件分別寫在 where 子句后。

語法:

select fieldlist from table1, table2, table3 ... where table1.column=table2.column and table2.column=table3.column and ...

eg. 把 Student 表、Course 表和 SC 表,這3個表在 where 子句中聯(lián)接。

select * from Student,Course,SC where Student.Sno=SC.Sno and SC.Cno=Course.Cno

4.2 在 from 子句中聯(lián)接多表

在 from 子句中聯(lián)接多個表示內(nèi)部聯(lián)接的擴展。
語法:

select fieldlist from table1 join table2 join table3... on table1.column=table2.column and tbale2.column=table3.column

eg. 把 Student表、Course表 和 SC表,這3個表在from子句中聯(lián)接。

select * from Student join SC join Course on SC.Sno=Course.Cno on Student.Sno=SC.Sno

5. 使用 case 函數(shù)進行查詢

case 函數(shù)用于計算條件列表并返回多個可能結(jié)果表達(dá)式之一。
case函數(shù)具有以下兩種格式:

  • 簡單case函數(shù)將某個表達(dá)式與一組簡單表達(dá)式進行比較以確定結(jié)果。
  • case搜索函數(shù)計算一組不二表達(dá)式以確定結(jié)果。

簡單 case 函數(shù)的語法如下:

case input_expressionwhen when_expression then result_expression[...n][else else_result_expression] end

case 搜索函數(shù)的語法如下:

casewhen Boolean_expression then result_expression[...n][else else_result_expression] end

在 select 語句中,簡單 case 函數(shù)僅檢查是否相等,而不進行其他比較。本實例使用 case 函數(shù)更改產(chǎn)品系列類別的顯示,以使這些類別更容易理解。

select ProductNumber, Category = case productLinewhen 'R' then 'Rpad'when 'M' then 'Mountain'when 'T' then 'Touring'when 'S' then 'Other sale items'else 'Not for sale'endName from Production.Product order by ProductNumber

eg. 查詢SC表中的Sno和Cno,如果分?jǐn)?shù) >=90為優(yōu)秀,>=80為良好

select Sno,Cno,等級=case when Grade >=90 then '優(yōu)秀' when Grade >=80 then '良好' else '不及格' end from SC

使用 case 語句更新

使用 case 語句更新學(xué)生信息,使所有男生年齡減 1 ,所有女生年齡加 1 ,

update Student set Sage= case when Sex='男' then Sage-1 when Sex = '女' then Sage+1 end


官方地址:
https://www.920vip.net/article/87

總結(jié)

以上是生活随笔為你收集整理的SQL Sever联接查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 影音先锋美女 | 成 人 a v天堂 | 人妻久久久一区二区三区 | 五月激情丁香 | 有码av在线 | 精品国产一区二区三区久久久久久 | 免费 成 人 黄 色 | 精品一卡二卡三卡 | 精品国产精品国产偷麻豆 | 69视频免费在线观看 | 免费吸乳羞羞网站视频 | 51av在线 | 成年人免费观看视频网站 | 超级砰砰砰97免费观看最新一期 | 椎名由奈av一区二区三区 | 色咪咪网站 | 黄免费在线观看 | 美丽的姑娘观看在线播放 | 91网站在线看| 国产日本一区二区三区 | 极品videosvideo喷水 | 久久久久久久久久久久久女国产乱 | 国产精品呻吟 | 久久97视频 | 38在线视频 | 美丽的姑娘在线观看免费 | 亚洲av无一区二区三区 | 中文字幕乱码人妻无码久久 | 九九精品视频在线观看 | 亚洲黄色大片 | 国产一区二区三区影视 | 伊人9 | 少妇性生活视频 | 色综合久久久久无码专区 | 99精品黄色 | 自拍偷拍欧美激情 | a级免费毛片 | 黄色片毛片 | www视频在线观看 | 国产美女作爱全过程免费视频 | 精品久久久无码中文字幕 | 插我舔内射18免费视频 | 男生裸体视频网站 | x88av在线| 99热com | 永久免费精品 | av网站有哪些 | 国产成人在线观看免费网站 | 无码人妻丰满熟妇啪啪 | 成人动漫在线观看 | 久久两性视频 | 精品久久91 | 根深蒂固在线观看 | 超薄肉色丝袜一二三 | www.xxx国产 | 91一区二区三区在线 | 少妇脚交调教玩男人的视频 | 亚洲欧美精品久久 | 亚洲第9页 | 亚洲乱码国产乱码精品精软件 | 床戏高潮做进去大尺度视频 | 欧美日韩一 | 播播网色播播 | 六月婷婷中文字幕 | 在线免费黄色网 | 免费在线观看国产精品 | 亚洲天堂网一区 | 久久久噜噜噜 | 99视屏| 久久综合桃花网 | 婷婷激情社区 | 国产又黄又粗 | 国产精品亚洲综合 | 亚洲乱码日产精品bd在线观看 | 四虎午夜影院 | 欧美aa在线观看 | 日韩精品一区二区三区国语自制 | 人人射视频 | 香蕉视频网站在线观看 | www.插插插 | 亚洲精品国产一区二区 | 欧美一区二区高清 | 亚洲男人天堂网址 | 国产欧美日韩综合精品 | 久久久久久久中文字幕 | 精品女厕偷拍一区二区 | 国产一区视频在线免费观看 | 国产一区二区不卡在线 | 国产做受高潮漫动 | 精品无码久久久久久久久果冻 | 91久久精品国产 | 中文字幕xxxx| 无码国模国产在线观看 | 最新91在线 | 肉感丰满的av演员 | 黄色不卡 | 久久逼逼 | 午夜激情在线播放 | 国产h视频在线 |