MySQL函数有哪些
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下MySQL函数有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL函数常用函数聚合函数数据库级
千家信息网最后更新 2025年11月07日MySQL函数有哪些
小编给大家分享一下MySQL函数有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
MySQL函数
常用函数
聚合函数
数据库级别的MD5加密
常用函数
| 函数 | 作用 | 例子 |
|---|---|---|
| ABS(x) | 返回x的绝对值 | SELECT ABS(-1) - 返回1 |
| CEIL(x),CEILING(x) | 返回大于或等于x的最小整数 | SELECT CEIL(1.5) - 返回2 |
| FLOOR(x) | 返回小于或等于x的最大整数 | SELECT FLOOR(1.5) - 返回1 |
| RAND() | 返回0->1的随机数 | SELECT RAND() --0.6264973735683573 |
| RAND(x) | 返回0->1的随机数,x值相同时返回的随机数相同 | SELECT RAND(2) - 1.5865798029924 |
| SIGN(x) | 返回x的符号,x是负数、0、正数分别返回-1、0和1 | SELECT SIGN(-10) - (-1) |
| PI() | 返回圆周率(3.141593) | SELECT PI()- 3.141593 |
| TRUNCATE(x,y) | 返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入) | SELECT TRUNCATE(1.23456,3) - 1.234 |
| ROUND(x) | 返回离x最近的整数 | SELECT ROUND(1.23456) - 1 |
| ROUND(x,y) | 保留x小数点后y位的值,但截断时要进行四舍五入 | SELECT ROUND(1.23456,3) - 1.235 |
| POW(x,y).POWER(x,y) | 返回x的y次方 | SELECT POW(2,3) - 8 |
| SQRT(x) | 返回x的平方根 | SELECT SQRT(25) - 5 |
| EXP(x) | 返回e的x次方 | SELECT EXP(3) - 20.085536923188 |
| MOD(x,y) | 返回x除以y以后的余数 | SELECT MOD(5,2) - 1 |
| LOG(x) | 返回自然对数(以e为底的对数) | SELECT LOG(20.085536923188) - 3 |
| LOG10(x) | 返回以10为底的对数 | SELECT LOG10(100) - 2 |
| RADIANS(x) | 将角度转换为弧度 | SELECT RADIANS(180) - 3.1415926535898 |
| DEGREES(x) | 将弧度转换为角度 | SELECT DEGREES(3.1415926535898) - 180 |
| SIN(x) | 求正弦值(参数是弧度) | SELECT SIN(RADIANS(30)) - 0.5 |
| ASIN(x) | 求反正弦值(参数是弧度) | |
| COS(x) | 求余弦值(参数是弧度) | SELECT COS(RADIANS(30)) --0.5 |
| ACOS(x) | 求反余弦值(参数是弧度) | |
| TAN(x) | 求正切值(参数是弧度) | SELECT TAN(RADIANS(45)) --1 |
| ATAN(x) ATAN2(x) | 求反正切值(参数是弧度) | |
| COT(x) | 求余切值(参数是弧度) |
-- 数学运算SELECT ABS(-8) as 绝对值 -- 绝对值SELECT CEILING(9.4) -- 向上取整SELECT FLOOR(9.4) -- 向下取整SELECT RAND() -- 返回一个 0-1 之间的随机数SELECT SIGN(-10) -- 返回一个数的符号 0 返回 0 负数返回-1 正数返回 1
相关免费学习推荐:mysql视频教程
| 函数 | 作用 | 例子 |
|---|---|---|
| CHAR_LENGTH(s) | 返回字符串s的字符数 | SELECT CHAR_LENGTH('你好123') - 5 |
| LENGTH(s) | 返回字符串s的长度 | SELECT LENGTH('你好123') - 9 |
| CONCAT(s1,s2,…) | 将字符串s1,s2等多个字符串合并为一个字符串 | SELECT CONCAT('12','34') - 1234 |
| INSERT(s1,x,len,s2) | 将字符串s2替换s1的x位置开始长度为len的字符串 | SELECT INSERT('12345',1,3,'abc') - abc45 |
| UPPER(s),UCAASE(S) | 将字符串s的所有字母变成大写字母 | SELECT UPPER('abc') - ABC |
| LOWER(s),LCASE(s) | 将字符串s的所有字母变成小写字母 | SELECT LOWER('ABC') - abc |
| LEFT(s,n) | 返回字符串s的前n个字符 | SELECT LEFT('abcde',2) - ab |
| RIGHT(s,n) | 返回字符串s的后n个字符 | SELECT RIGHT('abcde',2) - de |
| LPAD(s1,len,s2) | 字符串s2来填充s1的开始处,使字符串长度达到len | SELECT LPAD('abc',5,'xx') - xxabc |
| RPAD(s1,len,s2) | 字符串s2来填充s1的结尾处,使字符串的长度达到len | SELECT RPAD('abc',5,'xx') - abcxx |
| LTRIM(s) | 去掉字符串s开始处的空格 | |
| RTRIM(s) | 去掉字符串s结尾处的空格 | |
| TRIM(s) | 去掉字符串s开始和结尾处的空格 | |
| TRIM(s1 FROM s) | 去掉字符串s中开始处和结尾处的字符串s1 | SELECT TRIM('@' FROM '@@abc@@') - abc |
| REPEAT(s,n) | 将字符串s重复n次 | SELECT REPEAT('ab',3) - ababab |
| SPACE(n) | 返回n个空格 | |
| REPLACE(s,s1,s2) | 将字符串s2替代字符串s中的字符串s1 | SELECT REPLACE('abc','a','x') --xbc |
| STRCMP(s1,s2) | 比较字符串s1和s2 | |
| SUBSTRING(s,n,len) | 获取从字符串s中的第n个位置开始长度为len的字符串 | |
| MID(s,n,len) | 同SUBSTRING(s,n,len) | |
| LOCATE(s1,s),POSITION(s1 IN s) | 从字符串s中获取s1的开始位置 | SELECT LOCATE('b', 'abc') - 2 |
| INSTR(s,s1) | 从字符串s中获取s1的开始位置 | SELECT INSTR('abc','b') - 2 |
| REVERSE(s) | 将字符串s的顺序反过来 | SELECT REVERSE('abc') - cba |
| ELT(n,s1,s2,…) | 返回第n个字符串 | SELECT ELT(2,'a','b','c') - b |
| FIELD(s,s1,s2…) | 返回第一个与字符串s匹配的字符串位置 | SELECT FIELD('c','a','b','c') - 3 |
| FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 |
-- 字符串函数SELECT CHAR_LENGTH('我们的征途是星辰和大海') -- 字符串的长度SELECT CONCAT('我','爱','猫猫') -- 拼接字符串SELECT INSERT('我爱编程helloworld',1,2,'超级热爱') -- 查询,从某个位置开始替换某个长度SELECT LOWER('MaoMao') -- 小写字母SELECT UPPER('maomao') -- 全变大写SELECT INSTR('maonmao','n') -- 返回第一次出现的子串的索引SELECT REPLACE('猫猫说坚持就能成功','坚持','努力') -- 替换出现的指定字符串SELECT SUBSTR('猫猫说坚持就能成功',4,3) -- 返回指定的子字符串 (源字符串,截取的位置,截取的长度)SELECT REVERSE('猫猫说坚持就能成功') -- 反转-- 查询有田的同学,将田改成猪SELECT REPLACE(studentname,'田','猪') FROM studentWHERE studentname LIKE '%田'| 函数 | 作用 | 例子 |
|---|---|---|
| CURDATE();CURRENT_DATE() | 返回当前日期 | SELECT CURDATE()-> 2021-01-09 |
| NOW() | 返回当前日期和时间 | SELECT NOW()-> 2021-01-09 10:03:14 |
| LOCALTIME() | 返回当前日期和时间 | SELECT LOCALTIME()-> 2021-01-09 10:03:14 |
| UNIX_TIMESTAMP() | 以UNIX时间戳的形式返回当前时间 | SELECT UNIX_TIMESTAMP()->1617977084 |
-- 时间和日期函数(记住)SELECT CURRENT_DATE() -- 获取当前日期SELECT CURDATE() -- 获取当前日期SELECT NOW() -- 获取当前的时间SELECT LOCALTIME() -- 本地时间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(studentname) FROM student; -- COUNT(指定列),会忽略所有的null值SELECT COUNT(borndate) FROM student; -- 结果 8 少一个 因为是null SELECT COUNT(*) FROM student; -- Count(*) 不会忽略所有的null值 本质 计算行数SELECT COUNT(1) FROM result; -- Count(1) 不会忽略所有的null值 本质 计算行数SELECT SUM(studentresult) AS 总和 FROM resultSELECT AVG(studentresult) AS 平均分 FROM resultSELECT MAX(studentresult) AS 最高分 FROM resultSELECT MIN(studentresult) AS 最低分 FROM result-- 查询不同课程的平均分,最高分,最低分-- 核心:根据不同的课程分组SELECT any_value(`subjectname`) AS 科目名,AVG(studentresult) AS 平均分,MAX(studentresult) AS 最高分,MIN(studentresult) AS 最低分FROM result rINNER JOIN `subject` subON r.`subjectno` = sub.`subjectno`GROUP BY r.subjectno -- 通过什么字段来分组-- 查询不同课程的平均分,最高分,最低分,平均分大于80SELECT any_value(`subjectname`) AS 科目名,AVG(studentresult) AS 平均分,MAX(studentresult) AS 最高分,MIN(studentresult) AS 最低分FROM result rINNER JOIN `subject` subON r.`subjectno` = sub.`subjectno`GROUP BY r.subjectno -- 通过什么字段来分组HAVING 平均分>50
数据库级别的MD5加密
什么是MD5
主要增强算法复杂度和不可逆性
MD5 不可逆,具体值的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,'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,'xiaoming',MD5('123456'))-- 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密后的值SELECT * FROM testmd5 WHERE `name`='xiaoming' AND pwd=MD5('123456')以上是"MySQL函数有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
字符
字符串
函数
加密
弧度
长度
位置
参数
平均分
时间
日期
最低
最高
字母
最高分
查询
空格
结尾处
随机数
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
samba 文件服务器
网络安全期末考试报告
初学软件开发注意事项
铜川网络技术推荐厂家
网络安全教育与思政教育
中秋日记软件开发
上海金崟网络技术
服务器机房运维面试
湖北正规软件开发市场
广东浪潮服务器维修哪家便宜
有关web服务器
网络安全和个人信息保护自查报告
oracle数据库归档方式
郴州学计算机软件开发培训哪里好
农业银行服务器招标多少台
文科软件开发吃力吗
方舟生存进化为什么加不进服务器
数据库中删除表名的语句
官方认证的网络安全培训机构
天堂w服务器怎么区分
二维码数据库怎么采集信息
温州第三方网络技术费用是多少
哈电业务平台软件开发
gpu云服务器有什么用
学生管理系统的软件开发
密码行业和网络安全行业
如何树立网络安全意识作文
上虞软件开发哪家好
增强网络安全意识朗诵
数据库的保护技术