目录

  • 一、统计函数
  • 二、表TABLE
    • 1、创建表CREATE TABLE
    • 2、更改表ALTER TABLE
    • 3、删除表DROP TABLE
  • 三、分析表ANALYZE
  • 四、附加数据库 ATTACH DATABASE
  • 五、事务
  • 六、核心函数
  • 七、索引INDEX
    • 1、创建索引:CREATE INDEX
    • 2、查看索引:
    • 3、使用索引 INDEXED BY
    • 4、删除索引:DROP INDEX
  • 八、触发器TRIGGER
    • 1、创建触发器CREATE TRIGGER
    • 2、删除触发器DROP TRIGGER

一、统计函数

avg(X) : 计算平均值,针对整数;
count(*):统计总行数;
count(X):统计X在组中不为NULL的行数;
group_concat(X):返回X非NULL值串联成的字符串,以逗号‘,’分隔
group_concat(X,Y):返回X非NULL值串联成的字符串,以‘Y’分隔
max(X):返回最大值
min(X):返回最小值
sum(X):如果所有非NULL输入均为整数,则sum的结果为整数值。否则返回一个浮点值。如果计算时整数溢出,Sum会抛出“整数溢出”异常;
total(X):返回的结果始终是浮点值;并且不会抛出“整数溢出”异常。

二、表TABLE

1、创建表CREATE TABLE
CREATE TABLE t(x INTEGER PRIMARY KEY , y, z);
CREATE TABLE t(x INTEGER PRIMARY KEY ASC , y, z);
CREATE TABLE t(x INTEGER, y, z, PRIMARY KEY(x ASC));
CREATE TABLE t(x INTEGER, y, z, PRIMARY KEY(x DESC));
2、更改表ALTER TABLE

更改表名:ALTER TABLE 旧表名 RENAME TO 新表名;
更改列名:ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;
添加列:ALTER TABLE 表名 ADD 列名 类型;

3、删除表DROP TABLE

三、分析表ANALYZE

执行ANALYZE命令,会将分析结果保存在表sqlite_stat1中。

ANALYZE;
SELECT * FROM sqlite_stat1;
tbl|idx|stat
test1||1
tt||2

四、附加数据库 ATTACH DATABASE

ATTACH DATABASE语句将另一个数据库文件添加到当前数据库连接中。可以使用DETACH DATABASE命令分离以前附加的数据库文件。

添加数据库:ATTACH DATABASE 附加数据库文件名 AS 数据库别名;
分离数据库:DETACH DATABASE数据库别名;

例子:

attach 'test1.db' as test1;

如果“附加数据库文件名”存在则连接它,如果不存在则创建;连接后可以通过.database命令查看;

.database
main: /home/workspace/test/sql/test.db
test1: /home/workspace/test/sql/test1.db

使用,通过 数据库别名.表名 来使用附加数据库中的表;

select * from test1.test;
1|Xiao|20
2|Xiao1|21

五、事务

开始事务:BEGIN TRANSACTION
提交事务:END TRANSACTION、COMMIT
回滚事务:ROLLBACK TRANSACTION
保存点:SAVEPOINT 是一种创建事务的方法,类似于 BEGIN和COMMIT,不同之处在于SAVEPOINT和RELEASE可以命名并且可以嵌套。

六、核心函数

abs(X):返回X列的绝对值;
changes():返回最近更改(插入、删除、更新)的行数;
char(X1,X2,…,XN):返回以整数列X1…XN为unicode编码字符串;
注:下面例子中前两个值为18、19,对应的unicode字符不能显示,第三个为88,对应x

select char(age) from tt ;X

coalesce(X,Y,…):返回第一个不为NULL的副本;
glob(X,Y):和LIKE,模糊查找;
hex(X):将X视为BLOB,并返回一个字符串,该字符串是该blob内容的大写十六进制表示形式;
ifnull(X,Y):返回XY中第一个不为NULL的副本,等于只有两个参数的coalesce
instr(X,Y):在字符串X中查找Y
last_insert_rowid():然会最后插入的行ID;
length(X):对于字符串返回字符个数;对于BLOB返回字节数;对于整数返回字符串形式的长度;
like(X,Y):模糊查找
like(X,Y,Z):模糊查找
likelihood(X,Y):似然函数,用于统计学,最大似然估计;
likely(X):优化编译,将X为true时,要执行的代码编译到前面
load_extension(X)
load_extension(X,Y)
lower(X):小写
ltrim(X)
ltrim(X,Y):函数返回一个字符串,该字符串是通过从X的左侧删除出现在Y中的任何和所有字符形成的。如果省略Y参数,ltrim 将从X的左侧删除空格。
max(X,Y,…):最大值
min(X,Y,…):最小值
nullif(X,Y):参数相同返回NULL,参数不同,返回第一个
printf(FORMAT,…):格式化输出

select printf("age = %d", age) from test;
age = 18
age = 19

quote(X):返回结果的文本格式,如果是字符串返回的文本带单引号;
random():伪随机函数;
randomblob(N):返回N个字节伪随机BLOB值;
replace(X,Y,Z):使用Z替换X中的Y;
round(X):返回X四舍五入的整数;
round(X,Y):返回X四舍五入小数点后Y位的浮点数;
rtrim(X)
rtrim(X,Y):和ltrim类似,这次从右侧删除;
soundex(X):返回soundex编码?
sqlite_compileoption_get(N):返回用于构建SQLite的第N个编译时选项
sqlite_compileoption_used(X):返回是否使用X作为编译选项;
sqlite_offset(X):没理解
sqlite_source_id():返回源码版本;
sqlite_version():SQLite库的版本
substr(X,Y)
substr(X,Y,Z):从X的第Y个字符开始的Z长度的字符串;
total_changes():自打开当前数据库连接以来,更改过的行数;
trim(X)
trim(X,Y):等于ltrim+rtrim,从两端删除;
typeof(X):返回类型的字符串形式;
unicode(X):和char相反,返回字符串第一个字符对应的unicode值
unlikely(X):优化编译,将X为false时,要执行的代码编译到前面
upper(X):返回大写;
zeroblob(N):返回N个值为0的BLOB类型值

七、索引INDEX

创建索引是为了给数据库内部使用,加快查询;不是直接给用户使用。

1、创建索引:CREATE INDEX

创建简单索引

CREATE INDEX index_name ON table_name (column_name);

创建唯一索引

CREATE UNIQUE INDEX index_name ON table_name (column_name);
2、查看索引:
.indexes
haha
.headers on
SELECT * FROM sqlite_master WHERE type = 'index';
type|name|tbl_name|rootpage|sql
index|haha|tt|6|CREATE INDEX haha on tt(age)
3、使用索引 INDEXED BY

在DELETE、SELECT或UPDATE上强制使用索引;INDEXED BY短语是SQLite的扩展,不能移植到其他SQL数据库引擎中。

4、删除索引:DROP INDEX
DROP INDEX index_name;

八、触发器TRIGGER

当对数据库执行插入INSERT、更新UPDATE、删除DELETE操作时,可以自动触发关联动作。

1、创建触发器CREATE TRIGGER

官方demo

// 创建更新触发器
CREATE TRIGGER update_customer_address UPDATE OF address ON customers BEGINUPDATE orders SET address = new.address WHERE customer_name = old.name;END;// 执行更新操作
UPDATE customers SET address = '1 Main St.' WHERE name = 'Jack Jones';// 下面语句会自动执行
UPDATE orders SET address = '1 Main St.' WHERE customer_name = 'Jack Jones';
2、删除触发器DROP TRIGGER
DROP TRIGGER trigger-name;

【数据库】适用于SQLite的SQL语句(一)相关推荐

  1. 【数据库】适用于SQLite的SQL语句(二)

    目录 九.视图VIEW 1.创建视图 2.删除视图 十.虚拟表 1.创建虚拟表 2.删除虚拟表 十一.时间和日期的函数 十二.分析和故障排除 十三.SQL语句中的表达式 1.运算符 2.字面值 3.参 ...

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

    目录 十七.重新引索REINDEX 十八.查询SELECT 1.简单查询 2.复合查询 十九.更新UPDATE 二十.公用表表达式(CTE)WITH 1.普通表达式 2.递归表达式 二十三.VACUU ...

  3. 配置郭神的LitePal(面向对象一样操作sqlite数据库,不再使用SQL语句)

    配置郭神的LitePal(面向对象一样操作sqlite数据库,不再使用SQL语句) 配置过程可见: https://github.com/guolindev/LitePal 但是我要补充一个小问题 然 ...

  4. vb mysql 语句_VB与数据库编程常用的SQL语句总结

    SQL数据库介绍国庆假期 美好而短暂 现已正式结束 不忘初心,继续前行 今天我们来学习VB与数据库编程中的SQL语句. SQL简介 SQL数据库语言是一种通用的,功能强大的关系数据库语言,是操作数据库 ...

  5. 【转】创建数据库和表的SQL语句

    [转]创建数据库和表的SQL语句 创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略3 (4 /*--数据 ...

  6. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  7. 数据库逻辑删除的sql语句_通过数据库的眼睛查询sql的逻辑流程

    数据库逻辑删除的sql语句 Structured Query Language (SQL) is famously known as the romance language of data. Eve ...

  8. 如何找出MySQL数据库中的低效SQL语句

    面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...

  9. winform执行oracle语句,C#中的Winform应用程序连接远程Oracle数据库的配置文件及SQL语句的写法...

    远程连接Oracle数据库的配置文件及sql语句 近期,应朋友的要求,用C#语言开发了一个winform应用程序,要求的是连接到远程的Oracle数据库,用惯了SQL Server的我突然有点懵,然后 ...

最新文章

  1. 悲催的中国式项目开发
  2. Uboot启动过程详解
  3. 最优化——分析线性规划的对偶问题的等价性
  4. app启动页数秒加载 代码_干货 | App 自动化测试痛点(弹框及首页启动加载完成判断处理)
  5. python列表、字典、元组的用法及区别_python列表,字典,元组简单用法示例
  6. sscanf 连续相同编辑符_基于单调栈的滑动窗口法求解“和至少为 K 的最短连续子数组”...
  7. Grafana-zabbix配置模板
  8. 灰色预测模型matlab_Matlab数据分析,2020研究生报名人数灰色预测
  9. pythonfor循环是迭代器吗_[Python] 迭代器是什么?你每天在用的for循环都依赖它!...
  10. [BZOJ 3668UOJ #2][Noi2014]起床困难综合症(贪心)
  11. 2017省夏令营Day7
  12. 文件管理器 Root Explorer v2.9.4 零售完全版
  13. directx修复工具 4.0_A12-A13最稳定越狱工具发布,支持iOS13.0—iOS13.3
  14. bt种子文件是什么(包括bt文件结构)
  15. ZedGraph _WINFORM中设置ZEDGRAPH的曲线符号SYMBOL以及对应关系
  16. 计算机网络习题(参考)
  17. jquery获取地址栏参数
  18. 神舟Z7-KP7SC笔记本电脑-游戏实机帧数截图与鲁大师跑分
  19. ElasticSearch 一文读懂
  20. 如何将FLV格式视频转换成高清MP4格式方法

热门文章

  1. 学习《Linux设备模型浅析之设备篇》笔记(深挖一)
  2. 【TensorFlow2.0】(5) 数学计算、合并、分割
  3. 在windows下配置pthread多线程
  4. java 连nosql_浅谈 Java 中 MongoDB NoSQL数据库使用指南
  5. excel求和为什么是0_Excel教程:小小的N函数竟如此厉害
  6. 快速精确的体素GICP三维点云配准算法
  7. 【fiveKeyPress】2秒内五次点击键盘任意键(或组合键)触发自定义事件(以Pause/Break键为例)
  8. 【只需4步】windows server系统下快速安装绿色版apache-tomcat-8.0.35(免安装版)
  9. 在CentOS 6.9上从源码安装Go 1.10
  10. 软件安装(ubuntu) --Linux基础编程