欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

數(shù)據(jù)庫使用之union、union?all、各種join的用法區(qū)別解析

 更新時間:2025年02月06日 10:20:54   作者:我是蘇蘇  
這篇文章主要介紹了SQL中的Union和UnionAll的區(qū)別,包括去重與否以及使用時的注意事項,還詳細(xì)解釋了Join關(guān)鍵字,包括innerjoin和leftjoin的區(qū)別,以及聯(lián)表條件的寫法,需要的朋友可以參考下

一、Union 和Union All

1、區(qū)別:

Union去重,而Union All不去重。

2、注意點:

1.被合并的每個SELECT語句的列數(shù)、數(shù)據(jù)類型要相同(一一對應(yīng))。

2.使用Union時,由于可去重性,可能導(dǎo)致數(shù)據(jù)丟失。

3.使用Union All時,由于不可去重性,可能含重復(fù)的記錄。

3、具體舉例

【union】

【union all】

二、Join關(guān)鍵字的區(qū)別

 1.left join和inner join區(qū)別

【長話短說】inner join(內(nèi)連接)得到數(shù)據(jù)更少,直接剔除匹配不到的數(shù)據(jù)(剔除無關(guān)聯(lián)ID的數(shù)據(jù)),inner join = join。

【例子】如下圖所示,inner join不顯示紅框的數(shù)據(jù),left join會顯示

SELECT * FROM student s
LEFT JOIN score sc on s.id=sc.studentid

SELECT * FROM student s
INNER JOIN score sc on s.id=sc.studentid

【查詢匹配失敗的數(shù)據(jù)】

SELECT * FROM student s
LEFT JOIN score sc on s.id=sc.studentid
WHERE sc.id is null --查詢從表ID為空的數(shù)據(jù),就是聯(lián)表匹配不到的數(shù)據(jù)

2.聯(lián)表條件寫法差異

--聯(lián)表:只要滿足關(guān)聯(lián)關(guān)系,B.IsDeleted是什么則返回什么
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID 

--聯(lián)表不篩選:只要滿足關(guān)聯(lián)關(guān)系,B.IsDeleted≠0 則返回null
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID AND B.IsDeleted=0

--聯(lián)表且篩選:只要滿足關(guān)聯(lián)關(guān)系,B.IsDeleted≠0 則返回null,假如是null則被where過濾掉
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID
WHERE B.IsDeleted=0

--【結(jié)論】數(shù)據(jù)返回多少關(guān)系是:第一種=第二種>第三種
-- 因為第二種是A左聯(lián)篩選后的B表,左外保證A表完整性,和第一種一樣
-- 第三種是連接后再篩選,剔除的數(shù)據(jù)可能包含A表的數(shù)據(jù)

三、Cross Join

計算所有表的笛卡爾積:

總結(jié) 

到此這篇關(guān)于數(shù)據(jù)庫使用之union、union all、各種join的用法區(qū)別解析的文章就介紹到這了,更多相關(guān)union、union all、join用法區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL Server自動生成日期加數(shù)字的序列號

    SQL Server自動生成日期加數(shù)字的序列號

    需要生成下面的序列號,前半部分是yyyymmdd格式的年月日時間數(shù)字,后半部分則是每天都從1順序增長的數(shù)字,位數(shù)要固定,中間不足的補(bǔ)0。
    2009-08-08
  • Sql數(shù)據(jù)庫中去掉字段的所有空格小結(jié)篇

    Sql數(shù)據(jù)庫中去掉字段的所有空格小結(jié)篇

    這篇文章主要介紹了Sql數(shù)據(jù)庫中去掉字段的所有空格小結(jié)篇,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 在sp_executesql中使用like字句的方法

    在sp_executesql中使用like字句的方法

    在sp_executesql中可以執(zhí)行參數(shù)化的sql,但是如果sql中有l(wèi)ike,那么一般都要拼字符串,下面的例子把兩者結(jié)合了起來,既有拼sql的靈活性,又有參數(shù)化sql的優(yōu)點。
    2009-06-06
  • 關(guān)于SQL中CTE(公用表表達(dá)式)(Common Table Expression)的總結(jié)

    關(guān)于SQL中CTE(公用表表達(dá)式)(Common Table Expression)的總結(jié)

    WITH AS短語,也叫做子查詢部分(subquery factoring),可以讓你做很多事情,定義一個SQL片斷,該SQL片斷會被整個SQL語句所用到
    2012-08-08
  • MsSQL數(shù)據(jù)庫基礎(chǔ)與庫的基本操作方法

    MsSQL數(shù)據(jù)庫基礎(chǔ)與庫的基本操作方法

    文章主要介紹了數(shù)據(jù)庫的基礎(chǔ)知識,包括數(shù)據(jù)庫的定義、主流數(shù)據(jù)庫系統(tǒng)(如MySQL、PostgreSQL等)、數(shù)據(jù)庫操作(如創(chuàng)建、修改、刪除數(shù)據(jù)庫,備份和恢復(fù)等)以及查看連接情況,感興趣的朋友一起看看吧
    2025-02-02
  • case 嵌套查詢與連接查詢你需要懂得

    case 嵌套查詢與連接查詢你需要懂得

    Case 子查詢連接查詢在sql開發(fā)中很常用的一個查詢功能,感興趣的你可不要錯過本文,接下來為你詳細(xì)介紹下
    2013-02-02
  • SQL SERVER 中構(gòu)建執(zhí)行動態(tài)SQL語句的方法

    SQL SERVER 中構(gòu)建執(zhí)行動態(tài)SQL語句的方法

    這篇文章主要介紹了SQL SERVER 中構(gòu)建執(zhí)行動態(tài)SQL語句的方法,需要的朋友可以參考下
    2017-06-06
  • SQL Server誤區(qū)30日談 第15天 CheckPoint只會將已提交的事務(wù)寫入磁盤

    SQL Server誤區(qū)30日談 第15天 CheckPoint只會將已提交的事務(wù)寫入磁盤

    這個誤區(qū)是由于太多人對日志和恢復(fù)系統(tǒng)缺少全面的了解而存在已久。CheckPoint會將自上次CheckPoint以來所有在內(nèi)存中改變的頁寫回磁盤(譯者注:也就是臟頁),或是在上一個CheckPoint讀入內(nèi)存的臟頁寫入磁盤
    2013-01-01
  • SQL SERVER臨時表排序問題的解決方法

    SQL SERVER臨時表排序問題的解決方法

    這篇文章主要給大家介紹了關(guān)于SQL SERVER臨時表排序問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • php使用pdo連接sqlserver示例分享

    php使用pdo連接sqlserver示例分享

    在開發(fā)PHP程序時我們可以借助多種連接方式訪問各類的數(shù)據(jù)庫獲取所需的數(shù)據(jù)。自PHP5以來PDO作為新生事物將所有數(shù)據(jù)庫接口收入囊中,為開發(fā)人員提供了方便快捷的數(shù)據(jù)庫讀取方式。本文將介紹如何在Linux服務(wù)器配置PHP與SQL Server的連接
    2014-01-01

最新評論