5、MySQL函数

27 篇文章 0 订阅
19 篇文章 0 订阅

官网:https://dev.mysql.com/doc/refman/5.7/en/func-op-summar-ref.html

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('我','爱','你们')    

-- 拼接字符串
SELECT INSERT('我爱编程helloworld',1,2,'超级热爱')    

-- 查询,从某个位置开始替换某个长度
SELECT LOWER('KKKKKAAA')    

-- 小写字母
SELECT UPPER('afsjdf')    

-- 大写字母
SELECT INSTR('asdfghjk','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 DATE(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT SECOND(NOW())

-- 系统
SELECT SYSTEM_USER()
SELECT 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 是一样的

https://www.cmd5.com/

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,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456')

-- 加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1UPDATE testmd5 SET pwd=MD5(pwd)    

-- 加密全部的密码
-- 插入的时候加密
INSERT INTO testmd5 VALUES(4,'小明',MD5('123456'))

-- 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密后的值
SELECT * FROM testmd5 WHERE `name`='小明' AND pwd=MD5('123456')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值