MySQL函数


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

(0)
上一篇 2022年7月23日
下一篇 2022年7月23日

相关推荐

发表回复

登录后才能评论