MySQL函数---常用函数和聚合函数

常用函数

  • 数学运算
SELECT ABS(-5)  --绝对值
SELECT CEILING(5.2) --向上取整
SELECT FLOOR(5.2) --向下取整
SELECT RAND() --返回一个 0~1 之间的随机数
  • 字符串函数
SELECT CHAR_LENGTH('有志者事竟成') --返回字符串长度
SELECT CONCAT('有','志者','事竟成') --拼接字符串
SELECT INSERT('有志事竟成',2,1,'志者') --返回(有志者事竟成)
SELECT LOWER('AbcD') --返回全为小写字母
SELECT UPPER('AbcD') --返回全为大写字母
SELECT INSTR('bajbhhd','a') --返回'a'第一次出现的索引
SELECT REPLACE('有志者事竟成','志','智')--替换指定的字符串,返回(有智者事竟成)
SELECT SUBSTR('有志者事竟成',2,2) --志者
SELECT REVERSE('有志者事竟成') --反转,返回(成竟事者志有)
--查询所有姓张的同学,将张替换为常
SELECT REPLACE(name,'张','常') FROM `student` WHERE name like '张%'
  • 时间和日期函数
SELECT CURRENT_DATE() --获取当前日期(2020-12-28)
SELECT CURDATE() --获取当前日期(2020-12-28)
SELECT NOW()--获取当前时间(2020-12-28 17:02:21)
SELECT LOCALTIME()--获取本地时间(2020-12-28 17:02:39)
SELECT SYSDATE()--获取系统时间(2020-12-28 17:03:00)
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()

聚合函数(重点)

函数名称 描述
count() 计数
sum() 求和
avg() 平均值
max() 最大值
min() 最小值
--统计一个表中有多少个数据(count())
SELECT COUNT(`name`) FROM student --忽略所有的null值
SELECT COUNT(*) FROM student  --不会忽略null值,本质是计算行数
SELECT COUNT(1) from student  --不会忽略所有的null值,本质是计算行数
SELECT SUM(`age`) as 年龄总和 FROM `student`
SELECT AVG(`age`) as 平均年龄 FROM `student`
SELECT MAX(`age`) as 最大年龄 FROM `student`
SELECT MIN(`age`) as 最小年龄 FROM `student` 

数据库级别的MD5加密

  • MD5:MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
  • MD5主要增强算法复杂度和不可逆性
  • MD5破解网站的原理其实是背后有一个字典,对应加密前的值和加密后的值
--不加密时
INSERT into `student` VALUES (7,'D',10,'123456'),(8,'E',11,'123456')

--加密时
UPDATE `student` SET password=MD5(password) WHERE id=1
UPDATE `student` SET password=MD5(password)--加密全部的密码

--插入的时候加密
INSERT INTO `student` VALUES(9,'F',12,MD5('123456'))

--如何校验:将用户传递进来的密码,进行MD5加密,然后比对加密后的值
SELECT * FROM `student` WHERE `name`='F' and `password`=MD5('123456')

select 完整语法总结

select 去重 要查询的字段 from--表和字段可以取别名
xxx join 要连接的表 on 等值判断
where (具体的值,子查询语句)
group by (通过那个字段来分组)
having (过滤分组后的信息,条件和where是一样的,位置不同)
order by...(通过那个字段排序)--升序/降序
limit startIndex,pagesize

猜你喜欢

转载自blog.csdn.net/insist_to_learn/article/details/112033352
今日推荐