MySQL 表的內(nèi)外連接案例詳解
表的內(nèi)外連接(重點(diǎn))
內(nèi)連接
內(nèi)連接實(shí)際上就是利用where子句對兩種表形成的笛卡兒積進(jìn)行篩選,我們前面學(xué)習(xí)的查詢都是內(nèi)連接,也是在開發(fā)過程中使用的最多的連接查詢。
語法
select * from 表1 inner join 表2 on 連接條件 and 其他條件;
案例
顯示SMITH的名字和部門名稱
// 第一種,對兩張表做笛卡爾積 select ename,dname from emp,dept where emp.deptno=dept.deptno and ename='SMITH';
// 第二種,內(nèi)連接 select ename,dname from emp inner join dept on emp.deptno=dept.deptno where ename='SMITH';


外連接
左外連接
左外連接,左側(cè)表的數(shù)據(jù)完全保留,右側(cè)如果沒有數(shù)據(jù),對應(yīng)的右側(cè)就全為空
語法
select * from 表名1 left join 表名2 on 連接條件
案例
// 見兩張表 學(xué)生表 create table stu( id int, varchar(30) ); 插入信息 insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono'); 成績表 create table exam( id int, grade int ); 插入信息 insert into exam values(1, 56),(2,76),(11, 8);
查詢所有學(xué)生的成績,如果這個學(xué)生沒有成績,也要將學(xué)生的個人信息顯示出來
select * from stu left join exam on stu.id=exam.id;



右外連接
右外連接,右側(cè)表的數(shù)據(jù)完全保留,左側(cè)如果沒有數(shù)據(jù),對應(yīng)的左側(cè)就全為空
語法
select 字段 from 表名1 right join 表名2 on 連接條件;
案例
對stu表和exam表聯(lián)合查詢,把所有的成績都顯示出來,即使這個成績沒有學(xué)生與它對應(yīng),也要顯示出來
select * from stu right join exam on stu.id=exam.id;

其實(shí)左外連接也可以達(dá)到右外連接的目的

列出部門名稱和這些部門的員工信息,同時列出沒有員工的部門
// 左外連接 select * from dept left join emp on dept.deptno=emp.deptno; select * from dept left join emp on dept.deptno=emp.deptno order by dept.deptno asc; // 右外連接 select * from emp right join dept on dept.deptno=emp.deptno;

到此這篇關(guān)于MySQL 表的內(nèi)外連接的文章就介紹到這了,更多相關(guān)MySQL 表的內(nèi)外連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ubuntu20.04配置mysql8.0的實(shí)現(xiàn)步驟
本文主要介紹了ubuntu20.04配置mysql8.0的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
mysql5.6 解析JSON字符串方式(支持復(fù)雜的嵌套格式)
這篇文章主要介紹了mysql5.6 解析JSON字符串方式(支持復(fù)雜的嵌套格式),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
MySQL提示表不存在的解決error:1146:Table doesn‘t exist的原因和解決
在使用MySQL的過程中,有時會遇到“Table doesn't exist”(表不存在)的錯誤,錯誤代碼通常為1146,這個問題可能由多種原因引起,本文將幫助你診斷和解決這個問題,如果遇到同樣問題的小伙伴跟著小編一起來看看吧2024-12-12
SQL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)
下面小編就為大家?guī)硪黄猄QL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
MySQL表字段設(shè)置默認(rèn)值(圖文教程及注意細(xì)節(jié))
默認(rèn)值的設(shè)置很重要,比如在插入的時候一些字段是可以省略的,這會帶來很多的方便,接下來將要介紹MySQL表字段設(shè)置默認(rèn)值感興趣的你可以千萬不要走開啊,希望本文對你有所幫助2013-01-01
linux下啟動或者關(guān)閉MySQL數(shù)據(jù)庫的多種方式
,在Linux服務(wù)器上管理MySQL服務(wù)是一個基本的運(yùn)維任務(wù),下面這篇文章主要給大家介紹了關(guān)于linux下啟動或者關(guān)閉MySQL數(shù)據(jù)庫的多種方式,文中通過代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
MySQL系列之開篇 MySQL關(guān)系型數(shù)據(jù)庫基礎(chǔ)概念
數(shù)據(jù)庫是指長期儲存在計算機(jī)中的有組織的、可共享的數(shù)據(jù)集合,數(shù)據(jù)具有三大基本特點(diǎn),永久存儲,有組織,可共享,是數(shù)據(jù)庫系統(tǒng)的核心,本文給大家分享MySQL關(guān)系型數(shù)據(jù)庫基礎(chǔ)概念,需要的朋友參考下吧2021-07-07

