当前位置:网站首页>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%。
边栏推荐
- Virtual machine initialization script, virtual machine mutual secret key free
- codeforces每日5题(均1700)-第四天
- 450-深信服面经1
- Gmapping code analysis [easy to understand]
- NPOI导出Excel2007
- How to print mybats log plug-in using XML file
- 2022.7.1-----leetcode.241
- MySQL
- Use cheat engine to modify money, life and stars in Kingdom rush
- 守望先锋世界观架构 ——(一款好的游戏是怎么来的)
猜你喜欢

Use cheat engine to modify money, life and stars in Kingdom rush

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

xml开发方式下AutowiredAnnotationBeanPostProcessor的注册时机

Tutorial (5.0) 09 Restful API * fortiedr * Fortinet network security expert NSE 5

Idea editor removes SQL statement background color SQL statement warning no data sources are configured to run this SQL And SQL dialect is not config

Markdown基础语法

Codeworks 5 questions per day (1700 average) - day 4
冒泡排序数组

Data dimensionality reduction factor analysis

教程篇(5.0) 10. 故障排除 * FortiEDR * Fortinet 网络安全专家 NSE 5
随机推荐
教程篇(5.0) 10. 故障排除 * FortiEDR * Fortinet 網絡安全專家 NSE 5
451-memcpy、memmove、memset的实现
xml开发方式下AutowiredAnnotationBeanPostProcessor的注册时机
"Patient's family, please come here" reading notes
452-strcpy、strcat、strcmp、strstr、strchr的实现
453-atoi函数的实现
Qpropertyanimation use and toast case list in QT
zabbix5客户端安装和配置
Golang并发编程——goroutine、channel、sync
Getting started with typescript
AcWing 1134. 最短路计数 题解(最短路)
Thread application instance
What is 9D movie like? (+ common sense of dimension space)
4274. Suffix expression - binary expression tree
Processing strategy of message queue message loss and repeated message sending
mysql备份后缀是什么_mysql备份还原
高级性能测试系列《24. 通过jdbc执行sql脚本》
Emmet basic syntax
【pytorch学习笔记】Tensor
Educational Codeforces Round 129 (Rated for Div. 2) 补题题解