sql语句学习教程15_select_select查询_sql查询语句_sql函数查询
sql语句学习教程15_select_select查询_sql查询语句_sql函数查询
SQL编程的应用,主要是三个方面:存储过程、触发器、函数,存储过程风哥教程前面已经介绍过了,它可以理解成一种完成某一任务的批处理程序包,函数看起来也是为了实现某一功能的批处理程序包,函数不能单独执行,必须在SQL语句中调用,可以有多个输入参数,但是没有输出参数,但必须返回指定类型的结果。
1.函数创建与使用
在MySQL的官方手册中,函数和存储过程的语法是放在一起讲的,下面是风哥将复杂的函数创建语法简化为最容易记忆的语法:
create function 函数名(参数名称1 数据类型,参数名称2 数据类型2) returns 返回类型
begin
declare 声明变量 [default default_value];
sql 语句;
return 返回计算、查询结果;
end
2.统计函数和分组
在数据库应用中,风哥为大家介绍最常见的就是各种统计数据了,比如平均工资、最高工资、人数统计、薪酬汇总等,这些都可以通过以下的统计函数来实现。
函数名称 说明
COUNT() 统计符合条件的记录的行数
SUM() 对符合条件的记录的指定字段(数值型)进行加总
AVG() 对符合条件的记录的指定字段(数值型)计算平均数
MAX() 获取符合条件记录中指定字段的最大值,适用于任何类型
MIN() 活肤符合条件记录中指定字段的最小值,适用于任何类型
3.字符串函数
对于字符,风哥为大家介绍常用的就是拼接、截取、替换、获取长度等,MySQL常用的字符串函数如下:
函数名称 说明
CONCAT() 将两个或多个字符串(列)组合成一个字符串(列)
GROUP_CONCAT() 对同一列的值进行组合,组合成一个文本,默认用逗号分隔
INSTR() 返回子字符串在在字符串中第一次出现的位置
FIND_IN_SET 在逗号分隔的字符串列表中找到一个字符串
LENGTH() 获取字符串的长度(字节数)
CHAR_LENGTH() 获取字符串的长度(字符数)
LEFT() 获取指定字符串的左边开始的指定长度的部分
REPLACE() 搜索并替换字符串中的子字符串
SUBSTRING() 从具有特定长度的位置开始提取一个子字符申
TRIM() 从字符串中删除不需要的字符,默认下是截取前后的空字符
FORMAT() 格式化具有特定区域设置的数字,舍入到小数位数
LOWER() 将字符串转换为小写(字母),LCASE()是它的同义词函数
UPPER() 将字符串转换为大写(字母),UCASE()是它的同义词函数统计函数和分组
4.日期时间函数
关于日期时间的函数,非常多,然后各类参数值也非常细,毕竟很多东西要在实际运用过程中才能理解、加深印象,所以这里风哥只挑选其中一些常见的函数,并简单示例说明:
函数名称 说明
curdate() 返回当前日期。
sysdate() 返回当前执行函数的日期和时间。
now() 返回当前执行语句的日期和时间。
datediff() 计算两个DATE值之间的天数。
timediff() 计算两个TIME或DATETIME值之间的差值。
timestampdiff() 计算两个DATE或DATETIME值之间的差值。
Year() 获取指定日期的年份。
month() 返回一个表示指定日期的月份的整数。
day() 获取指定日期月份的天(日)。
extract() 提取日期的一部分。
dayname() 获取指定日期的工作日的名称。
dayofweek() 返回日期的工作日索引。
date_add() 将时间值添加到日期值。
date_sub() 从日期值中减去时间值。
date_format() 根据指定的日期格式格式化日期值。
str_to_date() 将字符串转换为基于指定格式的日期和时间值。