目录
5、Mysql函数
5.1、常用函数
5.2、聚合函数
5.3、数据库级别的MD5加密(拓展)
-- ===================常用函数================= -- 数学运算 select abs(-8) -- 绝对值 select ceiling(9.8) -- 向上取整 select floor(9.8) -- 向下取整 select rand() -- 返回一个0~1之间的随机数 select sign() -- 返回一个数的符号 0返回0,负数返回-1,正数返回1 -- 字符串函数 select char_length('那女孩对我说') -- 字符串长度 select concat('他','不懂','我的心') -- 拼接字符串 select insert('怎么大风越狠','3','2','大雨') -- 从某个位置开始替换某个长度 select lower('qweFGGHiiHJIyuio') -- 小写字母 select upper('wertyuJIO') -- 大写字母 select instr('狼狈比失去难受' ,'难') -- 返回第一次出现的字串的索引 select replace('听见,冬天的离开','离开' , '到来') -- 替换出现的指定字符串 select substr('坚持总会有结果','3','4') -- 返回指定的字串(原字符串,截取的位置,截取的长度) select reverse('天外来物一样') -- 反转 -- 查询姓 孙 的同学,将名字改成 邹 select replace(`userName`,'孙','邹') from `smbms_user` where `userName` like '孙%' -- 时间和日期函数 select current_date()-- 获取当前日期 select curdate() -- 获取当前日期 select now() -- 获取当前时间 select localtime() -- 本地时间 select sysdate() -- 本地时间 -- 系统 select system_user() -- 系统使用者 select user() select version() -- mysql版本
函数名称 | 描述 |
COUNT() | 计数 |
SUM() | 求和 |
AVG() | 求平均值 |
MAX() | 求最大值 |
MIN() | 求最小值 |
…… | …… |
-- ==============聚合函数=================== -- 都能够统计 表中的数据(想查询一个表中有多少个记录,就使用Count()) select count(`userName`) from `smbms_user` -- Count(字段),会忽略所有的NULL值 select count(*) from `smbms_user` -- Count(*) , 不会忽略NULL值 ,计算行数 select count(1) from `smbms_role` -- count(1) , 不会忽略所有的null值,计算行数 select sum(`productCount`) as 总金额 from `smbms_bill` select avg(`productCount`) as 平均价 from `smbms_bill` select max(`productCount`) as 最高价格 from `smbms_bill` SELECT min(`productCount`) AS 最低价格 FROM `smbms_bill`
什么是MD5?
MD5主要增强了算法复杂度和不可逆性
MD5不可逆,具体的值的MD5是一样的
MD5破解网站的原理,背后有一个“字典”,MD5加密后的值,加密前的值
-- ================测试MD5 加密============== CREATE TABLE `testmd5`( `id` INT(4) NOT NULL, `name` VARCHAR(20) NOT NULL, `pwd` VARCHAR(60) NOT NULL, PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET = utf8 -- 明文密码 INSERT INTO `testmd5` VALUE (1,'张三','123456'),(2,'李四','123456'),(3,'王五','123456') -- 加密 UPDATE `testmd5` SET `pwd`=MD5(`pwd`) WHERE `id`=1 UPDATE `testmd5` SET `pwd`=MD5(`pwd`) -- 加密全部的密码 -- 插入的时候进行加密 INSERT INTO `testmd5` VALUE (4,'小明',MD5('123456')) -- 如何校验:将用户传递进来的密码进行MD5加密,比较加密后的值 SELECT * FROM `testmd5` WHERE `name`='小明' AND `pwd`=MD5('123456')