sqlite3数据库的语句进阶

1. 函数和聚合
SQL语句支持利用函数来处理数据,函数一般是在数据上执行的,它给数据的转换和处理提供了方便
常用的文本处理函数:
length()返回字符串的长度
lower()将字符串转换为小写
upper()将字符串转换为大写
在这里插入图片描述

2. 常用的聚集函数

使用聚集函数,用于检索数据,以便分析和生成报表
avg()返回某列的平均值
count()返回某列的行数
max()返回某列的最大值
min()返回某列的最小值
sum()返回某列值之和
在这里插入图片描述

3. 数据分组 group by
分组数据,以便能汇总表内容的子集,常和聚集函数搭配使用。例如查询每个班级中的人数、平均分
使用:select列名1[, 列名2, …]from表名group by列名
在终端下输入(先增加一列班名class):

注意:group by子句必须出现在where子句之后
在这里插入图片描述

4. 过滤分组 having
除了能用group by分组数据外,还可以包括哪些分组,排除哪些分组。例如:查看班级平均分大于90的班级

语法:
select函数名(列名1)[, 列名2, …]from表名group by列名having函数名 限制值
终端输入(查看班级平均分大于90的班级)
在这里插入图片描述

5. 约束
管理如何插入或处理数据库数据的规则
常用约束分类

主键 (primary key)
惟一的标识一行(一张表中只能有一个主键)
主键应当是对用户没有意义的(常用于索引)
永远不要更新主键,否则违反对用户没有意义原则
主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等
语法:
create table表名称(列名称1 数据类型primary key,列名称2 数据 类型,列名称3 数据类型, …);

唯一约束

用来保证一个列(或一组列)中数据唯一,类似于主键,但跟主键有区别
表可包含多个唯一约束,但只允许一个主键
唯一约束列可修改或更新
创建表时,通过unique来设置

create table表名(列名称1 数据类型unique[,列名称2 数据类型unique,…]);

检查约束
用来保证一个列(或一组列)中的数据满足一组指定的条件。
指定范围,检查最大或最小范围,通过check实现
create table表名(列名 数据类型check (判断语句));
在这里插入图片描述

6. 联结表(多表操作)
保存数据时往往不会将所有数据保存在一个表中,而是在多个表中存储,联结表就是从多个表中查询数据。
在一个表中不利于分解数据,也容易使相同数据出现多次,浪费存储空间;使用联结表查看各个数据更直观,这使得在处理数据时更简单。
在这里插入图片描述

7. 视图
视图不包含数据,因此在每次使用视图时,实际上都必须执行查询语句,从返回结果信息中再检索.视图与表一样,必须唯一命名(通过.tables和.schema查看)

语法:create view视图名as语句;
在这里插入图片描述
在这里插入图片描述
删除视图:
语法:drop view视图名;

总结
1、视图不包含数据,因此在每次使用视图时,实际上都必须执行查询语句
2、视图相当于 创建视图的时候as后面SQL语句查询得到的结果集合。
3、从返回结果信息(视图)中再检索视图与表一样

8. 触发器
SQLite的触发器是数据库的回调函数,它会在指定的数据库事件发生时自动执行调用

1、只有每当执行delete,insert或update操作时,才会触发,并执行指定的一条或多条SQL语句
2、触发器常用于保证数据一致,以及每当更新或删除表时,将记录写入日志表

创建触发器:
在这里插入图片描述
在这里插入图片描述

9. 索引
什么是索引?

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
索引就是恰当的排序,经过某种算法优化,使查找次数要少的多的多

缺点:
索引数据可能要占用大量的存储空间,因此并非所有数据都适合索引
索引改善检索操作的性能,但降低了数据插入、修改和删除的性能

语法:create index索引名on表名(列名);
查看索引:.indices
删除索引:drop index索引名;
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值