zoukankan      html  css  js  c++  java
  • Mysql常用sql函数

    SQL Aggregate 函数

    SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

    有用的 Aggregate 函数:

    • AVG() - 返回平均值
    • COUNT() - 返回行数
    • FIRST() - 返回第一个记录的值
    • LAST() - 返回最后一个记录的值
    • MAX() - 返回最大值
    • MIN() - 返回最小值
    • SUM() - 返回总和

    AVG() 函数

    AVG() 函数返回数值列的平均值。

    SELECT AVG(column_name) FROM table_name

    COUNT() 函数

    COUNT() 函数返回匹配指定条件的行数。

    COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

    SELECT COUNT(column_name) FROM table_name;

    COUNT(*) 函数返回表中的记录数(不会忽略列值为NULL的记录):

    SELECT COUNT(*) FROM table_name;

    COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目(NULL 不计入):

    SELECT COUNT(DISTINCT column_name) FROM table_name;

    InnoDB 引擎以同样的方式处理 SELECT COUNT(*) 和 COUNT(1),两者没有性能差异。 

    MyISAM引擎,当第一列定义为 NOT NULL 时,COUNT(1) 和 COUNT(*) 具有相同的查询性能。

     

    MAX() 函数

    MAX() 函数返回指定列的最大值。

    SELECT MAX(column_name) FROM table_name;

    MIN() 函数

    MIN() 函数返回指定列的最小值。

    SELECT MIN(column_name) FROM table_name;

    SUM() 函数

    SUM() 函数返回数值列的总数。

    SELECT SUM(column_name) FROM table_name;

    GROUP BY 语句

    GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。

    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name;

    例子:

    SELECT site_id, SUM(access_log.count) AS nums
    FROM access_log GROUP BY site_id;

    SQL Scalar 函数

    SQL Scalar 函数基于输入值,返回一个单一的值。

    有用的 Scalar 函数:

    • UCASE() - 将某个字段转换为大写
    • LCASE() - 将某个字段转换为小写
    • MID() - 从某个文本字段提取字符
    • LEN() - 返回某个文本字段的长度
    • ROUND() - 对某个数值字段进行指定小数位数的四舍五入
    • NOW() - 返回当前的系统日期和时间
    • FORMAT() - 格式化某个字段的显示方式

    HAVING 子句

    在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

    HAVING 子句可以让我们筛选分组后的各组数据。

    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name
    HAVING aggregate_function(column_name) operator value;

    例子:

    SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
    INNER JOIN Websites
    ON access_log.site_id=Websites.id)
    GROUP BY Websites.name
    HAVING SUM(access_log.count) > 200;

    UCASE() 函数

    UCASE() 函数把字段的值转换为大写。

    SELECT UCASE(column_name) FROM table_name;

    LCASE() 函数

    LCASE() 函数把字段的值转换为小写。

    SELECT LCASE(column_name) FROM table_name;

    MID() 函数

    MID() 函数用于从文本字段中提取字符。

    SELECT MID(column_name,start[,length]) FROM table_name;
    • column_name:必需。要提取字符的字段。
    • start:必需。规定开始位置(起始值是 1)。
    • length:可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

    LEN() 函数

    LEN() 函数返回文本字段中值的长度。

    SELECT LEN(column_name) FROM table_name;

    MySQL 中函数为 LENGTH():

    SELECT LENGTH(column_name) FROM table_name;

    ROUND() 函数

    ROUND() 函数用于把数值字段舍入为指定的小数位数。

    ROUND(X): 返回参数X的四舍五入的一个整数。

    mysql> select ROUND(-1.23);
            -> -1
    mysql> select ROUND(-1.58);
            -> -2
    mysql> select ROUND(1.58);
            -> 2

    ROUND(X,D): 返回参数X的四舍五入的有 D 位小数的一个数字。如果D为0,结果将没有小数点或小数部分。

    mysql> select ROUND(1.298, 1);
            -> 1.3
    mysql> select ROUND(1.298, 0);
            -> 1

    NOW() 函数

    NOW() 函数返回当前系统的日期和时间。

    SELECT NOW() FROM table_name;

    NULLIF()函数

    NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

    SELECT NULLIF('A','A'); -- 输出结果:null
    SELECT NULLIF('A','B'); -- 输出结果:A

    ISNULL()函数

    ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

    SELECT ISNULL(NULL); -- 输出结果:1
    SELECT ISNULL('HELLO'); -- 输出结果:0
  • 相关阅读:
    全文检索原理
    UBER的故事
    grails 优缺点分析
    微博轻量级RPC框架Motan
    基于redis 实现分布式锁的方案
    eggjs中cache-control相关问题
    mysql导入导出数据
    jenkins项目用户权限相关
    jenkins+gogs,服务随代码更新
    js/nodejs导入Excel相关
  • 原文地址:https://www.cnblogs.com/qin-shi-wei/p/13040138.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com