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');
posted @ 2022-05-17 18:45  chachan53  阅读(25)  评论(0编辑  收藏  举报