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.联结表(多表操作)
保存数据时往往不会将所有数据保存在一个表中,而是在多个表中存储,联结表就是从多个表中查询数据。
在一个表中不利于分解数据,也容易使相同数据出现多次,浪费存储空间;使用联结表查看各个数据更直观,这使得在处理数据时更简单。
order by 语句
默认按照升序对结果集进行排序,可使用 desc 关键字按照降序对结果集进行排序。
升序
select * from 表名 order by 列名;
降序
select * from 表名 order by 列名 desc;
视图
视图不包含数据,因此在每次使用视图时,实际上都必须执行查询语句,从返回结果信息中再检索.视图与表一样,必须唯一命名(通过.tables和.schema查看)
语法:create view 视图名 as 语句;
删除视图:
语法:drop view 视图名;
总结:
1、视图不包含数据,因此在每次使用视图时,实际上都必须执行查询语句
2、视图相当于 创建视图的时候 as后面SQL语句查询得到的结果集合。
3、从返回结果信息(视图)中再检索视图与表一样