SQLite各种连接大展神威

一、概述

1.SQLite定义了3种连接:交叉连接(CROSS JOIN)、内连接(INNER JOIN)、外连接(OUTER JOIN)。

2.外连接(OUTER JOIN,OUTER关键字可以省略)是内连接(INNER JOIN,默认的连接类型,INNER关键字可以省略)的扩展。虽然 SQL 标准定义了三种类型的外连接:LEFT、RIGHT、FULL,但 SQLite 只支持 左外连接(LEFT OUTER JOIN)。


二、SQLite的各种连接

假设数据库表的名称为A和B。
1.CROSS JOIN:将A表的每一行与B表的每一行进行匹配,返回2个表中所有行的笛卡尔积。即:若A表和B表分别有x行和y行,则结果集中有x*y行。

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

3.LEFT OUTER JOIN(即LEFT JOIN):取A表的所有行,并将B表中匹配的的字段包括在结果集中,若无匹配,则为NULL。

4.RIGHT OUTER JOIN(即RIGHT JOIN):取B表的所有行,并将A表中匹配的的字段包括在结果集中,若无匹配,则为NULL。

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

三、引申

1.SQLite 会自动为主键列创建索引。

2.开发机上可使用 Navicat for SQLite、DB Browser for SQLite、DbGate、、DBeaver、Antares SQL、DataGrip、SQLite Studio等工具来操作SQLite数据库。

3.数据库查询时JOIN ON后面务必只写连表条件,不能写过滤条件,过滤条件要写在WHERE后面,否则会导致意外的数据。

4.MySQL、H2等数据库不支持FULL JOIN。

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

6.MySQL、SQLite、H2等数据库不支持sql92连表。

7.SQLite 不支持一些 ALTER TABLE 功能。 除此之外,SQLite 拥有完整的触发器,事务等。
 


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值