Mysql查询中使用函数
MySQL中的函数包括数值型函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等其他函数。
完整的函数列表请参看: MYSQL函数大全,MYSQL常用函数合集
数值型函数
数值型函数主要用来处理数值数据,主要有绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数等)、对数函数、随机数函数等。
在有错误产生时,数值型函数将会返回空值NULL。
⚡ 主要数值型函数操作演示如下:
-- 1.绝对值函数ABS(x)
select abs(2),abs(-2),abs(-3.3)
-- 输出
abs(2)|abs(-2)|abs(-3.3)|
------+-------+---------+
2| 2| 3.3|
-- 2.圆周率的函数PI()
select pi()
-- 输出,默认的显示小数位数是6位。
pi() |
--------+
3.141593|
-- 3. 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)
-- CEIL(x) 是 CEILING(x)的简写
select ceil(1.222),floor(1.222)
-- 输出,返回BigInt
ceil(1.222)|floor(1.222)|
-----------+------------+
2| 1|
-- 4. 获取随机数的函数RAND()和RAND(x)
-- RAND(x)返回一个随机浮点值v,范围在0到1之间(0 ≤ v ≤ 1.0)。
-- 若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。
select rand(),rand() ,rand()
-- 输出,0-1之间,不相同
rand() |rand() |rand() |
------------------+------------------+------------------+
0.7935338782086353|0.8069899862697255|0.6543483274563666|
select rand(10),rand(10) ,rand(11)
-- 输出,参数相同,随机数相同
rand(10) |rand(10) |rand(11) |
------------------+------------------+-----------------+
0.6570515219653505|0.6570515219653505|0.907234631392392|
-- 5. ROUND(x)返回最接近于参数x的整数,对x值进行四舍五入。
select round(1.22),round(1.66),round(-1.66)
-- 输出
round(1.22)|round(1.66)|round(-1.66)|
-----------+-----------+------------+
1| 2| -2|
-- 6. ROUND(x,y)返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位。
-- y值为负数时,保留的小数点左边的相应位数直接保存为0,不进行四舍五入。
select round(1.222,2),round(1.666,2),round(11.666,-2), round(11.666,-1)
-- 输出
round(1.222,2)|round(1.666,2)|round(11.666,-2)|round(11.666,-1)|
--------------+--------------+----------------+----------------+
1.22| 1.67| 0| 10|
-- 7. TRUNCATE(x,y)返回被舍去至小数点后y位的数字x。
-- 若y的值为0,则结果不带有小数点或不带有小数部分。
-- 若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。
select truncate(1.222,2),truncate(1.666,2),truncate(11.666,-2), truncate(11.666,-1)
-- 输出
truncate(1.222,2)|truncate(1.666,2)|truncate(11.666,-2)|truncate(11.666,-1)|
-----------------+-----------------+-------------------+-------------------+
1.22| 1.66| 0| 10|
🚀 ROUND(x,y)函数在截取值的时候会四舍五入,而TRUNCATE (x,y)直接截取值,并不进行四舍五入。
字符串函数
字符串函数主要用来处理数据库中的字符串数据。
MySQL中的字符串函数有计算字符串长度函数、字符串合并函数、字符串替换函数、字符串比较函数、查找指定字符串位置函数等。
⚡ 主要字符串函数操作演示如下:
-- 1.CHAR_LENGTH(str)返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符。
select char_length("hello"),char_length("你好")
-- output
char_length("hello")|char_length("你好")|
--------------------+-----------------+
5| 2|
-- 2. LENGTH(str)返回值为字符串的字节长度,使用utf8,一个汉字三个字节,一个数字或字母一个字节。
select length("hello"),length("你好")
-- output
length("hello")|length("你好")
---------------+------------+
5| 6|
-- 3. 合并字符串函数CONCAT(s1,s2,…)
-- CONCAT(s1,s2,…)返回结果为连接参数产生的字符串,或许有一个或多个参数。如有任何一个参数为NULL,则返回值为NULL。
select concat("hello", "mysql"),concat("hello",null,"mysql")
-- output
concat("hello", "mysql")|concat("hello",null,"mysql")|
------------------------+----------------------------+
hellomysql | |
-- 4.合并字符串函数CONCAT_WS(x,s1,s2,…),_WS代表 With Separator
-- 第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。
-- 分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则结果为NULL。
-- 函数会忽略任何分隔符参数后的NULL值。
select concat_ws("_","hello", "mysql"),concat_ws("_","hello",null,"mysql")
-- output,null 会忽略
concat_ws("_","hello", "mysql")|concat_ws("_","hello",null,"mysql")|
-------------------------------+-----------------------------------+
hello_mysql |hello_mysql |
-- 5.替换字符串的函数INSERT(s1,start,len,s2)
-- 如果x超过字符串长度,则返回值为原始字符串。假如len的长度大于其他字符串的长度,则从位置x开始替换。
-- 若任何一个参数为NULL,则返回值为NULL。
select INSERT('HiWorld', 3, 5, 'Mysql') as insert_coll
-- output
insert_coll|
-----------+
HiMysql |
-- 6. 字母大小写转换函数
-- LOWER (str)或者LCASE (str)可以将字符串str中的字母字符全部转换成小写字母。
-- UPPER(str)或者UCASE(str)可以将字符串str中的字母字符全部转换成大写字母。
select lcase("Hello Mysql"),ucase("Hello Mysql")
-- output
lcase("Hello Mysql")|ucase("Hello Mysql")|
--------------------+--------------------+
hello mysql |HELLO MYSQL |
-- 7. 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)
-- LEFT(s,n)返回字符串s开始的最左边n个字符。
-- RIGHT(s,n)返回字符串str最右边的n个字符。
select left("Hello Mysql",7),right("Hello Mysql",7)
-- output,注意包含了空格
left("Hello Mysql",7)|right("Hello Mysql",7)|
---------------------+----------------------+
Hello M |o Mysql |
-- 8. 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
-- LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。
-- 假如s1的长度大于len,则返回值被缩短至len字符。
select LPad("Hello",4,"??"),LPad("Hello",10,"??")
-- output,可以简单认为:len即是输出字符串的长度
LPad("Hello",4,"??")|LPad("Hello",10,"??")|
--------------------+---------------------+
Hell |?????Hello |
select rpad("Hello",4,"??"),rpad("Hello",10,"??")
-- output
rpad("Hello",4,"??")|rpad("Hello",10,"??")|
--------------------+---------------------+
Hell |Hello????? |
-- 9.删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)
select ltrim(" Hello"),rtrim("Hello "),trim(" hello ")
--output
ltrim(" Hello")|rtrim("Hello ")|trim(" hello ")|
---------------+---------------+---------------+
Hello |Hello |hello |
-- 10. 除指定字符串的函数TRIM(s1 FROM s)
-- TRIM(s1 FROM s)删除字符串s中两端所有的子字符串s1。s1为可选项,在未指定情况下,删除空格。
select trim("xy" from " hello xy") , trim("xy" from "xy hello ")
-- ouput
trim("xy" from " hello xy")|trim("xy" from "xy hello ")|
---------------------------+---------------------------+
hello | hello |
-- 11. 重复生成字符串的函数REPEAT(s,n)
-- 返回一个由重复的字符串s组成的字符串,字符串s的数目等于n。
-- 若n<=0,则返回一个空字符串。若s或n为NULL,则返回NULL。
select repeat("mysql ",3),repeat("mysql",0),repeat("mysql",null)
-- output
repeat("mysql ",3)|repeat("mysql",0)|repeat("mysql",null)|
------------------+-----------------+--------------------+
mysql mysql mysql | | |
-- 12.空格函数SPACE(n),返回一个由n个空格组成的字符串。
select char_length(space(5))
-- ouput
char_length( space(5))|
----------------------+
5|
-- 13. 替换函数REPLACE(s,s1,s2)
-- REPLACE(s,s1,s2)使用字符串s2替代字符串s中所有的字符串s1。
select replace("hello mysql","hello","hi")
-- output
replace("hello mysql","hello","hi")|
-----------------------------------+
hi mysql |
-- 14. 比较字符串大小的函数STRCMP(s1,s2)
-- STRCMP(s1,s2):若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1;其他情况返回1。
select strcmp("str","str"),strcmp("str1 ","str"),strcmp("str ","str2")
-- output
strcmp("str","str")|strcmp("str1 ","str")|strcmp("str ","str2")|
-------------------+---------------------+---------------------+
0| 1| -1|
-- 15. 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
-- SUBSTRING(s,n,len)带有len参数的格式,从字符串s返回一个长度与len字符相同的子字符串,起始于位置n。
-- 也可能对n使用一个负值,即倒数
-- 使用MID() 与 使用MID()函数获取指定位置处的子字符串
select substring("hello mysql",7,5),substring("hello mysql",-5,5)
-- output
substring("hello mysql",7,5)|substring("hello mysql",-5,5)|
----------------------------+-----------------------------+
mysql |mysql |
-- 16. 匹配子串开始位置的函数
-- LOCATE(str1,str)、POSITION(str1 IN str)和INSTR(str, str1)3个函数的作用相同,返回子字符串str1在字符串str中的开始位置。
select locate("mysql","hello mysql"),position("mysql" in "hello mysql"),instr("hello mysql","mysql")
-- output
locate("mysql","hello mysql")|position("mysql" in "hello mysql")|instr("hello mysql","mysql")|
-----------------------------+----------------------------------+----------------------------+
7| 7| 7|
-- 17. 字符串逆序的函数REVERSE(s)
select reverse("hello")
-- output
reverse("hello")|
----------------+
olleh |
🚀1.char_length与length这两个函数的区别是:
- a)length(): 单位是字节,utf8编码下,一个汉字三个字节,一个数字或字母一个字节。gbk编码下,一个汉字两个字节,一个数字或字母一个字节。
- b)char_length():单位为字符,不管汉字还是数字或者是字母都算是一个字符。
🚀 2. CONCAT(s1,s2,…) 注意事项
返回结果为连接参数产生的字符串,或许有一个或多个参数。
如有任何一个参数为NULL,则返回值为NULL。
如果所有参数均为非二进制字符串,则结果为非二进制字符串。
如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
常用日期和时间函数
日期和时间函数主要用来处理日期和时间值。
一般的日期函数除了使用DATE类型的参数外,也可以使用DATETIME或者TIMESTAMP类型的参数,但会忽略这些值的时间部分。
相同的,以TIME类型值为参数的函数,可以接受TIMESTAMP类型的参数,但会忽略日期部分。
许多日期函数可以同时接受数字和字符串类型的两种参数
⚡ 主要日期时间函数操作演示如下:
-- 1. 获取当前日期的函数和获取当前时间的函数
-- CURDATE()和CURRENT_DATE()函数的作用相同,将当前日期按照‘YYYY-MM-DD’或YYYYMMDD格式的值返回
select curdate(),current_date(),curdate() + 0
select curtime(),current_time(),curtime() + 0
select current_timestamp(),current_timestamp(),current_timestamp() + 0
-- output, curdate() + 0 将日期转为数值型
curdate() |current_date()|curdate() + 0|
----------+--------------+-------------+
2022-02-03| 2022-02-03| 20220203|
curtime()|current_time()|curtime() + 0|
---------+--------------+-------------+
22:34:24| 22:34:24| 223424|
current_timestamp()|current_timestamp()|current_timestamp() + 0|
-------------------+-------------------+-----------------------+
2022-02-03 22:35:35|2022-02-03 22:35:35| 20220203223535|
-- 2. UNIX时间戳函数
-- UNIX_TIMESTAMP(date)若无参数调用,则返回一个UNIX时间戳(‘1970-01-0100:00:00’GMT之后的秒数)作为无符号整数。
-- 其中,GMT(Green wich meantime)为格林尼治标准时间。
-- FROM_UNIXTIME(date)函数把UNIX时间戳转换为普通格式的时间,与UNIX_TIMESTAMP (date)函数互为反函数。
select unix_timestamp(),unix_timestamp(now()),from_unixtime(1643899246)
-- output
unix_timestamp()|unix_timestamp(now())|from_unixtime(1643899246)|
----------------+---------------------+-------------------------+
1643899263| 1643899263| 2022-02-03 22:40:46|
-- 3. 返回UTC日期的函数和返回UTC时间的函数
-- UTC_DATE()函数返回当前UTC(世界标准时间)日期值,其格式为‘YYYY-MM-DD’或YYYYMMDD,具体格式取决于函数是否用在字符串或数字语境中。
select utc_date(),utc_date + 0
select utc_time(),utc_time + 0
select utc_timestamp(),utc_timestamp + 0
-- output,与GMT时间,相差8个小时
utc_timestamp() |utc_timestamp + 0|
-------------------+-----------------+
2022-02-03 14:43:55| 20220203144355|
-- 4.获取年份、季度、小时、分钟和秒钟,以及日期,星期的函数
select year(curdate()),month(curdate()),day(curdate()),dayname(curdate()) ,week(curdate())
-- output,注意:WEEK(d)计算日期d是一年中的第几周
year(curdate())|month(curdate())|day(curdate())|dayname(curdate())|week(curdate())|
---------------+----------------+--------------+------------------+---------------+
2022| 2| 3|Thursday | 5|
-- 5.计算日期和时间的函数
-- 期和时间的函数有DATE_ADD()、ADDDATE()、DATE_SUB()、SUBDATE()、ADDTIME()、SUBTIME()和DATE_DIFF()
-- 详见函数大全
-- 6. 日期时间格式化函数
⚡
CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()
4个函数的作用相同,均返回当前日期和时间值格式为
YYYY-MM-DD HH:MM:SS
或YYYYMMDDHHMMSS
条件判断函数
条件判断函数也称为控制流程函数,根据满足的不同条件,执行相应的流程。MySQL中进行条件判断的函数有IF、IFNULL和CASE。
-- 1.IF(expr, v1, v2)
-- 如果表达式expr是TRUE(expr <> 0 and expr <> NULL),则返回值为v1;否则返回值为v2。
-- F()的返回值为数字值或字符串值
select if(1>2,"yes","no")
-- output
if(1>2,"yes","no")|
------------------+
no |
-- 2. IFNULL(v1,v2)函数
-- IFNULL(v1,v2):假如v1不为NULL,则IFNULL()的返回值为v1;否则其返回值为v2。
-- IFNULL()的返回值是数字或者字符串
select ifnull("not null","null")
select ifnull(null,"null")
-- output
ifnull("not null","null")|
-------------------------+
not null
|
ifnull(null,"null")|
-------------------+
null |
-- 3. CASE函数
-- CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2]…[ELSE rn+1] END:如果expr值等于某个vn,则返回对应位置THEN后面的结果;
-- 如果与所有值都不相等,则返回ELSE后面的rn+1。
-- ------------------------------------------------------------------------------------------------------
-- CASE WHEN v1 THEN r1 [WHEN v2 THEN r2]… ELSE rn+1] END:某个vn值为TRUE时,返回对应位置THEN后面的结果;
--如果所有值都不为TRUE,则返回ELSE后的rn+1。
select case "a" when "a" then "hello a" when "b" then "hello b" else "hello c" end as case_value_when
-- output
case_value_when|
---------------+
hello a |
select case "b" when "a" then "hello a" when "b" then "hello b" else "hello c" end as case_value_when
-- output
case_value_when|
---------------+
hello b |
select case when true then "hello yes" else "hello no" end as case_when_then
-- output
case_when_then|
--------------+
hello yes |
select case when false then "hello yes" else "hello no" end as case_when_then
-- output
case_when_then|
--------------+
hello no |
系统信息函数
MySQL中的系统信息有数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。
-- 1. 获取MySQL版本号、连接数和数据库名的函数
select version(),connection_id(),database(),schema()
-- output
version()|connection_id()|database()|schema() |
---------+---------------+----------+---------+
8.0.27 | 14|json_test |json_test|
-- 如果需要查询具体连接数的线程信息,可以使用 `show processlist` 命令
-- 2. 获取用户名的函数
-- USER()、CURRENT_USER()、SYSTEM_USER()和SESSION_USER()这几个函数返回当前被MySQL服务器验证的用户名和主机名组合。
select user(),current_user(),system_user(),session_user()
-- output
user() |current_user()|system_user() |session_user()|
--------------+--------------+--------------+--------------+
root@localhost|root@localhost|root@localhost|root@localhost|
-- 3. 获取字符串的字符集和排序方式的函数
-- CHARSET(str)返回字符串str自变量的字符集
-- COLLATION(str)返回字符串str的字符排列方式
select charset("hello"),collation("hello")
-- output
charset("hello")|collation("hello")|
----------------+------------------+
utf8mb4 |utf8mb4_0900_ai_ci|
-- 4. 获取最后一个自动生成的ID值的函数
-- LAST_INSERT_ID()函数返回最后生成的AUTO_INCREMENT值
use world
select * from city where id = 1
insert into city (name,CountryCode,District,Population) values ("testName","AFG","test District",1780001)
select last_insert_id()
-- output
last_insert_id()|
----------------+
4082|
⚡ LAST_INSERT_ID是与数据表无关的,如果向表a插入数据后再向表b插入数据,那么LAST_INSERT_ID返回表b中的Id值。
IP地址与数字相互转换的函数
INET_ATON(expr)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。
地址可以是4或8bit地址。
INET_NTOA(expr)给定一个数字网络地址(4或8bit),返回作为字符串的该地址的点地址表示。
select inet_aton("192.168.0.1"), inet_ntoa(3232235521)
-- output
inet_aton("192.168.0.1")|inet_ntoa(3232235521)|
------------------------+---------------------+
3232235521|192.168.0.1 |
🌹 aton: address to number
🌹 ntoa: number to address
MySQL 8新增加密函数和窗口函数
加密函数主要用来对数据进行加密和界面处理,以保证某些重要数据不被别人获取。这些函数在保证数据库安全时非常有用。
加密函数MD5(str)
MD5(str)为字符串算出一个MD5 128比特校验和。该值以32位十六进制数字的二进制字符串形式返回,若参数为NULL,则会返回NULL。、
select md5(123456)
-- output
md5(123456) |
--------------------------------+
e10adc3949ba59abbe56e057f20f883e|
加密函数SHA(str)
SHA(str)从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL。SHA加密算法比MD5更加安全。
select sha(123456)
-- output
sha(123456) |
----------------------------------------+
7c4a8d09ca3762af61e59520943dc26494f8941b|
加密函数SHA2(str, hash_length)
SHA2(str, hash_length)使用hash_length作为长度,加密str。hash_length支持的值为224、256、384、512和0。其中,0等同于256。
select sha2(123456,0),sha2(123456,512)
-- output
sha2(123456,0) |
----------------------------------------------------------------+
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92|
窗口函数
在MySQL 8.0版本中,新增了一个窗口函数,用它可以实现很多新的查询方式。
窗口函数类似于SUM()、COUNT()那样的集合函数,但它并不会将多行查询结果合并为一行,而是将结果放回多行当中。
也就是说,窗口函数是不需要GROUP BY的。
⛔ 示例待补充
聚合函数 Aggregate Function
有时候并不需要返回实际表中的数据,而只是对数据进行总结。
MySQL中聚合函数通常和group by
子句一起使用。
常用的聚合函数如下表
Name | Description |
---|---|
AVG() | Return the average value of the argument |
BIT_AND() | Return bitwise AND |
BIT_OR() | Return bitwise OR |
BIT_XOR() | Return bitwise XOR |
COUNT() | Return a count of the number of rows returned |
COUNT(DISTINCT) | Return the count of a number of different values |
GROUP_CONCAT() | Return a concatenated string |
JSON_ARRAYAGG() | Return result set as a single JSON array |
JSON_OBJECTAGG() | Return result set as a single JSON object |
MAX() | Return the maximum value |
MIN() | Return the minimum value |
STD() | Return the population standard deviation |
STDDEV() | Return the population standard deviation |
STDDEV_POP() | Return the population standard deviation |
STDDEV_SAMP() | Return the sample standard deviation |
SUM() | Return the sum |
VAR_POP() | Return the population standard variance |
VAR_SAMP() | Return the sample variance |
VARIANCE() | Return the population standard variance |
本次重点介绍一下几个聚合函数的具体用法:
COUNT()函数
COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。
其使用方法有两种:
● COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值。
● COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。
-- mysql8 示例数据库 world
select count(indepYear) from country
-- output:239
select count(*) from country
select count(1) from country
-- output:192
⚡ count(*) 与 count(1)
执行效果上:
- count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL
- count(1)包括了所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL
- count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。
执行效率上:
- 列名为主键,count(1)会比count(列名)快
- 列名不为主键,count(1)会比count(列名)快
- 如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)
- 如果有主键,则 select count(主键)的执行效率是最优的
- 如果表只有一个字段,则 select count(*) 最优。
COUNT() 与 group by
-- 按地区Region分组,然后查询每个地区的记录总数
select Region, count(*) from country group by Region
-- output, 省略部分结果
Region |count(*)|
-------------------------+--------+
Caribbean | 24|
Southern and Central Asia| 14|
Central Africa | 9|
Southern Europe | 15|
Middle East | 18|
SUM()函数
SUM()是一个求总和的函数,返回指定列值的总和。和group by 一起使用时,先分组,然后计算分组中列的总和。
⚡SUM()函数在计算时,忽略列值为NULL的行。
mysql> SELECT SUM(profit) AS total_profit
FROM sales;
+--------------+
| total_profit |
+--------------+
| 7535 |
+--------------+
mysql> SELECT country, SUM(profit) AS country_profit
FROM sales
GROUP BY country
ORDER BY country;
+---------+----------------+
| country | country_profit |
+---------+----------------+
| Finland | 1610 |
| India | 1350 |
| USA | 4575 |
+---------+----------------+
AVG()函数
AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
mysql> SELECT student_name, AVG(test_score)
FROM student
GROUP BY student_name;
MAX()函数
MAX()返回指定列中的最大值。
MAX()也可以和GROUP BY关键字一起使用,求每个分组中的最大值。
MAX()函数不仅适用于查找数值类型,也可应用于字符类型。
TIP
MAX()函数除了用来找出最大的列值或日期值之外,还可以返回任意列中的最大值,包括返回字符类型的最大值。
在对字符类型数据进行比较时,按照字符的ASCII码值大小进行比较,从a~z,a的ASCII码最小,z的最大。
在比较时,先比较第一个字母,如果相等,继续比较下一个字符,一直到两个字符不相等或者字符结束为止。
例如,‘b’与‘t’比较时,‘t’为最大值;“bcd”与“bca”比较时,“bcd”为最大值。
MIN()函数
MIN()返回查询列中的最小值。
MIN()也可以和GROUP BY关键字一起使用,求出每个分组中的最小值。
MIN()函数与MAX()函数类似,不仅适用于查找数值类型,也可应用于字符类型。