SQLite各種連接大展神威

一、概述

1.SQLite定義了3種連接:交叉連接(CROSS JOIN)、內(nèi)連接(INNER JOIN)、外連接(OUTER JOIN)。

2.外連接(OUTER JOIN,OUTER關(guān)鍵字可以省略)是內(nèi)連接(INNER JOIN,默認(rèn)的連接類型,INNER關(guān)鍵字可以省略)的擴展。雖然 SQL 標(biāo)準(zhǔn)定義了三種類型的外連接:LEFT、RIGHT、FULL,但 SQLite 只支持 左外連接(LEFT OUTER JOIN)。


二、SQLite的各種連接

假設(shè)數(shù)據(jù)庫表的名稱為A和B。

1.CROSS JOIN:將A表的每一行與B表的每一行進(jìn)行匹配,返回2個表中所有行的笛卡爾積。即:若A表和B表分別有x行和y行,則結(jié)果集中有x*y行。

2.INNER JOIN:取A表與B表的交集。

3.LEFT OUTER JOIN(即LEFT JOIN):取A表的所有行,并將B表中匹配的的字段包括在結(jié)果集中,若無匹配,則為NULL。

4.RIGHT OUTER JOIN(即RIGHT JOIN):取B表的所有行,并將A表中匹配的的字段包括在結(jié)果集中,若無匹配,則為NULL。

5.FULL OUTER JOIN(即FULL JOIN):取B表與B表的并集。


三、引申

1.SQLite 會自動為主鍵列創(chuàng)建索引。

2.開發(fā)機上可使用 Navicat for SQLite、DB Browser for SQLite、DbGate、、DBeaver、Antares SQL、DataGrip、SQLite Studio等工具來操作SQLite數(shù)據(jù)庫。

3.數(shù)據(jù)庫查詢時JOIN ON后面務(wù)必只寫連表條件,不能寫過濾條件,過濾條件要寫在WHERE后面,否則會導(dǎo)致意外的數(shù)據(jù)。

4.MySQL、H2等數(shù)據(jù)庫不支持FULL JOIN。

5.SQLite不支持RIGHT JOIN、FULL JOIN。

6.MySQL、SQLite、H2等數(shù)據(jù)庫不支持sql92連表。

7.SQLite 不支持一些 ALTER TABLE 功能。 除此之外,SQLite 擁有完整的觸發(fā)器,事務(wù)等。








微風(fēng)不燥,陽光正好,你就像風(fēng)一樣經(jīng)過這里,愿你停留的片刻溫暖舒心。

我是程序員小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等編程技術(shù)的技巧經(jīng)驗分享),若作品對您有幫助,請關(guān)注、分享、點贊、收藏、在看、喜歡,您的支持是我們?yōu)槟峁椭淖畲髣恿Α?/p>

歡迎關(guān)注。助您在編程路上越走越好!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容