数据库学习Day6
一.流程控制函数
1.1流程控制函数——if函数
if函数:if else的效果
select last_name,username,password,if(password is not null,'有密码','无密码') from staff;
1.2流程控制函数——case函数
①case函数的使用一:switch case的效果
mysql中
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
。。。
else 要显示的值n或语句n;
end
select customer_id 客户编号,amount,
case customer_id
when 1 then amount*1.1
when 2 then amount*1.2
when 3 then amount*1.3
else amount
end as 新付款
from payment;
②case函数的使用二:类似于 多重if
mysql 中
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
。。。
else 要显示的值n或语句n
end
select amount,
case
when amount>3 then 'A'
when amount>2 then 'B'
when amount>1 then 'C'
else 'D'
end as 付款级别
from payment;
二.分组函数
2.1介绍
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:sum 求和,avg 平均值,max 最大值,min 最小值,count 计算个数
select sum(amount) from payment;
select avg(amount) from payment;
select min(amount) from payment;
select max(amount) from payment;
select count(amount) from payment;
select sum(amount) 和,avg(amount) 平均,max(amount) 最高,min(amount) 最低,count(amount) 个数 from payment;
2.2分组函数的使用特点
1.sum,avg一般用于处理数值型
max,min,count可以处理任何类型
2.以上分组函数都忽略null值
3.可以和distinct搭配实现去重的运算
4.count函数的单独介绍:一般使用count(*)用作统计行数
5.和分组函数一同查询的字段要求是group by后的字段
select sum(distinct amount),sum(amount) from payment;
select count(distinct customer_id),count(customer_id) from payment;
在此纪念一个函数: