MySql常用函数


MYSQL聚合函数

1AVG

AVG ([DISTINCT] expr) 返回expr的平均值,DISTINCT选项可用于返回expr 的不同值的平均值, 

查询teacher_tab表中教师的平均年龄:

select AVG (age) from teacher_tab ;

2COUNT

COUNT (expr) 

返回SELECT 语句检索到行中非NULL值的数目。不论其否包含NULL值。

SELECT COUNT (*) FROM TEACHER_TAB ;返回检索行的数目。

SELECT COUNT (NAME) FROM TEACHER_TAB  :返回SELECT语句检索到行中非NULL值。

3MIN/MAX

 返回最大最小值。

 查询teacher_tab中年龄的最大值与最小值并用别名区别:

select  min(age) as 最小值 ,max(age) as 最大值 from teacher_tab ;

4:SUM

求总数

teacher_tab中,教师年龄的总和

select sum(age) from teacher_tab;

二:MSQ控制流程函数:

CASE

如果没有匹配的结果值,则返回结果为else后的结果,如果没有else部分,则返回值为null

 select case 1 when 1 then '' when 2 then ''else '小白' end as result; 

判断case的值如果为1返回男,2返回女,其他返回小白。

IF

IF (expr1,expr2,expr3) 如果expr1true ,则if ()的返回值为expr2,否则返回值为expr3

select if (1>2, 'yes','no');  

IFNULL

假如expre1 不为null ,则IFNULL()返回值为expr1 ;否则返回 。 

select ifnull (course ,0) from teacher_tab;

查询所有教授的课,如果是空则用0代替。

NULLIF

NULLIF (expr1expre2) 

如果expre1=expre2 成立,那么返回null,否则返回expre1

 select nullif(1,1);

MYSQL字符串函数

1:CHAR_LENGTH

返回字符串的长度,长度单位是字符。

select char_length ("wang");

2:FORMAT

FORMAT(X,D) 

将数字X的格式写为#.###.###.##,以四舍五入的方式保留小数点后D为,并将结果以字符串的形式返回,若D,则返回结果不带有小数点,或不含小数部分。

 select format (1234.123456,0); (不保留小数点后面的数)

 select format (1234.123456,3); (保留小数点后三位)

3:INSERT

替换插入

select insert ('xiaobai is a dog',14,3,'cat');

返回的结果为:  xiaobai is a cat

4:INSTR

INSTR (str, substr) 返回字符串str中子字符串第一次出现的位置。

select instr ('xiaobai is a dog','is');

5:LEFT/RIGHT

LEFTLEFTstr, len

返回从字符串str开始的len最左字符串。

 select left ('asdfghjkl',3);

RIGHT (strlen)

返回从字符串str开始的len最右字符串。

 select right ('xiaobai',4);

 

6:LENGTH 

LENGTH (str);返回值为字符串str的长度,单位为字节,一个多字节字符算作多字节。

 select length ('世界');结果为mysql中一个字符占三个字节

注意其与char_length ()的区别:

 select char_length('世界'); 结果为2

7:LTRIM/RTRIM/TRIM

LTRIM (str) :返回字符串str ,左边(引导)空格字符串被删除

select ltrim('   hello');

RTRIM (str) :返回字符串str ,右边(结尾)空格字符串被删除

 select rtrim('   hello   ');

TRIM : (可以设置参数默认去掉两边的空格,字符等)

select trim('  hello  ');

去掉指定字符串前面的字符如下结果为barxxxx

 select trim(leading'x' from 'xxxbarxxxx');

去掉指定字符串后面的字符如下结果为xxxxxbar

 select trim(trailing 'x' from 'xxxxxbarxxxx');

8: STRCMP

若所有的字符串均相同,则返回0,若根据当前分类次序,第一个参数小于第二个,则返回-1,其它情况返回1.

9:CONCAT

返回结果为连接参数产生的字符串。如果任何一个为null则返回值为null

select concat ('My','S','Q','L');

10:SUBSTRING

字符串截取函数 :

 select substring('xiaobai',4); (从第四个开始截取剩余的字符串也可以添加参数获取截取长度)。

也可以指定参数为负数,如下:

 select substring('xiaobai',-3); 表示从后面开始截取长度为三的字符串。

时间日期函数的使用:

1:求指定某一天是周几 (周天是1

 select dayofweek('2015-12-20');

2dayofyear data):

返回data对应的一年中的天数,范围是1366

3select dayofyear('2015-12-20');

4dayofmonth data

返回某一月的天数

5weekday date

返回工作日对应的索引(从06开始(周一为0))

6year & month

求年份:

select year(now());

求月份: select month(now());

quter date

返回date对应的一年中的季度值

select quarter(now());

7Hour minute & second 

select hour(now());

select minute(now());

select second(now());

8curdtate & curtime,now()

Curdate()将当前日期按照yyy-mm-dd yyyymmdd格式的值返回,具体格式根据函数在字符串或数字语句中而定。

yyy-mm-dd形式表示方式返回当前系统时间  

select curdate();

yyyymmdd的方式返回系统当前时间

select curdate()+0;

curtime () 返回当前系统的时分秒时间

select curtime();

now ()

返回完全的时间

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值