国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢

這篇具有很好參考價(jià)值的文章主要介紹了⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢,SQL,拿來即用。,數(shù)據(jù)庫(kù),mysql,自然連接,笛卡爾積,database

個(gè)人簡(jiǎn)介:Java領(lǐng)域新星創(chuàng)作者;阿里云技術(shù)博主、星級(jí)博主、專家博主;正在Java學(xué)習(xí)的路上摸爬滾打,記錄學(xué)習(xí)的過程~
個(gè)人主頁(yè):.29.的博客
學(xué)習(xí)社區(qū):進(jìn)去逛一逛~

⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢,SQL,拿來即用。,數(shù)據(jù)庫(kù),mysql,自然連接,笛卡爾積,database


⑧MySQL數(shù)據(jù)庫(kù)查詢


1. 多表關(guān)系

多表關(guān)系

  • 一對(duì)一 :在任意一方加入外鍵,關(guān)聯(lián)另一方的主鍵,并設(shè)置外鍵為唯一(UNIQUE)。
  • 一對(duì)多(多對(duì)一) :在的一方建立外鍵,指向的一方的主鍵。
  • 多對(duì)多 :建立第三張表作為中間表,中間表至少包含兩個(gè)外鍵,分別關(guān)聯(lián)雙方主鍵



2. 多表查詢

多表查詢

  • 在多張表中查詢數(shù)據(jù)。
  • 笛卡爾積:兩個(gè)集合,集合A 與 集合B中元素的所有組合情況,在多表查詢時(shí)需要使用WHERE關(guān)鍵字JOIN ON關(guān)鍵字消除笛卡爾積。

??內(nèi)連接 —— INNER JOIN

連接查詢 —— 內(nèi)連接

  • 內(nèi)連接:

    • ①隱式內(nèi)連接

      • SELECT 字段列表 FROM1,2 WHERE 連接條件...;
        
    • ②顯示內(nèi)連接

      • SELECT 字段列表 FROM1 [INNER] JOIN2 ON 連接條件...;
        
  • == 內(nèi)連接查詢的是兩張表交集的部分 ==

  • ⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢,SQL,拿來即用。,數(shù)據(jù)庫(kù),mysql,自然連接,笛卡爾積,database

    • -- 演示:
      
      -- 查詢員工姓名,以及關(guān)聯(lián)的部門名稱(隱式內(nèi)連接)
      -- 表:?jiǎn)T工表emp、部門表dept
      SELECT emp.name,dept.name 
      FROM emp,dept 
      WHERE emp.dept_id = dept.id;
      
      -- 查詢員工姓名,以及關(guān)聯(lián)的部門名稱(顯示內(nèi)連接)
      -- 表:?jiǎn)T工表emp、部門表dept
      SELECT emp.name,dept.name 
      FROM emp INNER JOIN dept ON emp.dept_id = dept.id;
      
      



??左外連接 —— LEFT OUTER JOIN

連接查詢 —— 左外連接

  • 外連接 —— 左外連接:

    • 查詢表1所有數(shù)據(jù),包含表1和表2交集部分的數(shù)據(jù)。

      • SELECT 字段列表 FROM1 LEFT [OUTER] JOIN2 ON 連接條件...;
        
    • -- 演示:
      
      -- 查詢emp表所有數(shù)據(jù),以及對(duì)應(yīng)部門信息(dept表數(shù)據(jù))
      -- 左外連接實(shí)現(xiàn)
      SELECT emp.*,dept.name 
      FROM emp LEFT JOIN dept 
      ON emp.`dept_id` = dept.`id`;
      



??右外連接 —— RIGHT OUTER JOIN

連接查詢 —— 右外連接

  • 外連接 —— 右外連接:

    • 查詢表2所有數(shù)據(jù),包含表1和表2交集部分的數(shù)據(jù)。

      • SELECT 字段列表 FROM1 RIGHT [OUTER] JOIN2 ON 連接條件...;
        
  • -- 演示:
    
    -- 查詢emp表所有數(shù)據(jù),以及對(duì)應(yīng)部門信息(dept表數(shù)據(jù))
    -- 右外連接實(shí)現(xiàn)
    SELECT emp.*,dept.name 
    FROM dept RIGHT JOIN emp 
    ON emp.`dept_id` = dept.`id`;
    



??自連接 —— JOIN

連接查詢 —— 自連接

  • 自連接:

    • ①自連接查詢,可以是內(nèi)連接查詢,也可以是外連接查詢

      • SELECT 字段列表 FROM1 別名A JOIN1 別名B ON 連接條件...;
        
    • -- 演示
      
      -- 查詢emp表員工 及其 所屬領(lǐng)導(dǎo)的名字
      -- 使用內(nèi)連接
      SELECT e1.`name` 員工,e2.`name` 領(lǐng)導(dǎo)
      FROM emp e1 JOIN emp e2 ON e1.`managerid` = e2.`id`;
      
      -- 查詢emp表員工 及其 所屬領(lǐng)導(dǎo)的名字,如果員工沒有領(lǐng)導(dǎo),也需要查詢出來
      -- 使用外連接
      SELECT e1.`name` 員工,e2.`name` 領(lǐng)導(dǎo)
      FROM emp e1 LEFT JOIN emp e2 ON e1.`managerid` = e2.`id`;
      



??聯(lián)合查詢 —— UNION、UNION ALL

聯(lián)合查詢

  • UNION查詢就是把多次查詢的結(jié)果合并,行程新的結(jié)果集

    • -- 使用UNION,對(duì)結(jié)果去重
      -- 使用UNION ALL,不對(duì)結(jié)果去重
      -- 要求聯(lián)合的多個(gè)查詢字段列表的 類型與數(shù)量 需要保持一致
      SELECT 字段列表 FROM 表A ...
      UNION [ALL]
      SELECT 字段列表 FROM 表B ...;
      
  • -- 演示
    
    -- 查詢薪資低于5000 以及 年齡大于50的員工
    -- 使用UNION,對(duì)結(jié)果去重
    -- 使用UNION ALL,不對(duì)結(jié)果去重
    SELECT * FROM emp WHERE emp.`salary` < 5000
    UNION
    SELECT * FROM emp WHERE emp.`age` > 50;
    



??子查詢(嵌套查詢)

子查詢

  • 子查詢:SQL語(yǔ)句中嵌套SELECT語(yǔ)句,稱為嵌套查詢,又稱子查詢。

    • SELECT * FROM1 WHERE 字段1 = (SELECT 字段1 FROM2);
      
    • 子查詢外部的語(yǔ)句可以是INSERT / UPDATE / DELETE / SELECT 。

  • 子查詢分類(根據(jù)子查詢結(jié)果不同):

    • 標(biāo)量子查詢(子查詢結(jié)果為單個(gè)值)

      • -- 演示
        
        -- ①標(biāo)量子查詢
        -- 1.查詢“銷售部”的所有員工信息
        SELECT * FROM emp 
        WHERE dept_id = (SELECT id FROM dept WHERE dept.`name` = '銷售部');
        
        -- 2.查詢?cè)凇胺綎|白”之后入職的員工信息
        SELECT * FROM emp 
        WHERE entrydate > (SELECT entrydate FROM emp  WHERE NAME = '方東白');
        
    • 列子查詢(子查詢結(jié)果為一列)

      • 常見操作符:

        • IN:在指定的集合范圍之內(nèi),多選一。
        • NOT IN不在指定的集合范圍之內(nèi)。
        • ANY:子查詢返回列表內(nèi),有任意一個(gè)滿足即可
        • SOME與ANY相同,使用SOME的地方都可以使用ANY。
        • ALL:子查詢返回列表的所有值都必須滿足
      • -- 演示
        
        -- ②列子查詢
        -- 1. 查詢“銷售部” 和 “市場(chǎng)部” 所有員工信息
        SELECT * FROM emp
        WHERE emp.`dept_id` IN(SELECT id FROM dept WHERE NAME IN('銷售部','市場(chǎng)部'));
        
        -- 2. 查詢比財(cái)務(wù)部所有人工資都高的員工信息
        SELECT * FROM emp 
        WHERE emp.`salary` > 
        	ALL(SELECT salary FROM emp WHERE dept_id = 
        		(SELECT id FROM dept WHERE dept.`name` = '財(cái)務(wù)部'));
        		
        -- 3. 查詢比財(cái)務(wù)部 任意一人 工資高的員工信息
        SELECT * FROM emp 
        WHERE emp.`salary` > 
        	ANY(SELECT salary FROM emp WHERE dept_id = 
        		(SELECT id FROM dept WHERE dept.`name` = '財(cái)務(wù)部'));
        
    • 行子查詢(子查詢結(jié)果為一行)

      • -- 演示
        
        -- ③行子查詢
        -- 查詢與“張無忌” 薪資 以及 直屬領(lǐng)導(dǎo) 相同的員工信息
        SELECT * FROM emp 
        WHERE (salary,managerid) = 
        (SELECT salary,managerid FROM emp WHERE NAME = '張無忌');
        
    • 表子查詢(子查詢結(jié)果為多行多列)

      • -- 演示
        
        -- ④表子查詢
        -- 查詢?nèi)肼殨r(shí)間是“2006-01-01”之后入職的員工信息及其部門信息
        SELECT e.*,dept.name 
        FROM(SELECT * FROM emp WHERE emp.`entrydate` > '2006-01-01') e
        LEFT JOIN dept ON e.dept_id = dept.`id`;
        




⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢,SQL,拿來即用。,數(shù)據(jù)庫(kù),mysql,自然連接,笛卡爾積,database文章來源地址http://www.zghlxwxcb.cn/news/detail-751575.html

到了這里,關(guān)于⑧【MySQL】數(shù)據(jù)庫(kù)查詢:內(nèi)連接、外連接、自連接、子查詢、多表查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)庫(kù)MySQL(五):多表查詢

    項(xiàng)目開發(fā)中,在進(jìn)行數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)時(shí),會(huì)根據(jù)業(yè)務(wù)需求及業(yè)務(wù)模塊之間的關(guān)系,分析并設(shè)計(jì)表結(jié)構(gòu),由于業(yè)務(wù)之間相互關(guān)聯(lián),所以各個(gè)表結(jié)構(gòu)之間也存在則會(huì)各種聯(lián)系。 一對(duì)多/多對(duì)一 案例:部門與員工的關(guān)系 關(guān)系:一個(gè)部門對(duì)應(yīng)多個(gè)員工,一個(gè)員工對(duì)應(yīng)一個(gè)部門 實(shí)現(xiàn)

    2024年02月08日
    瀏覽(22)
  • 數(shù)據(jù)庫(kù)系統(tǒng)頭歌實(shí)驗(yàn)二 SQL的多表查詢

    數(shù)據(jù)庫(kù)系統(tǒng)頭歌實(shí)驗(yàn)二 SQL的多表查詢

    第一關(guān):等值連接:求S表和J表城市相同的等值連接(列順序還是按照S、J表) 工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成。 供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成. S表如下圖

    2024年02月07日
    瀏覽(21)
  • 【MySQL數(shù)據(jù)庫(kù) | 第十三篇】多表查詢

    【MySQL數(shù)據(jù)庫(kù) | 第十三篇】多表查詢

    多表查詢是指在一個(gè)SQL語(yǔ)句中使用多個(gè)表進(jìn)行數(shù)據(jù)查詢和操作。多表查詢可以對(duì)數(shù)據(jù)表之間的關(guān)系進(jìn)行查詢,例如可以通過連接多個(gè)表來獲取更完整的數(shù)據(jù)信息。關(guān)于單表查詢我們也介紹過,已經(jīng)整理成文章發(fā)布:【MySQL數(shù)據(jù)庫(kù) | 第九篇】DQL操作_我是一盤牛肉的博客-CSDN博客

    2024年02月08日
    瀏覽(29)
  • MySQL數(shù)據(jù)庫(kù)基礎(chǔ)(三):多表查詢,子查詢,開窗函數(shù)

    MySQL數(shù)據(jù)庫(kù)基礎(chǔ)(三):多表查詢,子查詢,開窗函數(shù)

    表與表之間的關(guān)系 在SQL語(yǔ)句中,數(shù)據(jù)表與數(shù)據(jù)表之間,如果存在關(guān)系,一般一共有3種情況: ① 一對(duì)一關(guān)系(高級(jí)) 比如有A、B兩張表,A表中的每一條數(shù)據(jù),在B表中有一條唯一的數(shù)據(jù)與之對(duì)應(yīng)。 用戶表user user_id(用戶編號(hào)) 賬號(hào)username 密碼password 001 admin admin888 002 itheima

    2024年02月12日
    瀏覽(26)
  • Navicat恢復(fù)數(shù)據(jù)庫(kù)連接及查詢sql的解決辦法

    Navicat恢復(fù)數(shù)據(jù)庫(kù)連接及查詢sql的解決辦法

    因?yàn)楣窘o電腦加域,導(dǎo)致使用新的用戶賬戶,原先的很多配置都失效了,本篇是講述一下如何恢復(fù)數(shù)據(jù)庫(kù)連接工具Navicat的連接數(shù)據(jù)。 這里需要指出說明一下: Navicat的數(shù)據(jù)sql查詢文件、備份文件存儲(chǔ)在 C:UsersAdministratorDocumentsNavicatMySQLservers navicat的數(shù)據(jù)庫(kù)鏈接信息存儲(chǔ)在

    2024年02月08日
    瀏覽(90)
  • Mysql查詢數(shù)據(jù)庫(kù)連接狀態(tài)及連接信息

    使用MySQL時(shí),需要了解當(dāng)前數(shù)據(jù)庫(kù)的情況,例如當(dāng)前的數(shù)據(jù)庫(kù)大小、字符集、用戶等等。下面總結(jié)了一些查看數(shù)據(jù)庫(kù)相關(guān)信息的命令 查看顯示所有數(shù)據(jù)庫(kù) 查看當(dāng)前使用的數(shù)據(jù)庫(kù) 查看數(shù)據(jù)庫(kù)使用端口 查看當(dāng)前數(shù)據(jù)庫(kù)大小 例如,我要查看INVOICE數(shù)據(jù)庫(kù)的大小,那么可以通過下面

    2024年02月11日
    瀏覽(30)
  • Mysql數(shù)據(jù)庫(kù)(五) Mysql命令行客戶端:內(nèi)連接查詢、左連接查詢、右連接查詢、自連接查詢、子查詢

    Mysql數(shù)據(jù)庫(kù)(五) Mysql命令行客戶端:內(nèi)連接查詢、左連接查詢、右連接查詢、自連接查詢、子查詢

    目錄 一、 連接查詢 對(duì)多個(gè)表進(jìn)行查詢 1.0 數(shù)據(jù)準(zhǔn)備 1.1 連接查詢 1.2 內(nèi)連接?INNER JOIN 1.3 左連接?LEFT JOIN 1.4 右連接?RIGHT JOIN 1.5 FULL OUTER JOIN 1.6 自連接查詢 1.7 子查詢-嵌套在查詢中 在之前的文章當(dāng)中,我們?cè)?base_1 當(dāng)中有了一個(gè) stu 表,記錄的是學(xué)生的name age height等信息 第一步

    2024年02月13日
    瀏覽(24)
  • 數(shù)據(jù)庫(kù)多表查詢

    數(shù)據(jù)庫(kù)多表查詢

    1、創(chuàng)建表格 2、插入數(shù)據(jù) 3.查詢student表的所有記錄 4.查詢student表的第2條到4條記錄 5.從student表查詢所有學(xué)生的學(xué)號(hào)(id)、姓名(name)和院系(department)的信息 6.從student表中查詢計(jì)算機(jī)系和英語(yǔ)系的學(xué)生的信息 7.從student表中查詢年齡18~22歲的學(xué)生信息 由于表中沒有年齡1

    2024年01月16日
    瀏覽(95)
  • 數(shù)據(jù)庫(kù)多表查詢作業(yè)

    數(shù)據(jù)庫(kù)多表查詢作業(yè)

    創(chuàng)建數(shù)據(jù)庫(kù) 插入數(shù)據(jù) 1.查詢student表的所有記錄 2.查詢student表的第2條到4條記錄 3.從student表查詢所有學(xué)生的學(xué)號(hào)(id)、姓名 (name)和院系(department)的信息 4.從student表中查詢計(jì)算機(jī)系和英語(yǔ)系的學(xué)生的信息 5.從student表中查詢年齡18~22歲的學(xué)生信息 6.從student表中查詢每個(gè)院

    2024年02月16日
    瀏覽(17)
  • 數(shù)據(jù)庫(kù)基礎(chǔ)——7.多表查詢

    數(shù)據(jù)庫(kù)基礎(chǔ)——7.多表查詢

    這篇文章來講一下數(shù)據(jù)庫(kù)中的多表查詢 目錄 1. 一個(gè)案例引發(fā)的多表連接 1.1 案例說明 1.2 笛卡爾積(或交叉連接)的理解 1.3 案例分析與問題解決 2. 多表查詢分類講解 2.1 等值連接 vs 非等值連接 2.1.1等值連接 2.1.2 非等值連接 2.2 自連接 vs 非自連接? 2.3 內(nèi)連接 vs 外連接? 3.實(shí)

    2024年02月06日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包