SQL的常用函数

  1. 统计函数:
    count(统计):
    eg.select count(列名) from 表名 where ...;
    如果count的参数是*,代表的是统计符合条件的个数
    如果count的参数是列,需要先过滤该列中NULL的数据
    sum(求和):
    eg.select sum(列名) from 表名 where ...;
    avg(均值)、max(最大值)、min(最小值)用法跟sum是一样的
  2. 分组:
    group by:用于将列的相同的值合并为一组,然后对每一组被合并的数据进行统计(这个是必须的)
    select max(列名) from 表名 group by 列名;
    group by可以跟多个列,依次进行合并,然后进行统计
    如果对分组的列需要进行过滤,可以再跟having进行过滤
    where是对原始数据的过滤,having是对分组处理后的过滤
  3. 常用的字符串相关的函数:
    charset(返回字符串集):
    select charset(列名) from 表名;
    concat(合并字符串):
    select concat(列名,字符串/列名) from 表名;
    可以多列拼接,也可以跟固定的字符串拼接,也可以复合拼接
    instr(返回子字符串的位置,没有返回0):
    select instr(列名,字符串) from 表名;
    ucase(转换为大写)\lcase(转换为小写):
    select ucase(列名) from 表名;
    left\right(从左边\右边起获取n个字符):
    select left(列名,n) from 表名;
    length(获取字符串长度):
    select length(列名) from 表名;
    replace(替换):
    select replace(列名,旧值,新值) from 表名;
    strcmp(比较字符串大小):
    select strcmp(列名,字符串\列名) from 表名;
    substring(从n1位置获取n2个数的子字符串):
    select substring(列名,n1,n2) from 表名;
    ltrim\rtrim(去除前后端的空格):
    select ltrim(列名) from 表名;
  4. 数学函数:
    abs(绝对值):
    bin(十进制转二进制):
    ceiling(向上取整,返回比指定数值大的最小整数):
    floor(向下取整,返回比指定数值小的最大整数)
    select ceiling(列名) from 表名;
    conv(n1进制转换为n2进制)
    select conv(列名,n1,n2) from 表名;
    format(保留小数n位数):
    select format(列名,n) from 表名;
    hex(转十六进制):
    least(最小值):
    mod(求余):
    rand(返回随机数,返回[0,1]):
    如果rand有参数,执行多次所产生的随机数是一样的
  5. 日期函数:
    current_data(当前日期):
    current_time(当前时间):
    current_timestamp(当前时间戳):
    date(返回日期部分):
    date_add(增加日期或者时间):
    select date_add(列名,date) from 表名;
    date_sub(减去日期):
    datediff(两个日期差,返回单位是天):
    from_unixtime(返回按照指定格式的日期,参数一般是10位数):
    select from_unixtime(num,'%Y年%m月%d');
    unix_timestamp(返回从1970-01-01 00:00:00开始的秒数,若无参数,默认此时):
    select unix_timestamp('日期');
    year|month|day|date(返回字符串中相应的日期部分):
  6. 加密和系统函数:
    user(查询用户):
    database(查询数据库名称):
    MD5(算出MD5的32位字符串,常用于密码加密):
    password(另一种加密方式)
  7. 流程控制函数:
    if( 类似三目运算,比较语句为true,返回值1,反之返回值2):
    select if(比较语句,值1,值2) as 新列名 from 表名;
    ifnull(非空判断,值1为null,则返回值2,反之返回值1):
    select if(值1,值2) as 新列名 from 表名;
    case where … then … else … end(条件判断,语句为true,返回值1,反之返回值2,可以带多个where…then语句)
    select case where 语句 then 值1 else 值2 end from 表名;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值