MySQL要不要用函数_2.mysql函数的使用

mysql中的函数:

ifnull(x,y)

concat(a,b,c)

文本函数:

left(字段,n) : 截取字段前面n个字符

例: 查询学生表中每个学生的姓名和姓

select sname,left(sname,1) from t_student;

right(字段,n) : 截取字段后面n个字符

例: 学生英文的第3个字符

select sename, right(left(sename,3),1) from t_student;

length(字段) 查询这个字段的长度

select sname,length(sname) from t_student;

Locate(sub,str) : 返回sub在str中出现的位置(类似于java的indexOf)

lower(str) : 将str中的字母全部转小写

upper(str) : 将str中的字母全部大写

REVERSE(s):将字符s反转

select sename ,reverse(sename) from t_student;

substring(str,pos,len):截取str中的子字符串从pos开始 一共截取len长度

时间日期函数:

curdate() CURRENT_DATE() ; : 这个函数不需要参数,而且跟表没有关系

例: 查询系统日期: select curdate();

insert into t_student(sid,sname,sdate) values(1,'abc',curdate());

获取系统时间 curtime();

获取系统日期时间 now();

month(date) 返回date中的月份,方法的参数是一个日期

例: 查询每个学生的姓名,及他出生的月份

select sname,month(sbir) from t_student;

select MONTHNAME(now());

DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

select dayname(now()),dayofweek(now()),weekday(now()) from t_student;

select WEEKOFYEAR(now());

DAYOFYEAR(d)

例: 查询每个学生的姓名,生日,及生日是当前年的第多少天

select sname,sbir,dayofyear(sbir) from t_student;

adddate(sbir,100) 100天以后是什么日期

addtime(s,100) : 100秒以后是什么时间

select adddate(now(),100);

datediff(date1,date2);返回两个日天间隔多少天

timediff(time1,time2) :返回两个时间间隔多少秒

datediff(now(),sbir);

DATE_FORMAT(date,format) : 将一个日期时间 按照format格式来打印

例: 查询每个学生的姓名和生日,生日按照(****年**月**日)

select sname,date_format(sbir,'%d日-%m月-%Y年') from t_student;

select date_format(now(),'%Y年+%m月') as 日期;

聚集函数 一共5个:

count max min avg sum

用法: 函数名(字段) .

聚集函数返回的只有一个值。不能使用聚集在where中筛选。因为在筛选之前

聚集函数的值要先找到。

在非分组语句中,聚集函数不能跟普通字段一起使用。

count是统计一共多少行,跟里面的数据没有关系。

select max(sscore) from t_student;

例: 查询3班学生中最大的年龄

select max(sage) from t_student where sclass=3;

例: 查询表中年龄最大的学生的姓名

//select max(sage),sname from t_student ;

//select max(sscroe),sname from t_student;

例: 求2班的男生的平均年龄:

select avg(sage) from t_student where sclass=2 and ssex='男';

例: 求表中最大分数、最小分、平均分。

select max(sscore),min(sscore),avg(sscore) from t_student;

select sum(sage) from t_student;

select sage/sum(sage) from t_student;

//一共多少行a 每一页多少行b 一共分了多少页c 当前在几页d

select * from t_student limit (d-1)*b,b :

例: 统计表中有多少个姓名

select count(sname) from t_student;

select count(distinct sclass) from t_student;

例: 统计表中一共多少行数据

select count(*) from t_student;

统计表中一共多少个女生:

select count(*) from t_student where ssex='女';

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值