zoukankan      html  css  js  c++  java
  • 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='女';

  • 相关阅读:
    BZOJ 2005 能量采集
    HDU 2841 Visible Trees(莫比乌斯反演)
    hihocoder 1543
    hihocoder 1311
    hdu 6069
    hdu 6058
    hdu 6034
    拓展欧几里得
    poj 3321
    树状数组总结
  • 原文地址:https://www.cnblogs.com/makalochen/p/10656261.html
Copyright © 2011-2022 走看看