函数,是指一段可以直接被另一段程序调用的程序或代码。
MySQL中内置了许多函数,我们只需在合适的场景下调用它们即可,调用函数查询结果直接使用即可,并且可以嵌套使用:
- functions:函数
- parameters:参数
为了避免多张截图堆叠的问题,我们在直接演示环节使用代码块并使用注释来展示函数结果。
常用字符串函数:
函数功能
CONCAT(S1, S2, …Sn)字符串拼接,将S1,S2,… Sn拼接成一个字符串
LOWER(str)将字符串 str 全部转为小写
UPPER(str)将字符串 str 全部转为大写
LPAD(str, len, pad)左填充,用字符串 pad 对 str 的左边进行填充,达到 len 个字符串长度
RPAD(str, len, pad)右填充,用字符串 pad 对 str 的右边进行填充,达到 len 个字符串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str, start, len)返回字符串 str 从 start 位置起的 len 个长度的字符串,第一个字符的位置是1
- 对于字符串函数,MySQL能够自动处理非字符串类型的参数,并将它们转换为字符串后再进行指定操作
直接演示:
场景演示:
对于下表,修改id数据列的格式:3位数,不够的左边填充0:
常用数值函数:
函数功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x, y)返回 x/y 的模
RAND()返回 0~1 内的随机数
ROUND(x, y)求参数 x 的四舍五入的值,保留 y 位小数
直接演示:
场景演示:
查询所有人的成绩,要求查询结果中成绩没有小数位,四舍五入:
常用日期函数:
函数功能
CURDATE()返回当前日期 YYYY-MM-DD
CURTIME()返回当前时间 HH:MM:SS
NOW()返回当前日期和时间 YYYY-MM-DD HH:MM:SS
YEAR(date)获取指定 date 的年份
MONTH(date)获取指定 date 的月份
DAY(date)获取指定 date 的日期
DATE_ADD(date, INTERVAL expr type)返回一个日期/时间值加上一个时间间隔 expr 后的时间值
DATEDIFF(date1, date2)返回起始时间 date1 和结束时间 date2 之间间隔的天数
- 的参数含义如下:
- date:这是你想要添加时间间隔的原始日期。 它可以是一个日期或日期时间表达式,比如一个 、 或 类型的列,或者是一个日期字符串(在能够被MySQL解析为有效日期的情况下)。
- INTERVAL:这是一个关键字,用于指示接下来的参数是一个时间间隔。 它告诉MySQL你想要对前面的日期进行加法操作,并且接下来的参数将定义这个加法操作的具体内容。
- expr:这是你想要添加到原始日期上的时间间隔的数量。 它应该是一个整数或整数表达式。例如,如果你想要添加3天,那么 就是 。
- type:这是时间间隔的单位。 它告诉MySQL你想要以什么单位来添加时间间隔。 可以是多种不同的值,比如 、、、、、 等。这个参数决定了 的具体含义。例如,如果 是 ,那么 就是天数;如果 是 ,那么 就是月数。
直接演示:
场景演示:
比如有张学生信息表,其中有个入学时间的字段,我们想查询学生的入学了多长时间,并按照时间降序排序,就会写出类似如下语句:
常用流程函数:
函数功能
IF(value, t, f)如果 value 为 true,返回 t,否则返回 f
IFNULL(value1, value2)如果 value 不为空,返回 value1,否则返回 value2
CASE
WHEN [val1]
THEN [ret1]…
ELSE [default]
END如果 val1 为 true,返回 ret1,… 否则返回 default
CASE [expr]
WHEN [val1]
THEN [ret1]…
ELSE [default]
END如果 expr 的值等于 val1,返回 ret1,… 否则返回 default
- 在SQL的语句中,条件是从上到下依次评估的,一旦找到满足条件的分支,就会执行该分支的语句并结束表达式的评估。
直接演示:
场景演示:
查询学生成绩,要求:1. >= 90 显示优秀 2. >= 60 显示及格 3. 否则,显示不及格,如下:
完
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5687.html