Mysql数据库学习笔记-常用函数 2020-2-8

Mysql常用函数

数学函数

ABS() 取绝对值

SQRT() 开根号

MOD(x,y) 取余,相当于x%y

CEIL() 天花板函数(向上取整),也写作CEILING()

FLOOR() 地板函数(向下取整)

ROUND(x,y) 对x四舍五入,小数点后保留y位(y可以省略不写。默认为0)

TRUNCATE(x,y) 直接截断,x后保留y位小数,后面的直接舍弃,不进行四舍五入(TRUNCATE的y值不可省略)

RAND() 生成[0,1)的随机小数,可以与取整函数嵌套使用,生成某范围内的随机整数FLOOR(rand() * 10) 生成[0,9]的随机整数

字符串函数

char_length(“12345”) 求字符长度(有几个文字(汉字/字符))
length(“12345”) 求编码由几个字节组成,即字节长度(一个中文等于3字节)

CONCAT(“s1”,“s2”,…) 字符串拼接

INSERT(s1,x,len,s2) s1字符串中从第x个元素开始,将len个元素替换为s2字符串
例:insert(“abcdef”,1,2,“1111”)结果为"1111cdef"

Lower() 转换为小写字母
uper() 转换为大写字母

LEFT(s,n) 截取字符串s 最左边 开始的n个字符
RIGHT(s,n) 截取字符串s 最右边 开始的n个字符

LPAD(s1,len,s2) 若s1长度不够len,则用s2在 左侧 进行填充至长度为len
RPAD(s1,len,s2) 若s1长度不够len,则用s2在 右侧 进行填充至长度为len

LTRIM(s) 删除s 左侧 的空格后返回字符串
RTRIM(s) 删除s 右侧 的空格后返回字符串
TRIM(s) 删除s 两端 的空格后返回字符串

REPLACE(s,s1,s2) 将字符串s中的s1替换为s2

SPACE(n) 返回由n个空格组成的字符串

SUBSTRING(s,n,len) 在字符串s中的第n个元素开始截取len个元素(第一个元素下标为1)

LOCATE(s,s1) 查找字符串s1中字符串(字符)s第一次出现的位置(若s1中没有s则返回0)
POSITION(s in s1)INSTR(s1,s) 作用同上

REVERSE(s) 将字符串s反转

时间日期函数

curdate() 获取当前日期(年月日)

curtime() 获取当前时间(时分秒)

now() 获取当前日期和时间(年月日时分秒) now()+0 可以将时间转换为数值
Date(now()) 当前日期
Time(now()) 当前时间
year(now()) 当前年份
(month/dayofyear/dayofweek) (now()) 当前月份 /是今年的第几天/是周几

utc_date() 获取世界标准日期(本初子午线)

utc_time() 获取世界标准时间(本初子午线)

timediff(“a”,“b”) 返回时间a-b的值(b可以为秒数也可以是时间,若为秒数不能减(60~99)的数)( 时间a的格式为hh:mm:ss )

datediff(“a”,“b”) 获取两个日期之间的差(b-a) 单位为天(日期的格式为 yyyy-mm-dd )

datesub(“a”,interval b year/month/day/week)
日期a减b年/月/日/周

dateadd (“a”,interval b year/month/day/week)
日期a加b年/月/日/周

date_format(“日期”,"%Y_%m_%d") 将时间日期格式化,可以按照自己想要的格式(第二个参数值设置的)显示
Mysql数据库学习笔记-常用函数 2020-2-8
时间日期格式化格式
Mysql数据库学习笔记-常用函数 2020-2-8
时间日期格式化格式

流程控制函数

case语句
例:判断部门 10 会计 20 调研 30 销售 40 运营
select ename,deptno,
case deptno
when 10 then “会计”
when 20 then “调研”
when 30 then “销售”
when 40 then “运营”
else “输入有误” end
from emp
Mysql数据库学习笔记-常用函数 2020-2-8
查询结果

if(表达式,结果1,结果2) 表达式结果为true,输出结果1,如果为false,输出结果2
例:判断输入等级,高于1200$是高收入反之低收入
select sal,if (sal>1200,“高收入”,“低收入”) from emp
Mysql数据库学习笔记-常用函数 2020-2-8
查询结果