最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql表的內連和外連實戰(zhàn)記錄

 更新時間:2024年01月08日 08:40:59   作者:起飛的風箏  
在開發(fā)中我們的業(yè)務需求有時候是復雜的,多張表聯(lián)合查詢的時候是有多種方式的,面對不同的需求,靈活使用不同的表連接方式,這篇文章主要給大家介紹了關于mysql表內連和外連的相關資料,需要的朋友可以參考下

在MySQL中,內連(INNER JOIN)和外連(OUTER JOIN)是用于聯(lián)接多個表的操作。接下來,我分別給大家介紹下二者。

(一)內連接

1、什么叫內連接

在MySQL中, 內連接 實際上就是利用 where 子句對兩種表形成的笛卡兒積進行篩選,我們前面學習的查詢都是內連接,也是在開發(fā)過程中使用的最多的連接查詢。

2、語法格式  

?? 以下是內連接的基本語法:

SELECT 列名
FROM 表1
INNER JOIN 表2 ON 表1.關聯(lián)列 = 表2.關聯(lián)列;

注:內連會返回同時存在于表1和表2中的行,并且僅包括滿足關聯(lián)條件的行。

 3、案例:顯示SMITH的名字和部門名稱(來自oracle 9i的經典測試表)

之前我們通過笛卡爾積可以對其進行操作,今天我們通過內連接的方式來進行有關操作。具體如下:

用前面的寫法

select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno and ename='SMITH';

結果展示: 

用標準的內連接寫法:

select ename, dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and
ename='SMITH';

結果展示:

【小結】

  • 內連接的關鍵點是只返回兩個表中連接條件滿足的行,而不包括任何一個表中沒有匹配的行;
  • 如果某行在其中一個表中沒有匹配的行,則不會包含在結果中
  • 需要注意的是,內連接并不包括符合條件但值為NULL的行。如果你需要包含這些行,可以使用接下來講到的外連接

(二)外連接

1、什么叫外連接

在MySQL中,外連接是一種用于檢索兩個或多個表之間的數(shù)據的方法,它包括左外連接、右外連接和全外連接。

2、左外連接 左外連

返回左表中的所有行,以及右表中與左表滿足聯(lián)接條件的行;

如果右表中沒有匹配的行,則返回 NULL 值。

 ?? 語法如下select 字段名 from 表名1 left join 表名2 on 連接條件

2.1案例演示

首先,我先建立兩張表以供實現(xiàn)需要。具體如下: 表一:

表二:

需求查詢所有學生的成績,如果這個學生沒有成績,也要將學生的個人信息顯示出來

當左邊表和右邊表沒有匹配時,也會顯示左邊表的數(shù)據:

select * from stu left join exam on stu.id=exam.id;

3、右外連接 右外連

  1. 與左外連相反,返回右表中的所有行,以及左表中與右表滿足聯(lián)接條件的行;
  2. 如果左表中沒有匹配的行,則返回 NULL 值。

?? 語法如下select 字段名 from 表名1 right join 表名2 on 連接條件

3.1案例演示

需求 :對 stu 表和 exam 表聯(lián)合查詢,把所有的成績都顯示出來,即使這個成績沒有學生與它對應,也要 顯示出來
select * from stu right join exam on stu.id=exam.id;

4、全外連接

  • 全外連返回左表和右表中的所有行,并將它們聯(lián)接在一起;
  • 如果某個表中沒有匹配的行,則返回 NULL 值;
  • MySQL不直接支持全外連,可以使用UNION操作符來模擬實現(xiàn)。

5、練習演示

需求 :列出部門名稱和這些部門的員工信息,同時列出沒有員工的部門

現(xiàn)在有這樣的場景,一家公司為了業(yè)務架構的完整設置了某個部門,但是暫時這個部門還沒有人,隨著之后公司的發(fā)展這個部門才會發(fā)揮作用。

方法展示:

 代碼展示:

select dname,ename,dept.deptno from dept left join emp on dept.deptno=emp.deptno order by dept.deptno asc;

輸出顯示: 

(三)實戰(zhàn)OJ

大家看完上訴可以通過下面這兩道題目練練手:

(四)總結

通過內連和外連操作,可以根據表之間的關聯(lián)條件將數(shù)據聯(lián)接起來,并進行靈活的查詢和分析。具體選擇哪種聯(lián)接類型取決于你的需求和數(shù)據結構。

到此這篇關于mysql表的內連和外連的文章就介紹到這了,更多相關mysql表內連和外連內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL 數(shù)據恢復的多種方法匯總

    MySQL 數(shù)據恢復的多種方法匯總

    日常工作中,總會有因手抖、寫錯條件、寫錯表名、錯連生產庫造成的誤刪庫表和數(shù)據的事情發(fā)生。但是,如果每次刪庫都跑路的話,怕是再也不好找工作了吧!所以,刪庫跑路不是上上策
    2021-06-06
  • MySQL如何查看元數(shù)據鎖阻塞在哪里

    MySQL如何查看元數(shù)據鎖阻塞在哪里

    這篇文章主要介紹了MySQL如何查看元數(shù)據鎖阻塞在什么地方的相關資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • Mysql中IFNULL函數(shù)舉例詳解

    Mysql中IFNULL函數(shù)舉例詳解

    這篇文章主要給大家介紹了關于Mysql中IFNULL函數(shù)舉例詳解的相關資料,在MySQL數(shù)據庫中IFNULL()函數(shù)用于將NULL值替換為另一個值,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-07-07
  • MYSQL必知必會讀書筆記第五章之排序檢索數(shù)據

    MYSQL必知必會讀書筆記第五章之排序檢索數(shù)據

    本文給大家分享mysql必會必知讀書筆記第五章之排序檢索數(shù)據,小編認為非常具有參考價值,特此分享到腳本之家平臺供大家參考
    2016-05-05
  • MySQL數(shù)據庫自連接實例講解

    MySQL數(shù)據庫自連接實例講解

    針對相同的表進行的連接被稱為"自連接"(self?join),下面這篇文章主要給大家介紹了關于MySQL數(shù)據庫自連接實例講解的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • win7下mysql5.7.17安裝配置方法圖文教程

    win7下mysql5.7.17安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了win7下mysql5.7.17安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • MySQL 跨庫查詢示例場景分析

    MySQL 跨庫查詢示例場景分析

    在 MySQL 數(shù)據庫應用場景中,有時需要從多個數(shù)據庫中獲取數(shù)據并進行關聯(lián)分析或綜合處理,這就涉及到跨庫查詢操作,本指南將詳細介紹 MySQL 跨庫查詢的方法、注意事項以及相關示例,感興趣的朋友一起看看吧
    2025-04-04
  • 你的like語句為什么沒索引詳解

    你的like語句為什么沒索引詳解

    這篇文章主要給大家介紹了關于你的like語句為什么沒索引的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • 解決Mysql收縮事務日志和日志文件過大無法收縮問題

    解決Mysql收縮事務日志和日志文件過大無法收縮問題

    這篇文章主要介紹了解決Mysql收縮事務日志和日志文件過大無法收縮問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-08-08
  • mysql數(shù)據庫的分區(qū)表示例代碼

    mysql數(shù)據庫的分區(qū)表示例代碼

    這篇文章主要介紹了mysql數(shù)據庫的分區(qū)表的相關資料,文章介紹了兩種創(chuàng)建SQL表分區(qū)的方法,分別是手動創(chuàng)建和使用MySQL的定時事件來自動創(chuàng)建分區(qū),手動創(chuàng)建分區(qū)時,需要在代碼中判斷分區(qū)并新增,可能會引入一些問題,需要的朋友可以參考下
    2024-11-11

最新評論

庆云县| 自贡市| 河北区| 南宫市| 马关县| 肇庆市| 天镇县| 昭通市| 滨海县| 黑龙江省| 郯城县| 永平县| 天门市| 剑川县| 宜丰县| 图木舒克市| 莲花县| 衡阳市| 三原县| 五峰| 长白| 丹巴县| 涪陵区| 西宁市| 绥江县| 洪泽县| 忻州市| 历史| 新巴尔虎左旗| 建德市| 梓潼县| 甘孜| 正蓝旗| 信阳市| 平武县| 祁门县| 大埔县| 忻城县| 博白县| 普兰店市| 江安县|