数据库学习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;

在此纪念一个函数: