首頁  >  文章  >  資料庫  >  MySQL中的連線查詢實例分析

MySQL中的連線查詢實例分析

王林
王林轉載
2023-05-27 14:34:071224瀏覽

    1. 笛卡爾乘積

    表1有m行數據,表2有n行數據,查詢結果有m*n行數據。

    2. 分類

    (1)按年代分類

    sql92標準:僅支援內連接

    sql99標準(建議):支援內連接、外連接(左外連接與右外連接)、交叉連接

    (2)依功能分類

    #內連接:等值連接、非等值連接、自連接

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

    交叉連接

    3. 等值連接

    (1)查詢女生名稱及其對應的男友名稱

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

    (2)查詢員工名稱(last_name)和對應的部門名稱(department_name)-------------(根據關聯的id查詢)

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

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

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

    注意:

    如果為表起了別名,則查詢的欄位不能使用原來的表名去限定。

    上述兩個表格的順序可互換

    (4)查詢有獎金的員工名稱、部門名稱

    #员工名:last_name
    #部门名:department_name
    #奖金率: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)分組查詢——查詢每個城市的部門數量

    #城市分组表名:city
    #部门分组表名:departments 
    SELECT
        COUNT(*) 个数,
        city
    FROM
        departments d,
        locations l
    WHERE
        d.`location_id`=l.`location_id`
    GROUP BY
        city;

    (6)排序——查詢每個工種的工種名和員工個數,並按員工個數降序

    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)三表格連接——查詢員工名稱、部門名稱和所在的城市

    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%';

    以上是MySQL中的連線查詢實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除