中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

MySQL聯合查詢的示例分析

發布時間:2021-04-19 10:39:46 來源:億速云 閱讀:172 作者:小新 欄目:MySQL數據庫

這篇文章給大家分享的是有關MySQL聯合查詢的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

笛卡爾積

笛卡爾乘積是指在數學中,兩個集合X和Y的笛卡爾積(Cartesian product),又稱直積,表示為X×Y,第一個對象是X的成員而第二個對象是Y的所有可能有序對的其中一個成員 [3] 。
假設集合A={a, b},集合B={0, 1, 2},則兩個集合的笛卡爾積為{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

內連接

select 字段 from 表1 別名1 [inner] join 表2 別名2 on 連接條件 and 其他條件;select 字段 from 表1 別名1,表2 別名2 where 連接條件 and 其他條件;

MySQL聯合查詢的示例分析

外連接

外連接分為左外連接和右外連接。如果聯合查詢,左側的表完全顯示我們就說是左外連接;右側的表完全顯示我們就說是右外連接。

--左外連接,表1完全顯示select 字段名 from 表名1 left join 表名2 on 連接條件;-- 右外連接,表2完全顯示select 字段 from 表名1 right join 表名2 on 連接條件;

MySQL聯合查詢的示例分析
MySQL聯合查詢的示例分析

自連接

涉及到行與行之間的比較時,就需要自連接了
示例:顯示所有“計算機原理”成績比“Java”成績高的成績信息

-- 先查詢“計算機原理”和“Java”課程的idselect id,name from course where name='Java' or name='計算機原理';-- 再查詢成績表中,“計算機原理”成績比“Java”成績 好的信息SELECTs1.*FROMscore s1,score s2WHEREs1.student_id = s2.student_idAND s1.score < s2.scoreAND s1.course_id = 1AND s2.course_id = 3;
-- 也可以使用join on 語句來進行自連接查詢SELECTs1.*FROMscore s1JOIN score s2 ON s1.student_id = s2.student_idAND s1.score < s2.scoreAND s1.course_id = 1AND s2.course_id = 3;

子查詢

子查詢是指嵌入在其他sql語句中的select語句,也叫嵌套查詢。
單行子查詢:返回一行記錄的子查詢
案例:查詢與“小白” 同學的同班同學:

select * from student where classes_id=(select classes_id from student wherename='小白');

多行子查詢:返回多行記錄的子查詢

  1. [NOT] IN關鍵字:
    先執行子查詢的SQL,得到的結果放到內存中,再進行外層查詢,就直接把給出的限制條件和子查詢的結果比較,篩選就好了。(依賴內存,適合子查詢的結果集合比較小的情況)

  2. [NOT] EXISTS關鍵字:
    先執行外層查詢,依次取每一條外層查詢的記錄,帶入到里層查詢中
    如果里層查詢的結果集合非空,就保留外層查詢到的結果
    如果里層查詢的結果集合為空,就丟棄外層查詢到的結果
    不依賴內存,適合外層查詢結果集合小,子查詢的結果集合比較大的情況

合并查詢

為了合并多個select的執行結果,可以使用集合操作符 union,union all。使用UNION
和UNION ALL時,前后查詢的結果集中,字段需要一致。
union
該操作符用于取得兩個結果集的并集。當使用該操作符時,會自動去掉結果集中的重復行。
案例:查詢id小于3,或者名字為“英文”的課程:

select * from course where id<3unionselect * from course where name='英文';-- 或者使用or來實現select * from course where id<3 or name='英文';

union all
該操作符用于取得兩個結果集的并集。當使用該操作符時,不會去掉結果集中的重復行。
案例:查詢id小于3,或者名字為“Java”的課程:

-- 可以看到結果集中出現重復數據Javaselect * from course where id<3union allselect * from course where name='英文';

感謝各位的閱讀!關于“MySQL聯合查詢的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

横山县| 射阳县| 图们市| 瑞安市| 安吉县| 太湖县| 公主岭市| 陆川县| 陆河县| 麻栗坡县| 汨罗市| 香河县| 大方县| 白山市| 紫金县| 丰台区| 衡阳市| 平山县| 宿州市| 开平市| 阿克苏市| 延津县| 屏东县| 武川县| 寿宁县| 金乡县| 工布江达县| 哈巴河县| 屏东市| 庄浪县| 斗六市| 曲松县| 甘泉县| 武陟县| 阿拉善右旗| 舒城县| 山东| 资兴市| 砀山县| 布拖县| 阿鲁科尔沁旗|