国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL語句的并集UNION 交集JOIN(內(nèi)連接,外連接)等介紹

2020-07-25 12:57:54
字體:
供稿:網(wǎng)友
1.a. 并集UNION SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2b. 交集JOIN SELECT * FROM table1 AS a JOIN table2 b ON a.name=b.namec. 差集NOT IN SELECT * FROM table1 WHERE name NOT IN(SELECT name FROM table2)d. 笛卡爾積 SELECT * FROM table1 CROSS JOIN table2 與 SELECT * FROM table1,table2相同2.SQL中的UNION 與UNION ALL的區(qū)別是,前者會去除重復的條目,后者會仍舊保留。a. UNION SQL Statement1 UNION SQL Statement2b. UNION ALL SQL Statement1 UNION ALL SQL Statement23.SQL中的各種JOIN SQL中的連接可以分為內(nèi)連接,外連接,以及交叉連接(即是笛卡爾積)a. 交叉連接CROSS JOIN 如果不帶WHERE條件子句,它將會返回被連接的兩個表的笛卡爾積,返回結果的行數(shù)等于兩個表行數(shù)的乘積; 舉例 SELECT * FROM table1 CROSS JOIN table2 等同于 SELECT * FROM table1,table2 一般不建議使用該方法,因為如果有WHERE子句的話,往往會先生成兩個表行數(shù)乘積的行的數(shù)據(jù)表然后才根據(jù)WHERE條件從中選擇。 因此,如果兩個需要求交際的表太大,將會非常非常慢,不建議使用。b. 內(nèi)連接INNER JOIN 如果僅僅使用 SELECT * FROM table1 INNER JOIN table2 沒有指定連接條件的話,和交叉連接的結果一樣。 但是通常情況下,使用INNER JOIN需要指定連接條件。 -- 等值連接(=號應用于連接條件, 不會去除重復的列) SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column=b.column -- 不等連接(>,>=,<,<=,!>,!<,<>) 例如 SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column<>b.column -- 自然連接(會去除重復的列)c. 外連接OUTER JOIN 首先內(nèi)連接和外連接的不同之處: 內(nèi)連接如果沒有指定連接條件的話,和笛卡爾積的交叉連接結果一樣,但是不同于笛卡爾積的地方是,沒有笛卡爾積那么復雜要先生成行數(shù)乘積的數(shù)據(jù)表,內(nèi)連接的效率要高于笛卡爾積的交叉連接。 指定條件的內(nèi)連接,僅僅返回符合連接條件的條目。外連接則不同,返回的結果不僅包含符合連接條件的行,而且包括左表(左外連接時), 右表(右連接時)或者兩邊連接(全外連接時)的所有數(shù)據(jù)行。 1)左外連接LEFT [OUTER] JOIN 顯示符合條件的數(shù)據(jù)行,同時顯示左邊數(shù)據(jù)表不符合條件的數(shù)據(jù)行,右邊沒有對應的條目顯示NULL 例如 SELECT * FROM table1 AS a LEFT [OUTER] JOIN ON a.column=b.column 2)右外連接RIGHT [OUTER] JOIN 顯示符合條件的數(shù)據(jù)行,同時顯示右邊數(shù)據(jù)表不符合條件的數(shù)據(jù)行,左邊沒有對應的條目顯示NULL 例如 SELECT * FROM table1 AS a RIGHT [OUTER] JOIN ON a.column=b.column 3)全外連接顯示符合條件的數(shù)據(jù)行,同時顯示左右不符合條件的數(shù)據(jù)行,相應的左右兩邊顯示NULL
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 上林县| 巴楚县| 轮台县| 平远县| 梅州市| 元氏县| 黄浦区| 德清县| 郓城县| 儋州市| 烟台市| 兴宁市| 延边| 铜梁县| 南部县| 汝州市| 宜春市| 抚远县| 台湾省| 化德县| 渝中区| 呼和浩特市| 丹东市| 济源市| 建水县| 西平县| 桦川县| 留坝县| 天柱县| 西乌珠穆沁旗| 石景山区| 富裕县| 新乐市| 临高县| 新巴尔虎右旗| 禄劝| 松溪县| 宝应县| 云和县| 永清县| 茂名市|