MySQL常用函数
1.常用函数
点击查看常用函数
-- 数学运算
SELECT ABS(-8) -- abs 绝对值
SELECT CEILING (9.4) -- ceiling 向上取整
SELECT FLOOR(9.4) -- floor 向下取整
SELECT RAND() -- rand 返回0-1之间的随机数
SELECT SIGN(-6) -- sign 判断一个数的符号 0返回0 负数返回-1 正数返回1
-- 字符串函数
SELECT CHAR_LENGTH ('我的') -- char_length字符串长度
SELECT CONCAT('我','和','你') -- concat 拼接字符串
SELECT INSERT('我爱编程',1,2,'你超级热爱'); -- insert 从某个字母开始替换
SELECT LOWER('KADJWOADWNAOFA') -- lower 转小写
SELECT UPPER('ndzbfeaf') -- upper 转大写字母
SELECT INSTR('ABCD','B') -- instr 返回后字符第一次出现的位置 2
SELECT REPLACE('我的','我','你') -- replace 替换字符串 将我的替换为了你的
SELECT SUBSTR('我的你的大家的',4,2); -- substr 截取字符串 截取的串 开始截的位置 长度
SELECT REVERSE('AB')
-- 查询姓周的同学 然后都替换为 邹
SELECT REPLACE(studentname ,'周','邹') FROM student
WHERE studentname LIKE '周%'
-- 时间和日期函数
SELECT CURRENT_DATE() -- current_date 获取当前日期 2022-07-22
SELECT CURDATE() -- curdate 当前日期 2022-07-22
SELECT NOW() -- now 当前时间 2022-07-22 18:35:33
SELECT LOCALTIME() -- localtime 本地时间2022-07-22 18:35:33
SELECT SYSDATE() -- sysdate 系统时间2022-07-22 18:35:33
-- 年月日时分秒
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()
2.聚合函数
函数名称 | 描述 |
---|---|
count() | 计数 |
sum() | 求和 |
avg() | 平均值 |
max() | 最大值 |
min() | 最小值 |
点击查看常用聚合函数
-- 查询一个表中由多少个记录
SELECT COUNT(`name`) 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 subjectName ,AVG(studentResult) AS 平均分,MAX(studentResult),MIN(studentResult)
FROM result r
INNER JOIN `subject` sub
ON r.`subjectNo`= sub.`subjectNo`
GROUP BY r.subjectNo -- 通过什么字段来分组
HAVING 平均分>80 -- 过滤
3.数据库MD5加密
MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。
MD5破解网站的原理,背后有一个字典,存储了MD5加密前后的值。
MD5加密案例
CREATE TABLE `testmd5`(
`id` INT(4) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET utf8
INSERT INTO `testmd5` VALUES (1,'zhangsan11','12456'),(2,'zhangsan22','15256'),(3,'zhangsan33','45456')
-- md5加密 mds() 注意 加密次数不同 结果不同
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1; -- 加密id为1的密码
UPDATE testmd5 SET pwd=MD5(pwd) -- 加密所有
-- 插入的时候就加密
INSERT INTO `testmd5` VALUE (4,'小明',MD5('123456'));
-- 如何校验:将用户传递进来的密码进行md5加密,然后对比md5加密后的值
SELECT * FROM testmd5 WHERE `name`='小明' AND `pwd`=MD5('123456');
https://www.icode9.com/i/l/?n=22&i=blog/2869881/202207/2869881-20220723091926051-1843176645.png
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/276393.html