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

本文深入讲解了SQL语言中的关键命令,包括REINDEX用于索引重建,SELECT进行数据查询,UPDATE实现数据更新,WITH子句引入公用表表达式,以及VACUUM和UPSERT等实用功能,覆盖了从数据检索到维护的全面操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十七、重新引索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_name1
UNION
SELECT 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  RECURSIVE
name AS(
	SQL语句
)

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

WITH RECURSIVE
  cnt(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"一起使用,来解决唯一性冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艺高机器人编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值