美文网首页
5.SQL函数

5.SQL函数

作者: LucXion | 来源:发表于2023-04-19 12:51 被阅读0次
    内置函数

    虽然许多的数据库管理系统都遵循SQL语言,但在不同的DBMS中,函数的差异化比较大,SQL语言的可移植性是比较差的。

    内置函数主要可以划分为5个类别:算数函数、字符串函数、日期函数、转换函数、聚集函数,这些函数都需要通过SELECT来执行

    1.算数函数:绝对值、有效数字、取余等

    ABS、MOD、ROUND,参数个数分别是1,2,2,作用为取绝对值,取余,取小数点后的有效位数四舍五入。

    2.字符串函数:计算长度、大小写转换、替换、截取
    // 查询符合筛选条件的数据,如果没用AS,那么列名默认为LENGTH(name)
    SELECT LENGTH(name) AS nameLenth FROM heros WHERE name LIKE '%太%'
    
    3.时间函数:对严格的时间字符串取年月日
    // 可以截获字符串中的时间,但执行条件非常严格,必须是下面这种固定的时间描述字符串,输出结果:2020-03-03
    SELECT DATE('2020-03-03 19:00:12') AS time
    // 在SQLite环境中,下面这段语句会报错
    SELECT EXTRACT(YEAR FROM '2019-04-03')
    
    4.转换函数:类型转换、返回非空
    SELECT CAST (12.123 AS INTEGER)
    SELECT COALESCE (NULL,NULL,3,1)
    

    组合使用示范

    SELECT name,ROUND(attack_growth,2) AS growth FROM heros
    // 返回结果可以对同一个列名做多个操作
    SELECT LENGTH(name), name FROM here's
    // 这个Date是必须要加的,如果不加,你又传错了字段,或者字段不规范,那么这个判断就会总是返回 YES.加了Date字段不规范,总是返回NO;
    SELECT * FROM heros WHERE DATE(birthdate)>'2016-10-01'
    
    5.聚集函数:聚集函数是对一组数据进行汇总,然后输出单个值。聚集函数有5个,分别是count、max、min、sum、avg。
    // count计算数量,count + role_assist 意味着只统计role_assist有值的行
    SELECT COUNT(role_assist) FROM heros WHERE hp_max > 6000
    // 使用多个聚集函数并用前面的数据表进行验证。
    SELECT name ,hp_max FROM heros WHERE name LIKE '%太%';
    SELECT COUNT(name),AVG(hp_max),MAX(hp_max) FROM heros WHERE name LIKE '%太%';
    // 聚集函数的嵌套使用,从内到外一次执行
    SELECT ROUND(AVG(DISTINCT hp_max), 2) FROM heros
    
    /*
    count (*)代表返回全部
    */
    // 相当于 SELECT COUNT(*) AS role_assist FROM heros; 
    SELECT COUNT(*) role_assist FROM heros; 
    // 只有 role_assist 有值才会进入统计,并对返回的结果根据role_assist的不同进行分组
    SELECT COUNT(role_assist) FROM heros GROUP BY role_assist;
    // 上面两句的集合
    SELECT COUNT(*) role_assist FROM heros GROUP BY role_assist;
    

    注意:聚集函数会忽略NULL ,MAX、MIN函数可以对字母进行大小比较。

    相关文章

      网友评论

          本文标题:5.SQL函数

          本文链接:https://www.haomeiwen.com/subject/quphjdtx.html