② 聚合
聚合函数查询是纵向查询,是对一列的值进行计算,然后返回一个单一的值;
聚合函数会忽略空值,常用的5个聚合函数如下:
count:统计指定列不为null的记录行数
sum :计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
max :计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
min :计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
avg :计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0
③ 分组(group by)
分组中的having子句,是用于在分组后对数据进行过滤的,类似于where条件
select 字段1, 字段2... from 表名 group by 分组字段 having 分组条件;
注意:
having一定要与 group by 连用
有 having 就一定有group by,但是有 group by 不一定有 having
group by 有一个原则,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中(select中的字段不可以单独出现,必须出现在group语句或组函数中)
就是select后面的所有列中,如果没有使用聚合函数,就必须出现在group by 后面 【006】having 与 where 的区别?
答:
having :筛选分组,在分组后进行过滤,可使用分组函数
where :筛选数据,在分组前进行过滤,不可用分组函数 【007】SQL有哪些常用约束(constraint)?
答:
① 主键约束:primary key
primary key 约束唯一标识数据库表中的每条记录,必须唯一、且不能为null
每个表都应该有且只有一个主键
添加 主键约束的3种方式:
1、创建表时,在字段描述处,声明指定字段为主键
格式:字段名 字段类型 primary key;
2、创建表时,在constraint约束区域,声明指定字段为主键
格式:[constraint 名称] primary key (字段列表);
关键字constraint可以省略(如需为主键命名则不能省略)
字段列表需用小括号,多个字段之间用逗号分隔
声明两个以上字段为主键,称为联合主键
3、创建表时,创建表后,通过修改表结构,声明指定字段为主键
alter table 表名 add [constraint 名称] primary key (字段列表);