ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL函数

2022-07-23 09:31:59  阅读:155  来源: 互联网

标签:加密 函数 -- pwd MySQL NOW SELECT MD5


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

标签:加密,函数,--,pwd,MySQL,NOW,SELECT,MD5
来源: https://www.cnblogs.com/lansedemao/p/16507161.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有