MySQL 基礎(chǔ) 6 多表查詢

1.1 多表查詢的概述

1.1.1 多表查詢的分類

1.1.1.1連接查詢

  • 交叉連接:cross join
    • 交叉連接:查詢到的是兩個(gè)表的笛卡爾積。
    • 語法:
    • select * from 表1 cross join 表2;
    • select * from 表1,表2;
  • 內(nèi)連接:inner join(inner是可以省略的)
    • 顯示內(nèi)連接:在SQL中顯示的調(diào)用inner join關(guān)鍵字
    • 語法:select * from 表1 inner join 表2 on 關(guān)聯(lián)條件;
    • 隱式內(nèi)連接:在SQL中沒有調(diào)用inner join關(guān)鍵字
    • 語法:select * from 表1,表2 where 關(guān)聯(lián)條件;
  • 外連接:outer join(outer可以省略的)
    • 左外連接:
    • 語法:select * from 表1 left outer join 表2 on 關(guān)聯(lián)條件;
    • 右外連接
    • 語法:select * from 表1 right outer join 表2 on 關(guān)聯(lián)條件;

1.1.1.2子查詢

  • 查詢:一個(gè)查詢語句條件需要依賴另一個(gè)查詢語句的結(jié)果。

1.2 多表查詢之?dāng)?shù)據(jù)準(zhǔn)備

1.1.1數(shù)據(jù)準(zhǔn)備

  • 班級數(shù)據(jù)準(zhǔn)備
  • 班級表數(shù)據(jù)的準(zhǔn)備.png
  • 學(xué)生表數(shù)據(jù)的準(zhǔn)備

  • 學(xué)生表數(shù)據(jù)的準(zhǔn)備.png
  • 課程表數(shù)據(jù)的準(zhǔn)備

  • 課程表數(shù)據(jù)的準(zhǔn)備.png
  • 學(xué)生選課表的準(zhǔn)備

  • 學(xué)生選課表的準(zhǔn)備.png

1.3 多表查詢之交叉連接

1.3.1 使用cross join關(guān)鍵字

  • select * from classes cross join student;

1.3.2 不使用cross join關(guān)鍵字

  • SELECT * FROM classes,student;

1.4 多表查詢之內(nèi)連接

1.4.1 顯示內(nèi)連接

  • select * from classes c inner join student s on c.cid = s.cno;

  • 顯示內(nèi)連接.png

1.4.2 隱式內(nèi)連接

  • SELECT * FROM classes c,student s WHERE c.cid = s.cno;
  • 隱式內(nèi)連接.png

1.5 多表查詢之外連接

1.5.1 外連接

  • 左外連接
    • SELECT * FROM classes c LEFT OUTER JOIN student s ON c.cid = s.cno;

    • 左外連接.png
  • 右外連接
    • select * from classes c right outer join student s on c.cid = s.cno;

    • 右外連接.png

1.6 多表查詢之子查詢

1.6.1 帶in的子查詢

  • 查詢學(xué)生生日在91年之后的班級的信息。

  • select * from classes where cid in (SELECT cno FROM student WHERE birthday > '1991-01-01');

  • 帶in的子查詢.png

1.6.2 帶exists的子查詢

  • 查詢學(xué)生生日大于91年1月1日,如果記錄存在,前面的SQL語句就會執(zhí)行

  • select * from classes where exists (SELECT cno FROM student WHERE birthday > '1991-01-01');

  • 帶exists的子查詢.png

1.6.3 帶any的子查詢

  • SELECT * FROM classes WHERE cid > ANY (SELECT cno FROM student )

  • 帶any的子查詢.png

1.6.4 帶all的子查詢

  • SELECT * FROM classes WHERE cid > ALL (SELECT cno FROM student)

  • 帶all的子查詢.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容