mysql函数全面总结

目录
  • 1、MySQL中常用字符串函数
  • 2、数值函数
  • 3、日期和时间函数
  • 4、流程函数
  • 5、其他常用函数

1、MySQL中常用字符串函数

函数 功能

CANCAT(S1,S2,…Sn) 

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

INSERT(str,x,y,instr) 

将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr

LOWER(str) 

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

UPPER(str) 

将字符串 str 中所有字符变为大写 

LEFT(str ,x)

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

RIGHT(str,x) 

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

LPAD(str,n ,pad) 

用字符串 pad 对 str 最左边进行填充,直到长度为 n 个字符长度

RPAD(str,n,pad) 

用字符串 pad 对 str 最右边进行填充,直到长度为 n 个字符长度

LTRIM(str) 

去掉字符串 str 左侧的空格

RTRIM(str)

去掉字符串 str 行尾的空格

REPEAT(str,x) 

返回 str 重复 x 次的结果

REPLACE(str,a,b) 

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

STRCMP(s1,s2) 

比较字符串 s1 和 s2 

TRIM(str) 

去掉字符串行尾和行头的空格

SUBSTRING(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 row in set (0.00 sec)

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

将字符串“123456”中从第3个字符开始,后面的3个字符替换成“me”

mysql> select insert('123456',3,3,'me');
+---------------------------+
| insert('123456',3,3,'me') |
+---------------------------+
| 12me6                     |
+---------------------------+
1 row in set (0.02 sec)

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

mysql> select lower("ZHANG"),upper("zhang");
+----------------+----------------+
| lower("ZHANG") | upper("zhang") |
+----------------+----------------+
| zhang          | ZHANG          |
+----------------+----------------+
1 row in set (0.00 sec)

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               | zhang            |
+-----------------+--------------------+------------------+------------------+
1 row in set (0.00 sec)

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

mysql> select lpad('bin',8,'zhang'),rpad('zhang',8,'bin'),rpad('beijing',20,'2008');
+-----------------------+-----------------------+---------------------------+
| lpad('bin',8,'zhang') | rpad('zhang',8,'bin') | rpad('beijing',20,'2008') |
+-----------------------+-----------------------+---------------------------+
| zhangbin              | zhangbin              | beijing2008200820082      |
+-----------------------+-----------------------+---------------------------+
1 row in set (0.00 sec)

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

mysql> select '   zhang',ltrim('   zhang'),rtrim('zhang    ');
+----------+-------------------+--------------------+
| zhang    | ltrim('   zhang') | rtrim('zhang    ') |
+----------+-------------------+--------------------+
|    zhang | zhang             | zhang              |
+----------+-------------------+--------------------+
1 row in set (0.00 sec)

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

mysql> select repeat('mysql',5);
+---------------------------+
| repeat('mysql',5)         |
+---------------------------+
| mysqlmysqlmysqlmysqlmysql |
+---------------------------+
1 row in set (0.00 sec)

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

mysql> select replace('mysql','sql','ddd');
+------------------------------+
| replace('mysql','sql','ddd') |
+------------------------------+
| myddd                        |
+------------------------------+
1 row in set (0.00 sec)

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 |
+-----------------+-----------------+-----------------+-----------------+
1 row in set (0.01 sec)

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

mysql> select trim('  111 $  mysql $   ');
+-----------------------------+
| trim('  111 $  mysql $   ') |
+-----------------------------+
| 111 $  mysql $              |
+-----------------------------+
1 row in set (0.01 sec)

11:SUBSTRING(str,x,y)函数:返回从字符串 str 中的第 x 位置起 y 个字符长度的字串。

mysql> select substring('mysqlisdd',4,4);
+----------------------------+
| substring('mysqlisdd',4,4) |
+----------------------------+
| qlis                       |
+----------------------------+
1 row in set (0.00 sec)

2、数值函数


函数
功能

ABS(x) 

返回 x 的绝对值 

CEIL(x) 

返回大于 x 的最大整数值

FLOOR(x) 

返回小于 x 的最大整数值 

MOD(x,y) 

返回 x/y 的模

RAND() 

返回 0 到 1 内的随机值

ROUND(x,y) 

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

TRUNCATE(x,y) 

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

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

mysql> select abs(-0.3),abs(0.3);
+-----------+----------+
| abs(-0.3) | abs(0.3) |
+-----------+----------+
|       0.3 |      0.3 |
+-----------+----------+
1 row in set (0.36 sec)

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

mysql> select ceil(-0.2),ceil(0.2);
+------------+-----------+
| ceil(-0.2) | ceil(0.2) |
+------------+-----------+
|          0 |         1 |
+------------+-----------+
1 row in set (0.00 sec)

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

mysql> select floor(-0.2),floor(0.2);
+-------------+------------+
| floor(-0.2) | floor(0.2) |
+-------------+------------+
|          -1 |          0 |
+-------------+------------+
1 row in set (0.00 sec)

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 |
+------------+-----------+--------------+
1 row in set (0.00 sec)

5:RAND()函数,返回0到1之间的随机数

mysql> select rand(),rand();
+-------------------+---------------------+
| rand()            | rand()              |
+-------------------+---------------------+
| 0.541937319135235 | 0.10546984067696132 |
+-------------------+---------------------+
1 row in set (0.00 sec)

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 |
+--------------+------------+------------+
1 row in set (0.00 sec)

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 |
+----------------+-------------------+
1 row in set (0.31 sec)

3、日期和时间函数

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

函数 功能
CURDATE()   返回当前日期
CURTIME()   返回当前时间
NOW()  返回当前的日期和时间
UNIX_TIMESTAMP(date)  返回日期 date 的 UNIX 时间戳
FROM_UNIXTIME 返回 UNIX 时间戳的日期值
WEEK(date) 返回日期 date 为一年中的第几周
YEAR(date) 返回日期 date 的年份
HOUR(time) 返回 time 的小时值
MINUTE(time)   返回 time 的分钟值
MONTHNAME(date)  返回 date 的月份名
DATE_FORMAT(date,fmt) 返回按字符串 fmt 格式化日期 date 值
DATE_ADD(date,INTERVAL expr type)  返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2) 返回起始时间 expr 和结束时间 expr2 之间的天数

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

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2021-05-25 |
+------------+
1 row in set (0.00 sec)

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

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 14:07:06  |
+-----------+
1 row in set (0.00 sec)

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

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2021-05-25 14:07:33 |
+---------------------+
1 row in set (0.00 sec)

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

mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
|            1621922906 |
+-----------------------+
1 row in set (0.30 sec)

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

mysql> select from_unixtime(1621922906);
+---------------------------+
| from_unixtime(1621922906) |
+---------------------------+
| 2021-05-25 14:08:26       |
+---------------------------+
1 row in set (0.31 sec)

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

mysql> select week(now()),year(now());
+-------------+-------------+
| week(now()) | year(now()) |
+-------------+-------------+
|          21 |        2021 |
+-------------+-------------+
1 row in set (0.00 sec)

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

mysql> select hour(now()),minute(now());
+-------------+---------------+
| hour(now()) | minute(now()) |
+-------------+---------------+
|          14 |            11 |
+-------------+---------------+
1 row in set (0.00 sec)

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

mysql> select monthname(now());
+------------------+
| monthname(now()) |
+------------------+
| May              |
+------------------+
1 row in set (0.30 sec)

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  AM 或 PM
%W  一周中每一天的名称(Sunday,Monday,...,Saturday)
%a 一周中每一天名称的缩写(Sun,Mon,...,Sat)
%d 两位数字表示月中的天数(00,01,...,31)
%e 数字形式表示月中的天数(1,2,...,31)
%D 英文后缀表示月中的天数(1st,2nd,3rd,...)
%w  以数字形式表示周中的天数(0=Sunday,1=Monday,...,6=Saturday)
%j  以 3 位数字表示年中的天数(001,002,...,366)
%U 周(0,1,52),其中 Sunday 为周中的第一天
%u  周(0,1,52),其中 Monday 为周中的第一天
%M 月名(January,February,...,December)
%b  缩写的月名(January,February,...,December)
%m 两位数字表示的月份(01,02,...,12)
%c 数字表示的月份(1,2,...,12)
%Y 4 位数字表示的年份
%y 两位数字表示的年份
%% 直接值“%”
mysql> select date_format(now(),'%M,%D,%Y');
+-------------------------------+
| date_format(now(),'%M,%D,%Y') |
+-------------------------------+
| May,25th,2021                 |
+-------------------------------+
1 row in set (0.00 sec)

10:DATE_ADD(date,INTERVAL expr type)函数:返回与所给日期 date 相差 INTERVAL 时间段的日期。

其中 INTERVAL 是间隔类型关键字,expr 是一个表达式,这个表达式对应后面的类型,type是间隔类型,MySQL 提供了 13 种间隔类型,

如下表:MySQL 中的日期间隔类型:

表达式类型 描述 格式
HOUR 小时 hh
MINUTE mm
SECOND 秒   ss
YEAR YY
MONTH MM
DAY DD
YEAR_MONTH 年和月 YY-MM
DAY_HOUR 日和小时 DD hh
DAY_MINUTE 日和分钟 DD hh:mm
DAY_ SECOND 日和秒 DD hh:mm:ss
HOUR_MINUTE 小时和分 hh:mm
HOUR_SECOND 小时和秒 hh:ss
MINUTE_SECOND 分钟和秒 mm:ss

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

mysql> select now() current,date_add(now(),interval 31 day) after31days,date_add(now(),interval '1_2' year_month) after_oneyear_twomonth;
+---------------------+---------------------+------------------------+
| current             | after31days         | after_oneyear_twomonth |
+---------------------+---------------------+------------------------+
| 2021-05-25 14:32:30 | 2021-06-25 14:32:30 | 2022-07-25 14:32:30    |
+---------------------+---------------------+------------------------+
1 row in set (0.03 sec)

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

mysql> select now() current,date_add(now(),interval -31 day) bef31days,date_add(now(),interval '-1_-2' year_month) bef_oneyear_twomonth;
+---------------------+---------------------+----------------------+
| current             | bef31days           | bef_oneyear_twomonth |
+---------------------+---------------------+----------------------+
| 2021-05-25 14:34:38 | 2021-04-24 14:34:38 | 2020-03-25 14:34:38  |
+---------------------+---------------------+----------------------+
1 row in set (0.00 sec)

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

mysql> select datediff('2013-09-01',now());
+------------------------------+
| datediff('2013-09-01',now()) |
+------------------------------+
|                        -2823 |
+------------------------------+
1 row in set (0.30 sec)

4、流程函数

MySQL中的流程函数:

函数 功能
IF(value,t f) 如果 value 是真,返回 t;否则返回 f
IFNULL(value1,value2) 如果 value1 不为空返回 value1,否则返回 value2

CASE WHEN [value1]
THEN[result1]…ELSE[default]END

如果 value1 是真,返回 result1,否则返回 default

CASE [expr] WHEN [value1]
THEN[result1]…ELSE[default]END

如果 expr 等于 value1,返回 result1,否则返回 default

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

mysql> create table salary(userid int,salary decimal(9,2));
Query OK, 0 rows affected (0.47 sec)

mysql> insert into salary values(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,null);
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from salary;
+--------+---------+
| userid | salary  |
+--------+---------+
|      1 | 1000.00 |
|      2 | 2000.00 |
|      3 | 3000.00 |
|      4 | 4000.00 |
|      5 | 5000.00 |
|      1 |    NULL |
+--------+---------+
6 rows in set (0.00 sec)

mysql> select if(salary>2000,'high','low') from salary;
+------------------------------+
| if(salary>2000,'high','low') |
+------------------------------+
| low                          |
| low                          |
| high                         |
| high                         |
| high                         |
| low                          |
+------------------------------+
6 rows in set (0.31 sec)

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

mysql> select ifnull(salary,0) from salary;
+------------------+
| ifnull(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函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL实例精讲单行函数以及字符数学日期流程控制

    目录 一.字符函数 1.大小写控制函数 2.字符控制函数 二.数学函数 三.日期函数 四.其他函数 五.流程控制函数 一.字符函数 1.大小写控制函数 ①UPPER():转换成大写 SELECT UPPER('Hello'); ②LOWER():转换成小写 SELECT LOWER('Hello'); 2.字符控制函数 ①LENGTH():获取参数值的字节个数 SELECT LENGTH('叶绿体不忘呼吸aaaa'); ②CONCAT():拼接字符串 SELECT CONCAT('Hello',

  • 浅谈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空间数据存储及函数

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

  • 非常实用的MySQL函数全面总结详解示例分析教程

    目录 1.MySQL中关于函数的说明 2.单行函数分类 3.字符函数 4.数学函数 5.日期时间函数 6.其它常用系统函数 7.流程控制函数 8.聚合函数 1)聚合函数的功能和分类: 2)聚合函数的简单使用 3)五个聚合函数中传入的参数,所支持的数据类型有哪些? 4)聚合函数和group by的使用"最重要": 1.MySQL中关于函数的说明 "概念":类似java.python中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名: "好处":

  • MySQL实战窗口函数SQL分析班级学生考试成绩及生活消费

    目录 一.背景介绍 二.建表语句和插入数据 创建表格 插入数据 三.窗口函数分类介绍 四.窗口函数应用 1. 聚合函数 + over()搭配 2. 排序函数 + over()搭配 3. ntile()函数 + over()搭配 4. 偏移函数 + over()搭配 一.背景介绍 今天,野鸡大学高(三)班的月考成绩出来了,这里先给大家公布一下各位同学的考试成绩. 接着,在给大家公布一下各位同学的生活消费情况. 下面我们利用上述考试成绩和生活消费记录,利用mysql做一个简单的分析. 当然,从本文标

  • MySQL必备基础之分组函数 聚合函数 分组查询详解

    目录 一.简单使用 二.搭配DISTINCT去重 三.COUNT()详细介绍 四.分组查询 一.简单使用 SUM:求和(一般用于处理数值型) AVG:平均(一般用于处理数值型) MAX:最大(也可以用于处理字符串和日期) MIN:最小(也可以用于处理字符串和日期) COUNT:数量(统计非空值的数据个数) 以上分组函数都忽略空NULL值的数据 SELECT SUM(salary) AS 和,AVG(salary) AS 平均,MAX(salary) AS 最大,MIN(salary) AS 最小

  • mysql 计算函数详情

    目录 2.字段拼接 2.举一些mysql 函数例子 2.1 符处理 2.2 期处理 2.3 值处理 函数没有SQL的可移植性强 能运行在多个系统上的代码称为可移植的(portable).相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理. 而函数的可移植性却不强.几乎每种主要的DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大. 为了代码的可移植,许多SQL程序员不赞成使用特殊实现的功能.虽然这样做很有好处, 但不总是利于应用程序的性能.如果不使用这

  • MySQL数据库基础篇SQL窗口函数示例解析教程

    目录 本文简介 正文介绍 聚合函数 + over() 排序函数 + over() ntile()函数 + over() 偏移函数 + over() 本文简介 前段时间,黄同学写了一篇<MySQL窗口实战>文章(文章如下),但是里面大多数是以实战练习为主,没有做详细的解释. 传送门:MySQL实战窗口函数SQL分析班级学生考试成绩及生活消费 于是,私信了月牙美女,看看她能否写一篇<窗口函数基础篇>,正好和之前那篇文章配套.这不,很快她就写好了,今天就给大家做一个分享,旨在和大家交流学

  • mysql函数拼接查询concat函数的使用方法

    如下所示: //查询表managefee_managefee的年year 和 month ,用concat函数拼成year-month.例如将2017和1 拼成2017-01.. select CONCAT(a.year,'-',if(a.month<=9,CONCAT('0',a.month),a.month))as date,a.* from managefee_managefee as a; //查询managefee_managefee中时间段为2017-01到2017-07的数据 se

  • MySQL函数一览_MySQL函数全部汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时查看. 数学函数 (1)ABS(x) 返回x的绝对值 (2)PI() 返回圆周率π,默认显示6位小数 (3)SQRT(x) 返回非负数的x的二次方根 (4)MOD(x,y) 返回x被y除后的余数 (5)CEIL(x).CEILING(x) 返回不小于x的最小整数 (6)FLOOR(x) 返回不大于x

  • PHP编程之高级技巧——利用Mysql函数

    尽管PHP为我们提供了很多函数,但有些东西处理起来还是不很方便.譬如PHP提供的日期时间函数就很有限.Mysql为我们提供了不少此类的函数.是否可以利用Mysql函数来处理PHP程序呢?笔者做了以下的尝试. <?php     $data_time="1998-12-31 23:59:59";     $connect_id=mysql_connect('localhost');     $query_id=mysql_query("SELECT DATE_ADD('$

  • 详解数据库_MySQL: mysql函数

    一.内置函数 1.数学函数 rand() round(num) ceil(num) floor(num) 随机 四舍五入 向上取整 向下取整 2.字符串函数 length() 字节长度 char_length() 字符长度 ucase() 大写 lcase() 小写 concat(字符,-,字符n) 连接字符串 replace(字符串,旧字符,新字符)字符串替换 截取字符串 left(字符串,截取长度) right(字符串,截取长度) substring(字符串,开始位置,截取长度) #包含开始

  • 十个实用且简单的MySQL函数

    函数  0. 显示当前时间 命令:select now(). 作用: 显示当前时间. 应用场景: 创建时间,修改时间等默认值. 例子: mysql> select now(); +---------------------+ | now() | +---------------------+ | 2017-12-27 20:14:56 | +---------------------+ 1 row in set (0.00 sec) 1. 字符长度 命令:select char_length('

  • MySQL 函数索引的优化方案

    很多开发人员在使用MySQL时经常会在部分列上进行函数计算等,导致无法走索引,在数据量大的时候,查询效率低下.针对此种情况本文从MySQL5.7 及MySQL8.0中分别进行不同方式的优化. 1. MySQL5.7 MySQL5.7版本中不支持函数索引,因此 遇到函数索引的时候需要进行修改,否则即使查询的字段上有索引,执行时也无法使用索引而进行全表扫描,数据量大的表查询时间会比较长.具体案例如下: 1.1 创建测试表及数据 mysql> use testdb; Database changed

  • mysql函数全面总结

    目录 1.MySQL中常用字符串函数 2.数值函数 3.日期和时间函数 4.流程函数 5.其他常用函数 1.MySQL中常用字符串函数 函数 功能 CANCAT(S1,S2,-Sn)  连接 S1,S2,-Sn 为一个字符串 INSERT(str,x,y,instr)  将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr LOWER(str)  将字符串 str 中所有字符变为小写 UPPER(str)  将字符串 str 中所有字符变为大写  LEFT(str ,

  • MYSQL函数的使用梳理

    目录 MYSQL函数 1:聚合函数 2:数学函数 2:字符串函数 3:日期函数 4:控制流函数 5:窗口函数 5.1 序号函数 5.2 分布函数 5.3 前后函数 5.4 头尾函数 5.5 其他函数 5.6 开窗聚合函数 MYSQL函数 1:聚合函数 聚合函数主要由:count,sum,min,max,avg,group_count() 重点说一下group_count()函数,首先根据group by指定的列进行分组,并且用分隔符分隔,将同一个分组中的值连接起来,返回一个字符串结果. 格式 :

随机推荐