当前位置:网站首页>SQLite 3.39.0 发布,支持右外连接和全外连接
SQLite 3.39.0 发布,支持右外连接和全外连接
2022-07-02 18:37:00 【不剪发的Tony老师】
大家好,我是只谈技术不剪发的 Tony 老师。
SQLite 开发团队于 2022 年 06 月 25 日发布了 SQLite 3.39.0 版本。该版本最大的更新就是支持 RIGHT OUTER JOIN 和 FULL OUTER JOIN,本文给大家逐一进行分析。
如果觉得文章有用,欢迎评论、点赞、推荐
右外连接和全外连接
一直以来,SQLite 都不支持右外连接和全外连接,SQLite 3.39.0 终于弥补上了这个缺陷。至此,SQLite 提供了 SQL 标准中所有的 JOIN 方式,MySQL 需要加油了。

来看一个简单的示例:
sqlite> select sqlite_version();
3.39.0
sqlite> create table t1(id int);
sqlite> insert into t1 values(1),(2),(3);
sqlite> create table t2(id int, name text);
sqlite> insert into t2 values(1, 'one'),(4, 'four');
sqlite> select * from t1 left join t2 on t1.id=t2.id;
1|1|one
2||
3||
sqlite> select * from t2 right join t1 on t1.id=t2.id;
1|one|1
||2
||3
sqlite> select * from t1 full join t2 on t1.id=t2.id;
1|1|one
2||
3||
|4|four
IS [NOT] DISTINCT FROM
SQLite 3.39.0 还增加了两个新的二进制比较运算符:IS NOT DISTINCT FROM 和 IS DISTINCT FROM。
IS NOT DISTINCT FROM 等价于 IS 运算符,它们都和 = 运算符类似,但是支持 NULL 值的比较。例如:
sqlite> select 1=1, 1 IS 1, 1 IS NOT DISTINCT FROM 1;
1|1|1
sqlite> select NULL=NULL, NULL IS NULL, NULL IS NOT DISTINCT FROM NULL;
|1|1
与此类似,IS DISTINCT FROM 等价于 IS NOT 运算符。
新增的两个运算符和 SQL 标准以及 PostgreSQL 实现兼容。
C 接口增强
接口 sqlite3_vtab_distinct() 新增了一个返回码(3),表示查询同时使用了 DISTINCT 以及 ORDER BY 子句。
增加了一个新的接口 sqlite3_db_name(),用于返回数据库连接中的数据库名。
其他增强
UNIX 操作系统接口会在文件打开之前解析文件名中的所有符号链接,从而为数据库创建一个标准名称。
延迟视图的物化操作,直到真正需要时才物化,从而避免不必要的工作。
任何聚合查询中都可以使用 HAVING 子句,即使查询中没有 GROUP BY 子句。在之前的版本中,HAVING 子句必须和 GROUP BY 子句配套使用,不能单独出现。
大量微优化使得 CPU 周期整体减少了约 2.3%。
边栏推荐
- MySQL
- 机器学习笔记 - 时间序列预测研究:法国香槟的月销量
- Date tool class (updated from time to time)
- AcWing 903. 昂贵的聘礼 题解(最短路—建图、dijkstra)
- Excel finds the same value in a column, deletes the row or replaces it with a blank value
- What is the MySQL backup suffix_ MySQL backup restore
- Golang concurrent programming goroutine, channel, sync
- MySQL表历史数据清理总结
- PyTorch函数中的__call__和forward函数
- Binary operation
猜你喜欢

codeforces每日5题(均1700)-第四天

教程篇(5.0) 09. RESTful API * FortiEDR * Fortinet 网络安全专家 NSE 5

机器学习笔记 - 时间序列预测研究:法国香槟的月销量

mysql函数

Usage of ieda refactor

AcWing 1126. 最小花费 题解(最短路—dijkstra)

Py之interpret:interpret的简介、安装、案例应用之详细攻略

Develop fixed asset management system, what voice is used to develop fixed asset management system

数据降维——主成分分析

Tutorial (5.0) 10 Troubleshooting * fortiedr * Fortinet network security expert NSE 5
随机推荐
Processing strategy of message queue message loss and repeated message sending
Quanzhi A33 uses mainline u-boot
数据降维——主成分分析
mysql备份后缀是什么_mysql备份还原
MySQL
[pytorch learning notes] tensor
When converting from list to map, if a certain attribute may cause key duplication and exceptions, you can set the way to deal with this duplication
GMapping代码解析[通俗易懂]
Getting started with typescript
Mobile robot path planning: artificial potential field method [easy to understand]
2022.7.1-----leetcode. two hundred and forty-one
mysql函数
守望先锋世界观架构 ——(一款好的游戏是怎么来的)
PHP parser badminton reservation applet development requires online system
注解开发方式下AutowiredAnnotationBeanPostProcessor的注册时机
《重构:改善既有代码的设计》读书笔记(上)
Excel finds the same value in a column, deletes the row or replaces it with a blank value
AcWing 383. 观光 题解(最短路)
PHP-Parser羽毛球预约小程序开发require线上系统
Juypter notebook modify the default open folder and default browser