5.MySQL函数
5.1 常用函数
-- 数学运算
SELECT ABS(-8) -- 绝对值
SELECT CEILING (9.4) -- 向上取整
SELECT FLOOR (9.4) -- 向下取整
SELECT RAND() -- 返回一个0-1之间的随机数
SELECT SIGN(-10) -- 判断一个数的符号 0-0 负数返回-1 正数返回1
-- 字符串函数
SELECT CHAR_LENGTH('即使再小的') -- 字符串长度
SELECT CONCAT('w','a','nm') -- 拼接字符
SELECT INSERT('我爱编程helloword',1,2,'超级热爱') -- 查询,从某个位置开始替换某个长度
SELECT LOWER('kuansghen')-- 小写字母
SELECT UPPER('kuansghen')-- 小写字母
SELECT INSTR('kuansghen','h')-- 返回第一次出现的子串的索引
SELECT REPLACE('坚持就能成功','坚持','努力') -- 替换出现的指定字符串
SELECT SUBSTR('坚持就能成功',4,6)-- 返回指定的字符串(源字符串,截取的位置,截取的长度)
SELECT REVERSE('坚持就能成功')-- 反转
-- 查询姓张的同学,名字邹
SELECT REPLACE(studentname,'张','邹') FROM student
WHERE studentname LIKE '周%'
-- 时间和日期函数
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 USER()
SELECT SYSTEM_USER()
SELECT VERSION()
5.2 聚合函数(常用)
函数名称 | 描述 |
---|---|
count() | 计数 |
sum() | 求和 |
avg() | 平均值 |
max() | 最大值 |
min() | 最小值 |
…… | …… |
-- =========================== 聚合函数====================
-- 都能够统计表中的数据(想查询一个表中有多少个记录,就使用这个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
5.3 数据库级别的MD5加密(扩展)
什么是MD5?
主要增强算法复杂度和不可逆性
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,'张三','123456'),(2,'lisi','123456'),(3,'wagwu','123456')
-- 加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1
UPDATE testmd5 SET pwd=MD5(pwd)-- 加密全部密码
-- 插入的时候加密
INSERT INTO testmd5 VALUES(4,'testming',MD5('123456'))
-- 如何校验,将用户传递过来的密码进行md5加密,然后比对加密的值