溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL中的連接查詢實(shí)例分析

發(fā)布時(shí)間:2022-07-20 13:37:36 來(lái)源:億速云 閱讀:89 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“MySQL中的連接查詢實(shí)例分析”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“MySQL中的連接查詢實(shí)例分析”吧!

    1. 笛卡爾乘積

    表1有m行數(shù)據(jù),表2有n行數(shù)據(jù),查詢結(jié)果有m*n行數(shù)據(jù)。

    2. 分類(lèi)

    (1)按年代分類(lèi)

    sql92標(biāo)準(zhǔn):僅支持內(nèi)連接

    sql99標(biāo)準(zhǔn)(推薦):支持內(nèi)連接、外連接(左外連接和右外連接)、交叉連接

    (2)按功能分類(lèi)

    內(nèi)連接:等值連接、非等值連接、自連接

    外連接:左外連接、右外連接、全外連接

    交叉連接

    3. 等值連接

    (1)查詢女生名及其對(duì)應(yīng)的男朋友名

    SELECT 
        girlname,
        boyname
    FROM
        boys,
        girls
    WHERE
        girls.boyfriend_id=boys.girlfriend_id;

    (2)查詢員工名(last_name)和對(duì)應(yīng)的部門(mén)名(department_name)-------------(根據(jù)關(guān)聯(lián)的id查詢)

    SELECT 
        last_name,
        department_name
    FROM
        JDSC,
        SNSC
    WHERE
        JDSC.`id`=SNSC.`id`;

    (3)查詢員工名(last_name)、工種號(hào)(job_id)、工種名(job_title) (員工表:JDSC  工作表:JOBSC)------為表起別名,提升簡(jiǎn)潔度,避免歧義

    #"e.job_id"是為了避免歧義
    SELECT
        last_name,
        e.job_id,
        job_title
    FROM
        ESC e,
        JOBSC j
    WHERE
        e.`job_id`=j.`job_id`;

    注意:

    如果為表起了別名,則查詢的字段不能使用原來(lái)的表名去限定。

    上述兩個(gè)表的順序可互換

    (4)查詢有獎(jiǎng)金的員工名、部門(mén)名

    #員工名:last_name
    #部門(mén)名:department_name
    #獎(jiǎng)金率:commissiom_pct
    SELECT
        last_name,
        department_name,
        commissiom_pct
    FROM
        employees e,
        department d
    WHERE
        e.`department_id`=d.`department_id`
    AND
        e.`commissiom_pct` IS NOT NULL;

    (5)分組查詢——查詢每個(gè)城市的部門(mén)個(gè)數(shù)

    #城市分組表名:city
    #部門(mén)分組表名:departments 
    SELECT
        COUNT(*) 個(gè)數(shù),
        city
    FROM
        departments d,
        locations l
    WHERE
        d.`location_id`=l.`location_id`
    GROUP BY
        city;

    (6)排序——查詢每個(gè)工種的工種名和員工個(gè)數(shù),并按員工個(gè)數(shù)降序

    SELECT 
        job_title,
        COUNT(*)
    FROM
        emloyees e,
        jobs j
    WHERE
        e.`job_id`=j.`job_id`
    GROUP BY
        job_title
    ORDER BY
        COUNT(*) DESC;

    (7)三表連接——查詢員工名、部門(mén)名和所在的城市

    SELECT
        last_name,
        department_name,
        city
    FROM
        employees e,
        departments d,
        locations l
    WHERE
        e.`department_id`=d.`department_id`
    AND
        d.`location_id`=l.`location_id`
    AND 
        city LIKE 's%';

    到此,相信大家對(duì)“MySQL中的連接查詢實(shí)例分析”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI