1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【数据库】适用于SQLite的SQL语句(三)

【数据库】适用于SQLite的SQL语句(三)

时间:2021-09-20 20:10:31

相关推荐

【数据库】适用于SQLite的SQL语句(三)

目录

十七、重新引索REINDEX十八、查询SELECT1、简单查询2、复合查询十九、更新UPDATE二十、公用表表达式(CTE)WITH1、普通表达式2、递归表达式二十三、VACUUM二十四、UPSERT

十七、重新引索REINDEX

REINDEX命令用于从头开始删除和重新创建索引。

十八、查询SELECT

1、简单查询

关键词:

FROM :数据源,后加表名或子查询WHERE:过滤GROUP BY:聚合查询,根据一个或多个列对结果集进行分组(合并行)HAVING:过滤,和WHERE类似,WHERE不能和合计函数一起使用,HAVING可以DISTINCT:去重

2、复合查询

在复合SELECT中,所有组成的SELECT必须返回相同数量的结果列。由于复合SELECT的组件必须是简单的SELECT语句,因此它们可能不包含ORDER BY或LIMIT子句。 ORDER BY和LIMIT子句只能在整个复合SELECT的末尾出现,然后仅在该复合词的最后一个元素不是VALUES子句时才出现。

关键词:

UNION:UNION 操作符用于合并两个或多个 SELECT 语句的结果集。UNION ALL:和UNION类似,不同点是UNION返回的结果不包括重复值。INTERSECT:返回两个SELECT结果的交集。EXCEPT:返回第一个SELECT的结果,并剔除出现在第二个SELECT中的结果。注意:MySQL中没有EXCEPT

UNION用法,其它方法类似

SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2

十九、更新UPDATE

如果UPDATE语句没有WHERE子句,则UPDATE修改表中的所有行。否则,UPDATE仅影响那些WHERE子句 布尔表达式为true的行。如果表中的任何行的WHERE子句都不为true,这不是错误-这仅意味着UPDATE语句影响零行。

二十、公用表表达式(CTE)WITH

1、普通表达式

格式:

WITH name AS(SQL语句)

2、递归表达式

格式:

WITH RECURSIVEname AS(SQL语句)

示例:使用SQL语句打印1到100

WITH RECURSIVEcnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<100)SELECT x FROM cnt;

二十三、VACUUM

VACUUM命令用于重建数据库文件,将其重新打包到最小的磁盘空间中。

VACUUM INTO 可以备份数据库。参见【数据库】sqlite3数据库备份、导出方法汇总

二十四、UPSERT

UPSERT是INSERT特殊语法补充,它不是标准的SQL。和关键词"ON CONFLICT" 和 "DO"一起使用,来解决唯一性冲突。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。