mysql 函数获取参数_Mysql函数大全

使用格式:聚集函数一般是配合GROUP BY语句使用的,也可以用于统计整表、整列。

AVG() :返回某列的平均值,参数为要计算的列名。

COUNT() :返回某列/某组/整表的行数。

使用方法有以下两种:

COUNT(*) 计算表中总的行数,无论某列有数值或者为空值;

COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

提示:在计算总数的时候对待 NULL 值的方式是,指定列的值为空的行被 COUNT() 函数忽略,但若不指定列,而在 COUNT() 函数中使用星号“*”,则所有记录都不忽略。

测试表:

6bbe4fdbe42f13c1e2355088d67609a5.png

8032166271cac3a4e835fb0f5aed70a6.png

MAX() :返回某列的最大值,适用于查找数值类型、字符类型。(注意:在对字符类型的数据进行比较时,按照字符的ASCII码值大小进行比较,从 a~z,a 的 ASCII 码最小,z 的最大。在比较时,先比较第一个字符,如果相等,继续比较下一个字符,一直到两个字符不相等或者字符结束为止。)

MIN() :返回某列的最小值。

0b220da82dac7ab6cc9e776744dd9a7f.png

SUM() :返回某个列之和

(1)如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0。

(2)DISTINCT 运算符允许计算集合中的不同值。

(3)SUM 函数忽略计算中的 NULL 值。

(4)提示:SUM() 函数在计算时,忽略列值为 NULL 的行。

4、日期和时间函数

CURDATE() 和 CURRENT_DATE():返回当前系统的日期值。“CURDATE()+0”将当前日期值转换为数值型的

CURTIME() 和 CURRENT_TIME():返回当前系统的时间值

82cc2776c1b87097dd495573babf878f.png

NOW() 和 SYSDATE() :返回当前日期和时间值。NOW() 取的是语句开始执行的时间,而 SYSDATE() 取的是语句执行过程中动态的实时时间。

699b4f044391257aef28a6020c80f259.png

时间选取函数:

选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒

YEAR(date):返回date的年份

MONTH(date) :返回date的月份,范围1到12。

MONTHNAME(date) :返回date的英文月份名字。

DAYNAME(date) :返回date的英文星期名字。

WEEKDAY(date) :返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

WEEK():计算日期 date 是一年中的第几周。WEEK(date,mode) 函数允许指定星期是否起始于周日或周一,以及返回值的范围是否为 0~52 或 1~53。WEEK函数接受两个参数:date是要获取周数的日期。mode是一个可选参数,用于确定周数计算的逻辑

813398a572deaef14e56b56b5bc08e95.png

DAYOFWEEK(date) :返回 date对应的一周中的索引(位置)。1到7表示周日到周六。

DAYOFMONTH(date) :返回date的月份中日期,在1到31范围内。

DAYOFYEAR(date) :返回date在一年中的日数, 在1到366范围内。

QUARTER(date) :返回date一年中的季度,范围1到4。

9511277a4abcdd32ad905c9d76cd28af.png

TIME_TO_SEC(time) :将时间值转换为秒值 SEC_TO_TIME(seconds) :将秒值转换为时间格式

UNIX_TIMESTAMP(date) 若无参数调用,返回一个无符号整数类型的 UNIX 时间戳('1970-01-01 00:00:00'GMT之后的秒数)。

FROM_UNIXTIME(date) 函数把 UNIX 时间戳转换为普通格式的日期时间值,与UNIX_TIMESTAMP(date)函数互为反函数。

DATE_ADD(date,INTERVAL expr type) 和 ADDDATE(date,INTERVAL expr type) 两个函数的作用相同,都是用于执行日期的加运算。date 是 DATE 或 DATETIME 的起始值。INTERVAL expr type是要添加到起始日期值的间隔值。

DATE_SUB(date,INTERVAL expr type) 和 SUBDATE(date,INTERVAL expr type) 两个函数作用相同,都是执行日期的减法运算。

8d6d9675839d56a304f312d592a705c3.png

ADDTIME(time,expr) 函数用于执行时间的加法运算(time 是一个时间或日期时间表达式,expr 是一个时间表达式)。

SUBTIME(time,expr) 函数用于执行时间的减法运算

b90fbfca477ce55332f583f12a844c95.png

DATEDIFF(date1,date2) 返回起始时间 date1 和结束时间 date2 之间的天数。date1 和 date2 为日期或 date-and-time 表达式。计算时只用到这些值的日期部分。

DATE_FORMAT(date,format) 函数是根据 format 指定的格式显示 date 值。DATE_FORMAT() 函数接受两个参数:date:是要格式化的有效日期值,format:是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)。

ee26049d55853e2f74384ca61b372b9d.png

%a 工作日的缩写名称 (Sun..Sat)%b 月份的缩写名称 (Jan..Dec)%c 月份,数字形式(0..12)%D 带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, …)%d 该月日期, 数字形式 (00..31)%e 该月日期, 数字形式(0..31)%f 微秒 (000000..999999)%H 小时(00..23)%h 小时(01..12)%I 小时 (01..12)%i 分钟,数字形式 (00..59)%j 一年中的天数 (001..366)%k 小时 (0..23)%l 小时 (1..12)%M 月份名称 (January..December)%m 月份, 数字形式 (00..12)%p 上午(AM)或下午( PM)%r 时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM)%S 秒 (00..59)%s 秒 (00..59)%T 时间 , 24小时制 (小时hh:分钟mm:秒数ss)%U 周 (00..53), 其中周日为每周的第一天%u 周 (00..53), 其中周一为每周的第一天%V 周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用%v 周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用%W 工作日名称 (周日..周六)%w 一周中的每日 (0=周日..6=周六)%X 该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用%x 该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用%Y 年份, 数字形式,4位数%y 年份, 数字形式 (2位数)%% ‘%’文字字符

5.其他函数

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值

格式:CAST(xxx  AS 类型) ,CONVERT(xxx,类型)

类型可以是以下值其中的一个:

二进制 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

整数 : SIGNED

无符号整数 : UNSIGNED

8af2a53200ac809d337756c5d5083929.png

FNULL(v1,v2)是 MySQL 控制流函数之一,如果不是 NULL,则返回第一个参数, 否则,IFNULL 函数返回第二个参数。两个参数可以是文字值或表达式。

IF(expr,v1,v2)语句允许您根据表达式的某个条件或值结果来执行一组 SQL 语句。要在 MySQL 中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回 TRUE,FALSE 或 NULL,这三个值之一。表达式 expr 得到不同的结果,当 expr 为真是返回 v1 的值,否则返回 v2.

CASE语句分为简单的和可搜索 CASE 语句。

简单的 CASE 语句就是指使用简单 CASE 语句来检查表达式的值与一组唯一值的匹配:

CASE

WHEN THEN

WHEN THEN

...

ELSE

END CASE;

可以是任何有效的表达式。我们将  的值与每个 WHEN 子句中的值进行比较,例如 , 等。如果 和 的值相等,则执行相应的 WHEN 分支中的命令 。如果 WHEN 子句中的 没有与 的值匹配,则 ELSE

子句中的命令将被执行。ELSE 子句是可选的。 如果省略 ELSE 子句,并且找不到匹配项,MySQL 将引发错误。

可搜索CASE语句:

CASE

WHEN THEN

WHEN THEN

...

ELSE commands

END CASE;

MySQL 分别计算 WHEN 子句中的每个条件,直到找到一个值为 TRUE 的条件,然后执行 THEN 子句中的相应 。如果没有一个条件为 TRUE,则执行 ELSE 子句中的 。如果不指定 ELSE

子句,并且没有一个条件为 TRUE,MySQL 将发出错误消息。MySQL 不允许在 THEN 或 ELSE 子句中使用空的命令。 如果您不想处理 ELSE 子句中的逻辑,同时又要防止 MySQL 引发错误,则可以在 ELSE 子句中放置一个空的 BEGIN END 块。

15b3a843fd115446f47811b3d0db7c0f.png

f5b2952dc2f148654a7d04a4122a3ee5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值