MySQL笔记5:函数
5. 函数
查询官方文档
5.1 常用函数
数学运算
SELECT ABS(-8) -- 绝对值
SELECT CEILING(9.3) -- 向上取整
SELECT FLOOR(9.3) -- 向下取整
SELECT RAND() -- 返回一个0~1间的随机数
SELECT SIGN(10) -- 判断一个数的符号,负数返回-1,正数返回1
字符串
SELECT CHAR_LENGTH('sdfsdfdsfsd') -- 字符串长度
SELECT CONCAT('I',' am sad') -- 拼接字符串
SELECT INSERT('123456',1,2,'test') -- 查询,从某个位置开始替换某个长度
SELECT LOWER('sdfsAAA') -- 字符串转换成小写字母
SELECT UPPER('dsfsAAA') -- 字符串转换成大写字母
SELECT INSTR('sdhfjks','d') -- 返回第一次出现子串的索引
SELECT REPLACE('用A替换B','B','A') -- 找到字符串中指定字符,替换
SELECT SUBSTR('123456789',3,4) -- 从指定索引3开始截取4个字符串
SELECT REVERSE('123456789') -- 反转
-- 查询姓 李 的同学,把姓替换成 Li
SELECT REPLACE(studentName,'李','Li') 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()
5.2 聚合函数(常用)
函数名称 | 描述 |
---|---|
count() | 计数 |
sum() | 求和 |
avg() | 平均值 |
max() | 最大值 |
min() | 最小值 |
应用
-- count用于查询表中由多少记录
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
5.3 数据库级别的MD5加密(拓展)
MD5:信息摘要方法
作用:用于增强算法复杂度和不可逆性,具体值的MD5相同
-- 加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=2;
UPDATE testmd5 SET pwd=MD5(pwd) -- 加密全部密码
-- 插入的时候加密
INSERT INTO `testmd5`(`id`,`name`,`pwd`)
VALUES(4,'小明',MD5('123456'));
-- 如何校验,将用户传递进来的密码,进行MD5加密,然后比对加密后的值
SELECT * FROM `testmd5` WHERE `name`='小明' AND pwd = MD5('123456');