c++ 编写函数返回两个值最小值_SQL基础知识(3)—常见函数(最全!)
一、函数是什么:
- 概念:将一组逻辑语句封装在方法体内,对外暴露方法名
- 好处:隐藏实际细节;提高代码重用性(即:不用重新写逻辑语句,调用函数就行)
- 调用:select 函数名(实参列表) from 表;
- 特点:1.叫什么(函数名);2.干什么(函数功能)
- 分类:
二、文本处理函数
- 说明:用于处理文本字符串(如删除/填充值、转换为大写或小写)的文本函数
1. 查看字符串的长度、拼接多个字符串、替换部分字符串、改变字符串大小写
2. 根据索引截取字符串、根据字符串返回索引
3. 删除字符串前缀或后缀的部分字符串/空格
4. 填充字符串至指定长度、返回指定长度的字符串
三、数值处理函数
- 说明:用于在数值数据上进行算数操作(如返回绝对值,进行代数计算)的数值函数
1. 将数值四舍五入/截断至指定位数
2. 向上/向下取整,求余数
四、日期和时间处理函数
- 说明:用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之的差,检查日期有效性)的日期和时间函数
1. 返回当前日期和时间、日期、时间
年、月、日、小时、分钟、秒的格式符:
2. 将日期与字符通过格式符进行转换
3. 两个日期相隔天数
4. 提取部分日期或时间
五、分组函数(聚集函数)
- 说明:当需要表中数据的汇总信息,而不需要检索出原始数据本身时使用
- 用途:用于计算表中某些行的和;找出某列(所有行/特定行)的最大值、最小值、平均值;确定表中行数(或者满足特定条件的行数)
1. 函数说明:
2. 函数实例:
例1:查询员工的工资总和、工资的平均值、最高值、最低值,以及表的行数和工资列的行数
3. 分组函数与distinct结合使用:
- 说明:分组函数与distinct结合,可用于对数据中的不同值进行汇总
例2:汇总员工不相同工资的总和、均值、行数 VS 汇总员工全部的工资的总和、均值、行数
4. count(*)函数的拓展说明:
(1) 统计表的行数的两种方式:
- SELECT COUNT(*) FROM employees;
- SELECT COUNT(1) FROM employees;(相当于再建一列,列值均为1)
(2) 执行效率对比:
- MYISAM存储引擎下,count(*)的效率最高
- INNODB存储引擎下,count(*)和count(1)的效率差不多,比count(字段)要高一些
- 综上,一般用count(*)统计行数
六、流程控制函数
1. if函数:条件判断函数
语法:if(判断条件, 条件成立时返回的值, 条件不成立时返回的值)
例3:如果员工的奖金率为空值显示为0,否则显示表格中的奖金率
IFNULL( expr1,expr2 ):判断expr1是否为NULL,不为空返回expr1,为空返回expr2
2. case函数:
(1) 第一个作用:判断一个条件
语法:
case 判断字段/表达式/变量
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
……
else 要显示的值n或语句n
end
例4:查询员工的工资:部门号=30,显示工资为1.1倍;部门号=40,显示的工资为1.2倍;部门号=50,显示的工资为1.3倍;其他部门显示原工资
(2) 第二个作用:判断多个条件(类似于多重if )
语法:
case
when 条件1 then 要显示的值1或者语句1
when 条件2 then 要显示的值2或者语句2
……
else 要显示的值n或语句n
end
例5:查询员工的工资:如果工资大于两万,显示A级别;如果工资大于15000,显示B级别;如果工资大于一万,显示C级别;否则显示D级别