MySQL函数

MySQL函数

常用函数(并不常用)

-- 数学运算(知道)
SELECT ABS(-8) -- 绝对值
SELECT CEILING(9.4) -- 向上取整
SELECT FLOOR(9.4) -- 向下取整
SELECT RAND() -- 返回0~1间的随机数
SELECT SIGN(10) -- 判断一个数的符号,负数返回-1,整数返回1,0返回0

-- 字符串函数(知道)
SELECT CHAR_LENGTH('大白菜拱猪') -- 返回字符串长度
SELECT CONCAT('我','爱','我') -- 拼接字符串
SELECT INSERT('我爱编程helloworld',1,2,'超级热爱') -- 替换字符串
SELECT LOWER('ShuShu')-- 全部转为小写
SELECT UPPER('ShuShu')-- 全部转为大写
SELECT INSTR('kuangshen','h') -- 返回第一次出现的字符串索引
SELECT REPLACE('我爱编程','编程','音乐') -- 替换指定的字符串
SELECT SUBSTR('我爱编程',2,1) -- 截取字符串,2表示开始位置,1表示截取长度
SELECT REVERSE('我爱编程') -- 翻转字符串

-- 查询姓周的同学,名字改为邹
SELECT REPLACE(`studentname`,'周','邹') FROM student
WHERE studentname LIKE '周%'
-- 时间和日期函数(记住)
SELECT CURRENT_DATE() -- 获取当前日期
SELECT CURDATE()  -- 获取当前日期
SELECT NOW() -- 获取当前日期和时间
SELECT LOCALTIME() -- 本地时间
SELECT SYSDATE() -- 系统时间
SELECT YEAR(NOW()) -- 获得年
SELECT MONTH(NOW()) -- 获得月
SELECT DAY(NOW()) -- 获得天
SELECT HOUR(NOW()) -- 获得小时
SELECT MINUTE(NOW()) -- 获得分钟
SELECT SECOND(NOW()) -- 获得秒


-- 系统
SELECT SYSTEM_USER() -- 系统当前用户名
SELECT USER()-- 系统当前用户名
SELECT VERSION()-- 系统版本

聚合函数(常用)

函数名称描述
COUNT() 计数
SUM() 求和
AVG() 平均值
MAX() 最大值
MIN() 最小值
-- 三种都能统计表中的数据
SELECT COUNT(`studentname`) FROM `student` -- COUNT(指定列),会忽略所有的null值
SELECT COUNT(*) FROM `student`-- COUNT(*),不会忽略null值,本质计算行数
SELECT COUNT(1) FROM `student` -- COUNT(1),不会忽略null值 本质计算行数

-- 查分
SELECT SUM(`StudentResult`) AS 总和 FROM result
SELECT AVG(`StudentResult`) AS 平均分 FROM result
SELECT MAX(`StudentResult`) AS 最高分 FROM result
SELECT MIN(`StudentResult`) AS 最低分 FROM result

分组和过滤

-- 分组、过滤
SELECT `subjectname`,AVG(`studentresult`) AS 平均分,MAX(`studentresult`) AS 最高分
FROM result r
INNER JOIN `subject` sub
ON r.`subjectno` = sub.`subjectno`
GROUP BY r.`subjectno` -- 通过字段来分组,不然最高分、平均只有一个
HAVING 平均分>80 -- 过滤,此时不能用where求平均分>80

 

小结

-- 数值函数
abs(x) -- 绝对值
format(x,d) -- 格式化千分位数值 format(1234567.456,2)=1,234,567.46
ceil(x)  -- 向上取整 ceil(10.1) = 11
floor(x) -- 向下取整
round(x) -- 四舍五入取整
mod(m,n) -- m%n m mod n 求余 10%3=1
pi() -- 获得圆周率
sqrt(x) -- 算术平方根
rand() -- 随机数
truncate(x,d) -- 截取d位小数

-- 时间日期函数
now(),current_timestamp(); -- 当前日期时间
current_date(); -- 当前日期
current_time(); -- 当前时间
date('yyyy-mm-dd hh:ii:ss') -- 获取日期部分
time('yyyy-mm-dd hh:ii:ss') -- 获取时间部分
date_format('yyyy-mm-dd hh:ii:ss','%d %y %a %d %m %b %j');-- 格式化时间
unix_timestamp(); -- 获取unix时间戳
from_unixtime(); -- 从时间戳获得时间

-- 字符串函数
length(string) -- string长度,字节
char_length(string) -- string的字符个数
substring(str,position,replace_str) -- 从str的position开始,取length个字符
replace(str,search_str,replace_str) -- 在str中用replace_str替换search_str
instr(string,substring) -- 返回substring首次在string中出现的位置
concat(string[,...]) -- 连接字符串
charset(str)            -- 返回字串字符集
left(string, length)    -- 从string2中的左边起取length个字符
load_file(file_name)    -- 从文件读取内容
locate(substring, string [,start_position])    -- 同instr,但可指定开始位置
lpad(string, length, pad)    -- 重复用pad加在string开头,直到字串长度为length
rpad(string, length, pad)    --在str后用pad补充,直到长度为length
ltrim(string)            -- 去除前端空格
repeat(string, count)    -- 重复count次
rtrim(string)            -- 去除后端空格
strcmp(string1 ,string2)    -- 逐字符比较两字串大小

-- 聚合函数
count()
sum();
max();
min();
avg();
group_concat()

-- 其他常用函数
md5();
default();

 

posted @ 2021-04-23 16:05  术树  阅读(269)  评论(0)    收藏  举报