浅谈MySQL函数

目录
  • 1、数学函数
  • 2、字符串函数
  • 3、日期函数
  • 4、加密函数

 主要MySQL函数介绍又以下:

  • 数学函数
  • 字符串函数
  • 时间函数
  • 加密函数

1、数学函数

注意: 每个函数前面都需要加 : SELECT

数学函数

  • ABS() 返回绝对值 如: (-100) 值 : 100
  • PI() 返回Π的圆规率 如 (不用写) 值 : 3.1415926
  • CEIL() 向上取整数 如:(3.14) 值 :4 ( 注意第三个是i )
  • FLOOR() 向下取整数 如: (3.14) 值 :3
  • POW(x,y) x的y次方 如(2,3) 值 :8
  • RAND() 随机返回0-1值 如 :() 值 : 0.018137501569592863
  • TRUNCATE(x,y) x保留y位小数 如 :(3.1415926,3) 值 :3.141
-- abs() 绝对值
SELECT ABS (-100);

-- pi() 返回圆 Π 规率
SELECT PI();

--  SQRT ()返回非负数x的二次方
SELECT SQRT(2);

--  POW 返回 x的 y 次乘方 需要
SELECT POW(2,10);
SELECT POWER(2,10)

-- CELL() or
SELECT CEIL(3.14);  -- 向上取整数

-- floor()
SELECT FLOOR(3.14); -- 向下取整数

-- round() 四舍五入取整数 还可以保留小数
SELECT ROUND(3.4);
SELECT ROUND(3.5);
SELECT ROUND(3.7,2)

-- pow() x 的 y 次方
SELECT POW(2,3);

-- random 随机0到1
SELECT RAND();

-- truncate() 保留小数 选择
SELECT TRUNCATE(3.14159265758,3);
SELECT TRUNCATE(RAND()* 1000 ,3);

2、字符串函数

字符串函数

  • LENGTH() 获取长度 如:('abc') 值为: 3
  • CHAR_LENGTH 长度 如:('add') 值为: 3
  • UPPER() 字符串里英文全大写 ('abcde') 值:ABCDE
  • LOWER() 字符串里英文全小写 ()
  • TRIM() 去空格
  • REVERES() 反转
  • REPLACE(str,len1,len2) len1代替len2
  •  SUBSTRLNG(y,z) 截取y 到 z
-- 字符串函数  -- RIGHT

SELECT LENGTH('fdsajfadslksdafk');

SELECT CHAR_LENGTH('fdsajfadslksdafk');

-- lower upper  --全部变成大写、小写
SELECT UPPER('fdsajfadslksdafk');
SELECT LOWER('AFASDF');

-- trim()  去两端空格
SELECT TRIM( ' abc ' )
SELECT TRIM('    afdjkadsfjkll  asd;fasf     ');

-- reverse() 反转
SELECT REVERSE('abcdefg');
SELECT REVERSE(TRIM('    afdjkadsfjkll  asd;fasf     '));、

-- replace(str,len1,len2) len1 代替 len2
SELECT REPLACE('QQ群个个都是人才,说话又好听' , '人才', '鬼才');

SELECT REPLACE('路演其是班草', '阿呆呆', '曹某某');

--  截取 y 截取 z
SELECT SUBSTRING('监x里个个都是人才,说话又好听',4,5);

3、日期函数

日期函数

  • SYSDATE() 系统日期+时间
  • CURDATE() 系统日期
  • CURETIME() 系统时间
  • WEEKDAY() 返回日期参数 注意时间:0-6需要+1
  • DAYNAME() 系统告诉你 今天星期几
  • YEAR() 查年
  • MONTH() 查月
  • DAY()查日
  • HOUR()查时
  • MINUTE() 查分
  • SECOUND() 查秒
  • WEEK() 查周

ADDDATE(date,interval,值) 添加到后面得日期 如 : (NOW(),INTERVAL,50 YEAR)

​ DATEDIFF(date,date) 连个值得相隔 如 : ABS(DATEDIFF('2005-8-26','2021-9-23'))

-- 日期函数

-- 系统当前日期 sysdate()
SELECT SYSDATE() 系统当前日期; -- 要 时分秒
-- (日期和时间)
SELECT CURDATE() 系统当前日期; -- 当前的日期
-- (日期)
SELECT CURTIME() 系统当前时间 ;
-- (时间)

--  dayofweek() 今天时本周week -月month - 年year
SELECT DAYOFYEAR(SYSDATE()) 今天是这一年的第几天;
SELECT DAYOFMONTH(SYSDATE()) 今天是这一月的第几天;
SELECT DAYOFWEEK('2021-9-19')  今天是这一周的第几天; -- 1-7

-- weekday
SELECT WEEKDAY(SYSDATE()) + 1 今天是星期几; -- 0-6

-- dayname 星期几
SELECT DAYNAME('2001-9-18') 

-- 年月日时分秒 year month day hour minute second
SELECT YEAR(SYSDATE()) 年;
SELECT MONTH(SYSDATE()) 月;
SELECT DAY(SYSDATE()) 日;

SELECT HOUR(SYSDATE()) 时;
SELECT MINUTE(SYSDATE()) 分;
SELECT SECOND(SYSDATE()) 秒;
-- 周
SELECT WEEK(SYSDATE()) 周; 

-- adddate(date,interval expr type)  添加时间后的日期
-- 假设你还有50年寿命,50年后这个时间是多少
SELECT ADDDATE(NOW(),INTERVAL 50 YEAR);
SELECT ADDDATE(NOW(), INTERVAL 50 SECOND);

-- datediff(date1, date2) 两个时间的间隔
SELECT ABS(DATEDIFF('2005-8-26','2021-9-23')); -- 1984 - 3 - 24

-- 假设路演其出生时间2005年7月15 请问他到选择活了多少分钟
-- 假设他还有80年的寿命 80年后是多久

SELECT  ABS(DATEDIFF('2005-7-15',SYSDATE()) ) * 1444  ;

SELECT  ADDDATE(NOW(), INTERVAL 80 YEAR);

4、加密函数

  • PASSWORD(str) 加密后不可以逆转
  • MD5(str) 加密后可以逆转 注:以前不许
  • CHARSET() 查看mysel 版本
-- 加密函数

SELECT PASSWORD('123456') 加密后不可以逆转;
SELECT PASSWORD('666666') 加密后不可以逆转;

-- MD5
SELECT PASSWORD('123456') 加密后不可以逆转 MD5('123456') 加密后可以逆转

-- 版本查看
SELECT VERSION();
SELECT CHARSET('123456');

-- md5 加密
-- 雪花推特算法

到此这篇关于浅谈MySQL函数的文章就介绍到这了,更多相关MySQL函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL空间数据存储及函数

    目录 一.数据类型 1.什么是MySQL空间数据 2.什么是geojson 3.格式化空间数据类型(geometry相互转换geojson) 二.空间分析 1.根据点位及半径,生成缓冲区 三.判断点位所在城市 四.常用的空间函数 前言: 不久前开发了一个地图相关的后端项目,需要提供一些点线面相关的存储.查询.分析相关的操作,于是对MySQL空间函数进行充分调研并应用在项目中;MySQL为空间数据存储及处理提供了专用的类型geometry(支持所有的空间结构),还有有细分类型Point, Line

  • MySQL中日期型单行函数代码详解

    MySQL中日期型单行函数: CURDATE()或CURRENT_DATE() 返回当前日期(精确到日) 参考代码如下: SELECT CURDATE() FROM DUAL; SELECT CURRENT_DATE() FROM DUAL; -----------------------------------(分割线)------------------------------------ CURTIME() 或CURRENT_TIME() 返回当前时间(精确到秒) 参考代码如下: SELE

  • MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔

    MySQL DATE_ADD(date,INTERVAL expr type) 和 ADDDATE(date,INTERVAL expr type) 两个函数的作用相同,都是用于执行日期的加运算. DATE_ADD() 和 ADDDATE() 函数有两个参数: date 是 DATE 或 DATETIME 的起始值. INTERVAL expr type是要添加到起始日期值的间隔值. [实例 1]使用 DATE_ADD(date,INTERVAL expr type) 函数执行日期的加运算.输入

  • 详解Mysql函数调用优化

    函数调用优化 MySQL函数在内部被标记为确定性或不确定性.如果给定参数固定值的函数可以为不同的调用返回不同的结果,则它是不确定的.不确定函数的示例: RAND(), UUID(). 如果某个函数被标记为不确定的,则将WHERE针对每一行(从一个表中选择时)或行的组合(从多表联接中选择时)评估子句中对该函数的引用. MySQL还根据参数的类型(参数是表列还是常量值)确定何时评估函数.每当表列更改值时,都必须评估将表列作为参数的确定性函数. 非确定性函数可能会影响查询性能.例如,某些优化可能不可用

  • MySQL处理JSON常见函数的使用

    官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create JSON array JSON_ARRAY_APPEND() Append data to JSON document JSON_ARRAY_INSERT() Insert into JSON array -> Return value from JSON column after evaluati

  • MySQL中sum函数使用的实例教程

    文章简介 今天分享一下MySQL中的sum函数使用.该函数已经成为大家操作MySQL数据库中时常用到的一个函数,这个函数统计满足条件行中指定列的和,想必肯定大家都知道了,本身就没什么讲头了,这篇文章主要是通过几个小案例深入了解一下该函数,以及在做MySQL查询时如何使用sum函数做优化. 语法分析 SUM([DISTINCT] expr) [over_clause] Returns the sum of expr. If the return set has no rows, SUM() ret

  • Mysql基础之常见函数

    一.常见函数分类 1.1单行函数: 字符函数 字符控制函数(CONCAT.SUBSTR.LENGTH...) 大小写控制函数 数学函数 日期函数 流程控制函数 1.2分组函数: 分组函数功能偏向统计,比如,AVG().COUNT().MAX().MIN().SUM() 单行函数与分组函数: (1)分组函数:主要用来进行统计.聚合使用到的函数,分组函数接收多个输入,返回一个输出. (2)单行函数:上面提到的字符函数.数学函数.日期函数.都属单行函数的范畴,单行函数只对一行进行变换,每行返回一个结果

  • MySql关于null的函数使用分享

    MySql中关于null的函数 IFNULL ISNULL NULLIF IFNULL 用法:IFNULL(expr1,expr2) 说明:若expr1不是null则返回expr1,否则返回expr2 例子: sql 结果 SELECT IFNULL(null,'第一个参数是null') '第一个参数是null' SELECT IFNULL('第一个参数不是null','我是第二个参数') '第一个参数不是null' ISNULL 用法:ISNULL(expr) 说明:若expr是null则返回

  • 浅谈MySQL函数

    目录 1.数学函数 2.字符串函数 3.日期函数 4.加密函数  主要MySQL函数介绍又以下: 数学函数 字符串函数 时间函数 加密函数 1.数学函数 注意: 每个函数前面都需要加 : SELECT . 数学函数 ABS() 返回绝对值 如: (-100) 值 : 100 PI() 返回Π的圆规率 如 (不用写) 值 : 3.1415926 CEIL() 向上取整数 如:(3.14) 值 :4 ( 注意第三个是i ) FLOOR() 向下取整数 如: (3.14) 值 :3 POW(x,y)

  • 浅谈mysql可有类似oracle的nvl的函数

    要用ifnull,而不是isnull isnull是判断是否为null,返回值是1表示null或者0表示不为空 ifnull等同于oracle的nvl,用法如下 mysql> select ifnull(1,10); +--------------+ | ifnull(1,10) | +--------------+ |            1 | +--------------+ 1 row in set (0.00 sec) mysql> select ifnull(null,10);

  • 浅谈MySQL中group_concat()函数的排序方法

    group_concat()函数的参数是可以直接使用order by排序的.666.. 下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高到底排序. 可以这样写: SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; 效果如下: 以上这篇浅谈MySQL中group_concat()函数的排序方法就

  • 浅谈mysql中concat函数,mysql在字段前/后增加字符串

    MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ

  • 浅谈Mysql中类似于nvl()函数的ifnull()函数

    IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境. mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(0,10); -> 0 mysql> select IFNULL(1/0,10); -> 10 mysql> select IFNULL(1/0,'yes'); ->

  • 浅谈mysql的子查询联合与in的效率

    最近的产品测试发现一个问题,当并发数量小于10时,响应时间可以维持在100毫秒以内.但是当并发数到达30个时,响应时间就超过1秒.这太不能接受了,要求是通过1秒中并发100个. 经过检测发现,时间主要是耗在其中的一个存储过程中.把存储过程的语句一条一条的过一遍也没有发现明显的不合理.因为mysql本身不能提供毫秒级别的时间,google了一个mysql的能提供毫秒的时间函数,再做测试,做了一个定位.发现是其中一条语句,语句是这个样子: select .... from A, B where ..

  • 浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* to c

  • 浅谈mysql_query()函数的返回值问题

    问题描述: 我在操作mysql,插入数据时,关闭资源,PHP提示了一个warning.内容大致为,需要给mysql_free_result()一个资源类型. 然后,我将返回的结果var_dump($res),发现是bool值 分析: 看手册时,一眼看上去,觉得mysql_query()函数返回的本来就是资源类型,可是为什么现在又是bool值了呢?好吧,耐心看完手册,才发现,原理是这样的,如下图片: 总结:由上可以知道,mysql_query()执行sql语句时,并不是什么时候都要执行释放结果集,

  • 浅谈mysql导出表数据到excel关于datetime的格式问题

    最近用mysql导出表数据到excel文件,mysql中的datetime类型导出到excel(excel2016)中被excel识别成它自己默认的日期格式了,在mysql中的格式形如 yyyy-mm-dd hh:mm:ss,到了excel变成了 yyyy/m/d h:mm,看起来不太习惯,当然可以通过设置excel单元格格式改成自定义格式 yyyy-mm-dd hh:mm:ss,但是这样多了一个步骤,能不能直接从mysql导出到excel的就是mysql显示的样式呢?当然可以. 开始猜想是由于

  • 浅谈MySQL 统计行数的 count

    MySQL count() 函数我们并不陌生,用来统计每张表的行数.但如果你的表越来越大,且是 InnoDB 引擎的话,会发现计算的速度会越来越慢.在这篇文章里,会先介绍 count() 实现的原理及原因,然后是 count 不同用法的性能分析,最后给出需要频繁改变并需要统计表行数的解决方案. Count() 的实现 InnoDB 和 MyISAM 是 MySQL 常用的数据引擎,由于两者实现的不同,导致 count() 操作计算的效率也不同. 对于 MyISAM 来说,它把每个表的总行数都存在

随机推荐