5:MYSQL函数
5.1常用函数
-- 数学运算
SELECT ABS(-1) -- 绝对值函数
SELECT CEILING(9.4) -- 向上取整
SELECT FLOOR (9.4) -- 向下取整
SELECT RAND() -- 0-1之间的随机数
SELECT SIGN() -- 判断一个数的符号 0-0 负数返回负一 正数返回一
-- 字符串函数:
SELECT CHAR_LENGTH() -- 字符串长度
SELECT CONCAT() -- 拼接字符串
SELECT INSERT() -- 查询 替换
SELECT LOWER() -- 全部转换为小写
SELECT UPPER() -- 全部转换为大写
SELECT INSTR('xiaogongtongxue','t') -- 寻找出现的位置
SELECT REPLACE('坚持就能成功','坚持','努力') -- 替换出现的指定的字符串
SELECT SUBSTRING('坚持就能成功',4,3) -- 返回指定字符串 (源字符串,截取位置,截取长度)
SELECT REVERSE('xwVNLJV') -- 反转
-- 时间与日期
SELECT CURRENT_DATE() -- 获取当前日期
SELECT CURRENT()
SELECT NOW() -- 获取当前的时间
SELECT LOCALTIME() -- 本地时间
SELECT SYSDATE() -- 获取系统时间
-- 时间与日期
SELECT CURRENT_DATE() -- 获取当前日期
SELECT CURRENT()
SELECT NOW() -- 获取当前的时间
SELECT LOCALTIME() -- 本地时间
SELECT SYSDATE() -- 获取系统时间
SELECT YEAR(NOW())
SELECT MONTH(NOW()) -- 同样适用于年月日时分秒
-- 系统
SELECT USER()
SELECT SYSTEM_USER()
5.2聚合函数
函数名称 | 描述 |
---|---|
COUNT() | 计数 |
SUM() | 求和 |
AVG() | 平均 |
MAX() | 最大 |
MIN() | 最小 |
- GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前. HAVING语句必须在ORDER BY子句之后。(where先执行,再groupby分组;groupby先分组,having在执行。
-- 聚合函数
-- 查询表中的数据(返回数据的总和值)
select count(name) from student -- count指定列 会忽略所有的null值
select count(*) from student -- 不会忽略NULL值 包含所有的列
select count(1) from stundet -- 不会忽略NULL值 忽略了所有的列 将其变成1值
select sum(score) as 总和 from grade
SELECT avg(score) AS 平均分 FROM grade
SELECT max(score) AS 最高分 FROM grade
SELECT min(score) AS 最低分 FROM grade
group by [条件] -- 通过什么字段来分组
having [条件]
5.3数据库级别的MD5加密
MD5: 主要增强算法的复杂度与不可逆性
MD5不可逆
-- 测试MD5加密
create table `testMD5`
(
`id` int(4) not null,
`name` varchar(10) not null,
`pwd` varchar(20) not null,
primary key(`id`)
)engine=innodb DEFAULT charset=UTF8
INSERT INTO `testMD5` VALUES('1','zhangsan','123456'),('2','lise','123456'),('3','wangwu','124536')
-- 加密
update testMD5 set pwd=MD5(pwd) where id=1
update testMD5 set pwd='12' where id=1