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

十七、重新引索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"一起使用,来解决唯一性冲突。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郭老二

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

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

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

打赏作者

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

抵扣说明:

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

余额充值