mysql分析函数,mysql 函数语法,mysql函数全面总结

mysql分析函数,mysql 函数语法,mysql函数全面总结

本文主要介绍mysql函数。下面这篇文章从MySQL中常用的函数和数值函数入手,用例子来展开内容。有需要的朋友可以参考一下。

目录

1、MySQL中常用的字符串函数2、数值函数3、日期时间函数4、进程函数5等常用函数

1、MySQL中常用字符串函数

功能

功能

坎卡特(S1,S2,…南)

连接S1,S2,…Sn是一个字符串。

插入(字符串,x,y,指令)

字符串str从x位置开始,y字符的子串被字符串instr替换。

下(str)

将字符串str中的所有字符变为小写。

上部(str)

将字符串str中的所有字符大写

左(str,x)

返回str最左边的x个字符。

右(字符串,x)

返回str最右边的x个字符。

LPAD(新西兰,PAD)

用字符串填充符填充str最左边的部分,直到长度为n个字符。

RPAD(新西兰,PAD)

用字符串填充符填充str的最右边部分,直到长度为n个字符。

LTRIM(str)

删除str左边的空格。

RTRIM(str)

删除str行末尾的空格。

重复(str,x)

返回str重复x次的结果。

替换(字符串,a,b)

用字符串b替换字符串str中所有出现的字符串A

STRCMP(s1,s2)

比较字符串s1和s2。

修剪(str)

删除字符串末尾和开头的空格。

子字符串(字符串,x,y)

从str x的位置返回长度为Y个字符的字符串。

1:CANCAT(S1,S2,…Sn)函数,把传入的参数连接成为一个字符串。

注意:

和null拼接直接返回NULL。

mysql select concat(aaa , bbb , d ),concat(dd ,null);

- -

| concat(aaa , bbb , d) | concat(dd ,null) |

- -

| aaabbbd | NULL |

- -

集合中的1行(0.00秒)

2:INSERT(str ,x,y,instr)函数:将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr。

从第三个字符和最后三个字符开始,将字符串“123456”替换为“me”。

mysql select insert(123456 ,3,3, me );

-

|插入( 123456 ,3,3,我)|

-

| 12me6 |

-

集合中的1行(0.02秒)

3:LOWER(str)和 UPPER(str)函数:把字符串转换成小写或大写。

mysql select lower(张),upper(张);

- -

|下(张)|上(张)|

- -

张|张|张

- -

集合中的1行(0.00秒)

4:LEFT(str,x)和 RIGHT(str,x)函数:分别返回字符串最左边的 x 个字符和最右边的 x 个字符。注意:如果第二个参数是 NULL,那么将不返回任何字符串。

mysql select left(zhang ,2),left(zhang ,null),right(zhang ,2),left(zhang ,10);

- - - -

| left(zhang ,2) | left(zhang ,null) | right(zhang ,2) | left(zhang ,10) |

- - - -

| zh | NULL | ng |张|

- - - -

集合中的一行(0.00秒)

5:LPAD(str,n ,pad)和 RPAD(str,n ,pad)函数:用字符串 pad 对 str 最左边和最右边进行填充,直到长度为 n 个字符长度。

mysql选择lpad(bin ,8,张),rpad(张,8, bin ),rpad(北京,20, 2008 );

- - -

| lpad(宾,8,张)| rpad(张,8,宾)| rpad(北京,20, 2008) |

- - -

|张斌|张斌|北京2008200820082 |

- - -

集合中的一行(0.00秒)

6:LTRIM(str)和 RTRIM(str)函数:去掉字符串 str 左侧和右侧空格。

mysql select zhang ,ltrim( zhang ),rtrim( Zhang );

- - -

|张| ltrim(张)| rtrim(张)|

- - -

张|张|张|张

- - -

集合中的一行(0.00秒)

7:REPEAT(str,x)函数:返回 str 重复 x 次的结果。

mysql select repeat(mysql ,5);

-

|重复( mysql ,5) |

-

| mysqlmysqlmysqlmysqlmysql |

-

集合中的一行(0.00秒)

8:REPLACE(str,a,b)函数:用字符串 b 替换字符串 str 中所有出现的字符串 a。

mysql选择替换( mysql , sql , DDD );

-

| replace(mysql , sql , ddd) |

-

| myddd |

-

集合中的一行(0.00秒)

9:STRCMP(s1,s2)函数:比较字符串 s1 和 s2 的 ASCII 码值的大小。如果 s1 比 s2 小,那么返回-1;如果 s1 与 s2 相等,那么返回 0;如果 s1 比 s2 大,那么返回 1。

mysql select strcmp(a , b ),strcmp(b , b ),strcmp(c , b ),strcmp(a , A );

- - - -

| strcmp(a , b) | strcmp(b , b) | strcmp(c , b) | strcmp(a , A) |

- - - -

| -1 | 0 | 1 | 0 |

- - - -

集合中的一行(0.01秒)

10:TRIM(str)函数:去掉目标字符串的开头和结尾的空格。

MySQL select trim( 111 $ MySQL $ );

-

| trim( 111 $ mysql $ ) |

-

| 111 $ mysql $ |

-

集合中的一行(0.01秒)

11:SUBSTRING(str,x,y)函数:返回从字符串潜艇用热中子反应堆(海底热反应堆的缩写)中的第x位置起y个字符长度的字串。

mysql选择子串( mysqlisdd ,4,4);

-

| substring(mysqlisdd ,4,4) |

-

| qlis |

-

集合中的一行(0.00秒)

2、数值函数

函数

功能

ABS(x)

返回x的绝对值

上限(十)

返回大于x的最大整数值

楼层(十)

返回小于x的最大整数值

MOD(x,y)

返回x/y的模

兰德()

返回0 到一内的随机值

圆形(x,y)

返回参数x的四舍五入的有y位小数的值

TRUNCATE(x,y)

返回数字x截断为y位小数的结果

1: ABS(x)函数:返回 x 的绝对值。

mysql select abs(-0.3),ABS(0.3);

- -

绝对值(-0.3) |绝对值(0.3) |

- -

| 0.3 | 0.3 |

- -

集合中的一行(0.36秒)

2:CEIL(x)函数,返回大于x的最大整数

mysql select ceil(-0.2),ceil(0.2);

- -

| ceil(-0.2) | ceil(0.2) |

- -

| 0 | 1 |

- -

集合中的一行(0.00秒)

3:FLOOR(x)函数,返回小于x的最大整数,和CEIL刚好相反

关系型数据库选择楼层(-0.2),楼层(0.2);

- -

|地板(-0.2) |地板(0.2) |

- -

| -1 | 0 |

- -

集合中的一行(0.00秒)

4:MOD(x,y)函数:返回 x/y 的模。和 x%y 的结果相同,模数和被模数任何一个为 NULL 结果都为 NULL。如下例所示:

mysql select mod(15,10),mod(1,11),mod(null,10);

- - -

| mod(15,10) | mod(1,11) | mod(null,10) |

- - -

| 5 | 1 | NULL |

- - -

集合中的一行(0.00秒)

5:兰特()函数,返回0到一之间的随机数

mysql select rand(),rand();

- -

| rand() | rand() |

- -

| 0.541937319135235 | 0.10546984067696132 |

- -

集合中的一行(0.00秒)

6:ROUND(x,y)函数,返回参数 x 的四舍五入的有 y 位小数的值。如果是整数,将会保留 y 位数量的 0;如果不写 y,则默认 y 为 0,即将 x 四舍五入后取整。

mysql select round(1.2,2),round(1.3),round(1,2);

- - -

| round(1.2,2) | round(1.3) | round(1,2) |

- - -

| 1.20 | 1 | 1 |

- - -

集合中的一行(0.00秒)

7:TRUNCATE(x,y)函数:返回数字 x 截断为 y 位小数的结果。(注意 TRUNCATE 和 ROUND 的区别在于 TRUNCATE 仅仅是截断,而不进行四舍五入。)

mysql select round(1.235,2),truncate(1.235,2);

- -

| round(1.235,2) | truncate(1.235,2) |

- -

| 1.24 | 1.23 |

- -

集合中的一行(0.31秒)

3、日期和时间函数

MySQL 中的常用日期时间函数:

函数

功能

凝固化

返回当前日期

柯蒂梅()

返回当前时间

现在()

返回当前的日期和时间

一种多用户的计算机操作系统时间戳(日期)

返回日期日期的一种多用户的计算机操作系统时间戳

FROM_UNIXTIME

返回一种多用户的计算机操作系统时间戳的日期值

周(日期)

返回日期日期为一年中的第几周

年份(日期)

返回日期日期的年份

小时(时间)

返回时间的小时值

分钟(时间)

返回时间的分钟值

月份名称(日期)

返回日期的月份名

日期格式(日期,fmt)

返回按字符串fmt格式化日期日期值

日期_添加(日期,时间间隔表达式类型)

返回一个日期或时间值加上一个时间间隔的时间值

DATEDIFF(表达式,表达式2)

返回起始时间expr和结束时间expr2之间的天数

1:CURDATE()函数:返回当前日期,只包含年月日

MySQL select curdate();

-

| curdate() |

-

| 2021-05-25 |

-

集合中的一行(0.00秒)

2:CURTIME()函数:返回当前时间,只包含时分秒

MySQL select curtime();

-

| curtime() |

-

| 14:07:06 |

-

集合中的一行(0.00秒)

3:NOW()函数:返回当前的日期和时间,年月日时分秒全都包含。

MySQL select now();

-

|现在()|

-

| 2021-05-25 14:07:33 |

-

集合中的一行(0.00秒)

4:UNIX_TIMESTAMP(date)函数:返回日期 date 的 UNIX 时间戳。

MySQL select UNIX _ timestamp(now());

-

unix系统时间戳(现在())|

-

| 1621922906 |

-

集合中的一行(0.30秒)

5:FROM_UNIXTIME ( unixtime ) 函 数 : 返 回 UNIXTIME 时 间 戳 的 日 期 值 , 和UNIX_TIMESTAMP(date)互为逆操作。

MySQL select from _ UNIX time(1621922906);

-

| from_unixtime(1621922906) |

-

| 2021-05-25 14:08:26 |

-

集合中的一行(0.31秒)

6:WEEK(DATE)和 YEAR(DATE)函数:前者返回所给的日期是一年中的第几周,后者返回所给的日期是哪一年。

关系型数据库选择周(现在()),年(现在());

- -

|周(现在())|年(现在())|

- -

| 21 | 2021 |

- -

集合中的1行(0.00秒)

7:HOUR(time)和 MINUTE(time)函数:前者返回所给时间的小时,后者返回所给时间的分钟。

mysql选择小时(now()),分钟(now());

- -

|小时(现在())|分钟(现在())|

- -

| 14 | 11 |

- -

集合中的1行(0.00秒)

8:MONTHNAME(date)函数:返回 date 的英文月份名称。

MySQL select month name(now());

-

| monthname(now()) |

-

五月

-

集合中的1行(0.30秒)

9:DATE_FORMAT(date,fmt)函数:按字符串 fmt 格式化日期 date 值,此函数能够按指定的格式显示日期,可用到的格式符如表:

布局/格式字符

正式描述/规格

%S,%s

两位数形式的秒(00,01,59)

%i

两位数形式的点(00,01,59)

%H

两位数小时,24小时(00,01,23)

%h,%I

两位数形式的小时,12小时(01,02,12)

%k

数字形式的小时,24小时(0,1,23)

%l

数字形式的小时,12小时(1,2,12)

%T

24小时制时间格式(hh:mm:ss)

%r

12小时制的时间格式(hh:mm:ssAM或hh:mm:ssPM)

%p

上午或下午

%W

一周中每一天的名称(星期日,星期一,周六)

%a

一周中每一天的名称缩写(星期日,星期一,Sat)

%d

两位数字表示一个月中的天数(00,01,31).

%e

数字形式表示一个月中的天数(1,2, 31)

%D

英语后缀表示一个月中的天数(1、2、3、)

%w

一周中的天数(0=星期日,1=星期一,6=星期六)

%j

用3位数表示一年中的天数(001,002,366)

%U

Week (0,1,52),其中星期日是一周的第一天。

%u

Week (0,1,52),其中星期一是一周的第一天。

%M

月份名称(一月,二月,12月)

%b

缩写月份名称(一月,二月,12月)

%m

两位数的月份(01,02,12)

%c

数字(1,2,12)

%Y

四位数年份

%y

两位数的年份

%%

直接值" % "

mysql select date_format(now(), %M,%D,% Y );

-

| date_format(now(), %M,%D,%Y) |

-

| 2021年5月25日|

-

集合中的1行(0.00秒)

10:

date _ add (date,INTERVAL expr type)函数:返回与给定日期相差间隔期的日期。

其中INTERVAL是区间类型的关键字,expr是表达式,对应以下类型,type是区间类型。MySQL提供了13种区间类型。

如下表:

MySQL 中的日期间隔类型:

表达式类型

形容

格式

小时

小时

倍硬

分钟

分钟

毫米

第二

第二

悬浮物

YY

月球

abbr. 毫米(millimeter)

太阳

直接伤害

年_月

年份和月份

YY-嗯

日时

日期和时间

DD hh

日分钟

日和分钟

DD hh:mm

天_秒

日和秒

DD hh:mm:ss

小时分钟

小时和分

hh:嗯

小时_秒

小时和秒

hh:ss

分钟秒

分钟和秒

mm:ss

例:

第一列返回了当前日期时间,第2列返回距离当前日期31 天后的日期时间,第3列返回距离当前日期一年两个月后的日期时间。

mysql select now() current,date_add(now(),间隔31天)31天后,date_add(now(),间隔1 _ 2 年_月)在_一年_两个月之后;

- - -

|当前| 31天后|一年两个月后|

- - -

| 2021-05-25 14:32:30 | 2021-06-25 14:32:30 | 2022-07-25 14:32:30 |

- - -

集合中的一行(0.03秒)

同样也可以用负数让它返回之前的某个日期时间,如下第一列返回了当前日期时间,第2列返回距离当前日期31 天前的日期时间,第3列返回距离当前日期一年两个月前的日期时间。

mysql select now() current,date_add(now(),间隔-31天)bef31days,date_add(now(),间隔-1 _-2 year _ month)bef _ one year _ two month;

- - -

|当前|之前31天|之前_一年_两个月|

- - -

| 2021-05-25 14:34:38 | 2021-04-24 14:34:38 | 2020-03-25 14:34:38 |

- - -

集合中的一行(0.00秒)

11:DATEDIFF(日期1,日期2)函数:用来计算两个日期之间相差的天数

MySQL select datediff( 2013-09-01 ,now());

-

| datediff(2013-09-01 ,now()) |

-

| -2823 |

-

集合中的一行(0.30秒)

4、流程函数

MySQL中的流程函数:

函数

功能

如果(值,t f)

如果价值是真,返回t;否则返回f

IFNULL(值1,值2)

如果价值一不为空返回值1,否则返回价值2

[值1]时的情况

然后[结果1]…否则[默认]结束

如果价值一是真,返回结果1,否则返回系统默认值

CASE [expr] WHEN [value1]

然后[结果1]…否则[默认]结束

如果expr等于值1,返回结果1,否则返回系统默认值

1:IF(value,t f),例子:创建并初始化一个职员薪水表,插入一些测试数据,我们认为月薪在 2000 元以上的职员属于高薪,用“high”表示;而2000 元以下的职员属于低薪,用“low”表示

关系型数据库创建表salary(userid int,salary decimal(9,2))。

查询正常,0行受影响(0.47秒)

关系型数据库插入工资值(11000)、(22000)、(33000)、(44000)、(55000)、(1,空);

查询正常,6行受影响(0.00秒)

记录:6个副本:0个警告:0个

mysql select * from薪金

- -

|用户标识|工资|

- -

| 1 | 1000.00 |

| 2 | 2000.00 |

| 3 | 3000.00 |

| 4 | 4000.00 |

| 5 | 5000.00 |

| 1 | NULL |

- -

一组6行(0.00秒)

mysql选择if(年薪2000,’高,低)来自工资

-

| if(工资2000,’高,低)|

-

低|

低|

高|

高|

高|

低|

-

一组6行(0.31秒)

2:IFNULL(value1,value2)函数,一般用来替换 NULL 值的,我们知道 NULL 值是不能参与数值运算的,下面这个语句就是把 NULL 值用 0 来替换

关系型数据库从薪金中选择ifnull(薪金,0);

-

干扰素

ull(salary,0) |+------------------+| 1000.00 || 2000.00 || 3000.00 || 4000.00 || 5000.00 || 0.00 |+------------------+6 rows in set (0.00 sec)

3:CASE WHEN [value1] THEN[result1]…ELSE[default]END 函 数 : 我 们 也 可 以 用 case when…then 函数实现上面例子中高薪低薪的问题

mysql> select case when salary<=2000 then low else high end from salary;+---------------------------------------------------+| case when salary<=2000 then low else high end |+---------------------------------------------------+| low || low || high || high || high || high |+---------------------------------------------------+6 rows in set (0.29 sec)

4:CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END 函数:这里还可以分多种情况把职员的薪水分多个档次,比如下面的例子分成高、中、低 3 种情况。

mysql> select case salary when 1000 then low when 2000 then mid else high end from salary;+-----------------------------------------------------------------------+| case salary when 1000 then low when 2000 then mid else high end |+-----------------------------------------------------------------------+| low || mid || high || high || high || high |+-----------------------------------------------------------------------+6 rows in set (0.00 sec)5、其他常用函数

MySQL 中的其他常用函数:

函数? 功能 DATABASE()? 返回当前数据库名 VERSION() 返回当前数据库版本 USER() 返回当前登录用户名 INET_ATON(IP)? 返回 IP 地址的数字表示 INET_NTOA(num) 返回数字代表的 IP 地址 PASSWORD(str) 返回字符串 str 的加密版本 MD5()? 返回字符串 str 的 MD5 值

1:DATABASE()函数:返回当前数据库名。

mysql> select database();+------------+| database() |+------------+| test |+------------+1 row in set (0.00 sec)

2:VERSION()函数:返回当前数据库版本。

mysql> select version();+-----------+| version() |+-----------+| 5.7.26 |+-----------+1 row in set (0.00 sec)

3:USER()函数:返回当前登录用户名。

mysql> select user();+----------------+| user() |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec)

4:INET_ATON(IP)函数:返回 IP 地址的网络字节序表示。

mysql> select inet_aton(192.168.1.1);+--------------------------+| inet_aton(192.168.1.1) |+--------------------------+| 3232235777 |+--------------------------+1 row in set (0.30 sec)

5:INET_NTOA(num)函数:返回网络字节序代表的 IP 地址。

mysql> select inet_ntoa(3232235777);+-------------------------+| inet_ntoa(3232235777) |+-------------------------+| 192.168.1.1 |+-------------------------+1 row in set (0.00 sec)

6:PASSWORD(str)函数:返回字符串 str 的加密版本,一个 41 位长的字符串。

mysql> select password(1223456);+-------------------------------------------+| password(1223456) |+-------------------------------------------+| *3B5C2394E86BB91F1D03C5A1F2D3962BB287590B |+-------------------------------------------+1 row in set, 1 warning (0.33 sec)

7:MD5(str)函数:返回字符串 str 的 MD5 值,常用来对应用中的数据进行加密。

mysql> select md5(123456);+----------------------------------+| md5(123456) |+----------------------------------+| e10adc3949ba59abbe56e057f20f883e |+----------------------------------+1 row in set (0.30 sec)

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

mysql分析函数,mysql 函数语法,mysql函数全面总结