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

歡迎訪問 生活随笔!

生活随笔

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

数据库

SQL学习笔记(05)_JOIN的类型与用法

發(fā)布時(shí)間:2023/12/20 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL学习笔记(05)_JOIN的类型与用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一望可相見,一步如重城。所愛隔山海,山海不可平。

所思隔云端,奈何凡肉身。愚公不復(fù)見,精衛(wèi)長(zhǎng)泣鳴。

天神猶降憐,誰(shuí)可恨終生。海有舟可渡,山有路可行。

此愛翻山海,山海俱可平。可平心中念,念去無(wú)自唏。

《山木詩(shī)詞全集》


原創(chuàng)作者:是飄飄呀!
博客地址:https://blog.csdn.net/weixin_44216392

INNER JOIN 關(guān)鍵字

INNER JOIN 關(guān)鍵字在表中存在至少一個(gè)匹配時(shí)返回行。

INNER JOIN 語(yǔ)法

SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;或者 SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name=table2.column_name;INNER JOINJOIN 是相同的。

內(nèi)連接 INNER JOIN示意圖

在這里我們沿用上一篇筆記的數(shù)據(jù)庫(kù)作為實(shí)例演示:

-- 選自 "Websites" 表的數(shù)據(jù) +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘寶 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鳥教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+ -- access" 網(wǎng)站訪問記錄表的數(shù)據(jù) +-----+---------+-------+------------+ | aid | site_id | count | date | +-----+---------+-------+------------+ | 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 | | 9 | 3 | 201 | 2016-05-17 | +-----+---------+-------+------------+
  • 查詢所有網(wǎng)站的訪問記錄
-- 查詢所有網(wǎng)站的訪問記錄 select a.name,b.count, b.date from websites a INNER JOIN access b on a.id=b.site_id --下面一句是為了給count字段排序,不寫也行。 ORDER BY b.count asc --(ASC不寫的時(shí)候默認(rèn)為升序)

之前學(xué)過(guò)了別名,在這個(gè)地方我們就正好可以使用上,它也提高了SQL語(yǔ)句的簡(jiǎn)潔性。我們看看結(jié)果:

注釋:INNER JOIN 關(guān)鍵字在表中存在至少一個(gè)匹配時(shí)返回行。如果 “websites” 表中的行在 “access” 中沒有匹配,則不會(huì)列出這些行。

LEFT JOIN 關(guān)鍵字

LEFT JOIN 關(guān)鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結(jié)果為 NULL。

LEFT JOIN 語(yǔ)法

SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name; -- 或者 SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name;-- 注:在某些數(shù)據(jù)庫(kù)中,LEFT JOIN 稱為 LEFT OUTER JOIN(即左外連接)。

左連接 LEFT JOIN示意圖

實(shí)例:我們依然查詢所有網(wǎng)站的訪問記錄;我使用的是MySQL數(shù)據(jù)庫(kù),在這里實(shí)踐了一下LEFT OUTER JOINLEFT JOIN的具體例子;

select a.name,b.count, b.date from websites a LEFT JOIN access b on a.id=b.site_idselect a.name,b.count, b.date from websites a LEFT OUTER JOIN access b on a.id=b.site_id

LEFT JOIN 的查詢結(jié)果:

LEFT OUTER JOIN 的查詢結(jié)果:簡(jiǎn)直一毛一樣啊有沒有~~嘿嘿

在查詢結(jié)果中我們也可以發(fā)現(xiàn),即使右表沒有匹配的行也會(huì)顯示出來(lái),并使用NULL 填充;
so,LEFT JOIN 關(guān)鍵字從左表(Websites)返回所有的行,即使右表(access_log)中沒有匹配。

RIGHT JOIN 關(guān)鍵字

RIGHT JOIN 關(guān)鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結(jié)果為 NULL

RIGHT JOIN 語(yǔ)法

SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;SELECT column_name(s) FROM table1 RIGHT OUTER JOIN table2 --與LEFT OUTER JOIN 同理 ON table1.column_name=table2.column_name; -- 于左連接就是左右的問題,有木有?

右連接RIGHT JOIN 示意圖

實(shí)操!!!

操作前先先在 access 表添加一條數(shù)據(jù)在 websites 表沒有對(duì)應(yīng)的數(shù)據(jù);

INSERT INTO access(aid, site_id, count, date) VALUES (10, 6, 111, '2016-03-09');

接下來(lái)進(jìn)行右外連接的實(shí)際操作

-- 查詢所有網(wǎng)站的訪問記錄 select a.name,b.count, b.date from websites a LEFT JOIN access b on a.id=b.site_id --右連接,也叫右外連接select a.name,b.count, b.date from websites a LEFT OUTER JOIN access b on a.id=b.site_id

查詢結(jié)果:RIGHT JOIN 關(guān)鍵字從右表返回所有的行,即使左表中沒有匹配,也會(huì)使用NULL進(jìn)行填充。


傳統(tǒng)功夫,點(diǎn)到為止。

總結(jié)

以上是生活随笔為你收集整理的SQL学习笔记(05)_JOIN的类型与用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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