亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在SQL語句中使用JOIN連接數據庫

發布時間:2021-01-13 15:15:19 來源:億速云 閱讀:152 作者:Leah 欄目:數據庫

這篇文章給大家介紹怎么在SQL語句中使用JOIN連接數據庫,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

通常有以下幾種連接方式:

JOIN  or  INNER JOIN(內連接) : 這兩個是相同的,要求兩邊表同時有對應的數據,返回行,任何一邊缺失數據就不顯示。

LEFT JOIN(左外連接):即使右邊的表中沒有匹配,也從左表返回所有的行。

RIGHT JOIN(右外連接):即使左邊的表中沒有匹配,也從右表返回所有的行。

FULL JOIN(全外連接):只要其中一個表中存在匹配就返回行。

如例,有grade表(課程號sn,分數scroe,學號id),student表(學號id,學生姓名name),要查詢學生的姓名和成績

怎么在SQL語句中使用JOIN連接數據庫 怎么在SQL語句中使用JOIN連接數據庫

當JOIN或是INNER JOIN時,

SELECT s.name,g.sn,g.score from student as s join grade as g on s.id = g.id

或者

SELECT s.name,g.sn,g.score from student as s inner join grade as g on s.id = g.id

結果集如下

怎么在SQL語句中使用JOIN連接數據庫

當LEFT JOIN時,

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id

結果集如下

怎么在SQL語句中使用JOIN連接數據庫

當RIGHT JOIN時,

SELECT s.name,g.sn,g.score from student as s right join grade as g on s.id = g.id

結果集如下

怎么在SQL語句中使用JOIN連接數據庫

當FULL JOIN時,

SELECT s.name,g.sn,g.score from student as s full join grade as g on s.id = g.id

結果集如下

怎么在SQL語句中使用JOIN連接數據庫

注意,兩個表連接時用on,在使用left join(right join或full join)時,on與where的區別是:

on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄

where條件是在臨時表生成好后再對臨時表進行過濾的條件,這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。如下圖,

on條件為黃色部分

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id and score =90

怎么在SQL語句中使用JOIN連接數據庫

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id where score =90

怎么在SQL語句中使用JOIN連接數據庫

下面看下SQL中join的各種用法

1.自然連接(natural join)

自然連接將表中具有相同名稱的列自動進行匹配,自然連接不必指定任何同等連接條件也不能認為指定哪些列需要被匹配,自然連接得到的結果表中,兩表中名稱相同的列只出現一次。

select * from employee natural join department;

2.內連接(inner join):產生的結果是A和B的交集(相同列里面的相同值)

內連接查詢能將左表和右表中能關聯起來的數據連接后返回,返回的結果就是兩個表中所有相匹配的數據。

select * from TableA as A inner join TableB B on A.PK = B.PK;
select * from TableA as A inner join TableB B on A.PK > B.PK;


怎么在SQL語句中使用JOIN連接數據庫

3.外連接(outer join)

內連接是要顯示兩張表的內存,而外連接不要求如此,外連接可以依據連接表保留左表,右表或全部表的行為而分為左外連接右外連接和全連接。

select * from TableA as A left(right/full) join TableB as B on A.PA = B.PK;

Full Join:產生的結果是A和B的并集(如果沒有相同的值會用null作為值)

怎么在SQL語句中使用JOIN連接數據庫

Left Join:產生表A的完全集,而B表中匹配的則有值(沒有匹配的則以null值取代)


怎么在SQL語句中使用JOIN連接數據庫

Right Join:產生表B的完全集,而A表中匹配的則有值(沒有匹配的則以null值取代)

怎么在SQL語句中使用JOIN連接數據庫

4.交叉連接(cross join)

又稱笛卡爾連接,交叉連接返回兩個集合的笛卡爾積。

select * from TableA cross join TableB;

關于怎么在SQL語句中使用JOIN連接數據庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石渠县| 龙游县| 池州市| 昂仁县| 鄂托克前旗| 贡觉县| 九江县| 利川市| 邹城市| 濉溪县| 哈尔滨市| 乐清市| 襄樊市| 土默特左旗| 三明市| 台安县| 浪卡子县| 河源市| 福建省| 库尔勒市| 年辖:市辖区| 罗定市| 政和县| 会泽县| 大石桥市| 五华县| 阿合奇县| 铜山县| 济源市| 东方市| 阳原县| 沭阳县| 常州市| 吉水县| 梅河口市| 池州市| 盐山县| 屯门区| 宣武区| 久治县| 永宁县|