MySQL中的内置函数

内置函数

先创建一个表,并添加如下信息

create table student1(
id char(1) primary key,
name varchar(8),
sex char(2) default '男' ,
age int(3) default 0
)
 
insert into student values ('1','王明','男',18);
insert into student values ('2','孙丽','女',17);
insert into student values ('3','王明','男',27);
insert into student (id,sex,age) values ('4','男',27);

多行函数

多行函数可以操作成组的多条数据,每组返回一个结果,所以多行函数又称之为组函数,常见的多行函数有
1,count(),计数

select count(age) from student1

输出结果为
在这里插入图片描述
2,max():求最大值

select max(age) from student1
在这里插入图片描述
3,min():求最小值

select min(age) from student1

输出结果为
在这里插入图片描述
4,avg():求平均数

select avg(age) from student1

输出结果为
在这里插入图片描述
5,sum():求和

select sum(age) from student1	

输出结果为
在这里插入图片描述
注意:count、max和min组函数操作的数据的数据类型可以是char、varchar、int或date,但不能为clob;avg、sum仅能用在数字类型的数据上。

单行函数

单行函数仅对单条数据中的列进行操作并且返回一个结果,常见的单行函数有:
1,length(),返回字符长度。汉字代表3个字符,非汉字代表一个

select length(name) from student1	

输出结果为
在这里插入图片描述
2,char_length() ,返回字符长度,一个汉字代表一个字符,非汉字也代表一个字符。

select char_length(name) from student1;	

输出结果为
在这里插入图片描述
3,concat(), concat_ws(),都为拼接函数,将某几个字段在一列输出

select concat(id,',',name) from student1;	#','是连接

输出结果为
在这里插入图片描述
对下边查询语句

select concat(id,',',name,',',sex) from student1;

有一种简便写法

select concat_ws(',',id,name,sex) from student1;

两者输出结果相同,如下
在这里插入图片描述
4, reverse() ;#字符反转函数

select reverse(name) from student1;	

在这里插入图片描述
5,trim(),函数,去掉左右空格
先添加一条数据

insert into student1 values ('6','   王明','男',27);		#'   王明'中有空格

用如下语句查询

select trim(name) from student1;	#trim()函数去掉两端空格

在这里插入图片描述
6,replace() 替换函数

select replace(name,'_','%') from student1;

在这里插入图片描述
7,substr(),截取字符串,下标从1开始,语法为(value,begin[,length])

select substr('ahjielw',2,3) from dual;	#dual为MySQL中默认的表,2表示从第二个数开始,3表示截取三个字符

输出结果为
在这里插入图片描述
8,strcmp()函数,匹配字符串,匹配返回0

select name,strcmp(name,'孙丽') from student1;

在这里插入图片描述
9,mod(x,y),取余函数

select mod(1,3) from dual;	

在这里插入图片描述
select mod(1,3) #from dual可以省
10, round(x,y)
round(x,y),四舍五入函数。返回参数x的四舍五入值,该值有y位小数;不指定第二个参数,则默认为0;

select round(1.58,0) from dual;	

在这里插入图片描述

select round(1.58,1) from dual;	

在这里插入图片描述
11, truncate(x,y)
返回数字x截断后的结果,该值有y位小数;

select truncate(1.58,0) 

在这里插入图片描述

select truncate(1.58,1)

在这里插入图片描述,
12,有关时间的函数
1) now():获得当前日期+时间

select now(); 
查询当前时间

在这里插入图片描述

2)date_format(date,format):获取指定格式的日期

select date_format(now(),'%Y-%m-%d') 	#得到年月日

在这里插入图片描述
3)datediff(date1,date2):返回(date1-date2)天;

select datediff(now(),'2019-05-02')	#当前日期为5月10号

在这里插入图片描述
4)timediff(time1,time2):返回time1-time2,注意:函数的两个参数类型必须相同

 select timediff(now(),'2019-01-14 00:00:00');    

在这里插入图片描述
13,convert(value,type):将value转换为type类型, signed(整型)

select convert('111',signed)+111

在这里插入图片描述
14,
先添加一条数据

insert into student1 values('5',null,'女','17')

1)if(expr1,expr2,expr3): expr1为TRUE,返回expr2,否则返回expr3

select if(name is null,'未知',name) from student1;

在这里插入图片描述
2)ifnull(expr1,expr2):expr1不是NULL,返回expr1,否则返回expr2。

select ifnull(name,'未知') from student1 .  

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值