MySQL函数及MD5加密——(六)

MySQL函数——(六)

7.1常用函数

分类: 数学函数 , 字符串函数 , 日期和时间函数 , 系统信息函数

-- 数学函数 (这里只列出一些常用的)
SELECT ABS(-8);  /*绝对值*/

SELECT CEILING(9.4);  /*向上取整*/

SELECT FLOOR(9.4);  /*向下取整*/

SELECT RAND();  /*随机数,返回一个0-1之间的随机数*/

SELECT SIGN(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/


-- 字符串函数
SELECT CHAR_LENGTH('狂神说坚持就能成功'); /*返回字符串包含的字符数*/

SELECT CONCAT('我','爱','程序');  /*合并字符串,参数可以有多个*/

SELECT INSERT('我爱编程helloworld',1,2,'超级热爱');  /*替换字符串,从某个位置开始替换某个长度*/

SELECT LOWER('KuangShen'); /*小写*/

SELECT UPPER('KuangShen'); /*大写*/

SELECT LEFT('hello,world',5);  /*从左边截取*/

SELECT RIGHT('hello,world',5);  /*从右边截取*/

SELECT REPLACE('狂神说坚持就能成功','坚持','努力');  /*替换字符串*/

SELECT SUBSTR('狂神说坚持就能成功',4,6); /*截取字符串,开始和长度*/

SELECT REVERSE('狂神说坚持就能成功'); /*反转*/


-- 日期和时间函数
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 VERSION();  /*版本*/
SELECT USER();  /*用户*/


-- 查询姓李的同学,改成立
SELECT REPLACE(studentname,'李','历') AS 新名字
FROM student WHERE studentname LIKE '李%';

7.2聚合函数

聚合函数.png

-- 聚合函数

/*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;

7.3数据库级别的MD5加密(扩展)

i.什么是MD5?

主要增强算法复杂度和不可逆性

MD5不可逆,具体的值的MD5是一样的

MD5破解网站的原理,背后都是一个字典,匹配到MD5加密后的值,就返回加密前的值

-- 测试MD5加密--
-- 建立一张表
CREATE TABLE `md5test`(
`id` INT(4) NOT NULL,
`name` VARCHAR(30) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

-- 插入数据-- 
-- 明文密码
INSERT INTO `md5test` VALUES (1,'qzp','123456'),(2,'qzy','123456'),(3,'wjw','123456')

-- 加密密码
UPDATE md5test SET pwd=MD5(pwd) WHERE id=1;
UPDATE md5test SET pwd=MD5(pwd) WHERE id!=1 AND id !=4
DROP TABLE md5test;
INSERT INTO md5test VALUES(4,'wo',MD5('123456'))
TRUNCATE md5test
-- 插入的时候就加密
INSERT INTO md5test VALUES(5,'wo',MD5('123456'))
UPDATE md5test SET pwd=MD5(pwd) WHERE id=5;
-- 如何校验:将用户传递进来的密码,进行MD5加密,然后比对加密后的值
SELECT * FROM md5test WHERE `name`='wo' AND `pwd`=MD5('123456')
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QZP51ZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值