• 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
  • 相关阅读:
    scikit-learn算法选择路径图
    mac 添加new file.md
    mac-VBox-Centos6.6安装增强功能
    VirtualBox中安装CentOS使得在ssh和外网都能正常链接
    vboxnetctl: no such file or directory
    mac vim 配色
    埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 B合约数
    codeforces 965E Trie+multiset
    bzoj 4337 树的同构
    codeforces 963B Destruction of a Tree
  • 原文地址:https://www.cnblogs.com/qin-shi-wei/p/13040138.html
Copyright © 2020-2023  润新知