SQL学习_常用函数参考

1. AVG() 函数
    SELECT AVG(column_name) AS xxx FROM table_name
    // 从access_log中选择site_id和count,当count比count平均值大时
    SELECT site_id, count FROM access_log WHERE count > (SELECT AVG(count) FROM access_log);
    
2. count函数
    1)COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
        SELECT COUNT(column_name) FROM table_name;
    2)COUNT(*) 函数返回表中的记录数:
        SELECT COUNT(*) FROM table_name;
    3)返回指定列的不同值的数目:
        SELECT COUNT(DISTINCT column_name) FROM table_name;
        
3. first函数 只有MS Access支持:返回指定的列中第一个记录的值。
    Mysql实现:
    SELECT column_name FROM table_name
    ORDER BY column_name ASC
    LIMIT 1;
    升序排列,只展示第一个
    
4. last函数 返回指定的列中最后一个记录的值。
    Mysql实现:
    SELECT column_name FROM table_name
    ORDER BY column_name DESC
    LIMIT 1;
    
5. MAX函数:返回指定列的最大值。
    SELECT MAX(alexa) AS max_alexa FROM Websites;
    
6. MIN() :函数返回指定列的最小值。
    SELECT MIN(alexa) AS min_alexa FROM Websites;
    
7. SUM() :函数返回数值列的总数。
    SELECT SUM(count) AS nums FROM access_log;
    
8. GROUP BY:用于结合聚合函数,根据一个或多个列对结果集进行分组。
    1)简单应用
    选择id和count,按site_id分组,对不同site_id的count数进行统计
    SELECT site_id, SUM(access_log.count) AS nums
    FROM access_log GROUP BY site_id;
    2)GROUP BY 多表连接
    SELECT Websites.name,COUNT(access_log.aid) AS nums FROM access_log
    LEFT JOIN Websites
    ON access_log.site_id=Websites.id
    GROUP BY Websites.name;
    
9. 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
    HAVING 子句可以让我们筛选分组后的各组数据。
    
    SELECT Websites.name, SUM(access_log.count) AS nums 
    FROM Websites INNER JOIN access_log ON Websites.id=access_log.site_id
    WHERE Websites.alexa < 200 
    GROUP BY Websites.name
    HAVING SUM(access_log.count) > 200;
    
10. UCASE() 函数把字段的值转换为大写。
    SELECT UCASE(column_name) FROM table_name;

11. LCASE() 函数把字段的值转换为小写。
    SELECT LCASE(column_name) FROM table_name;
    
12. MID() 函数用于从文本字段中提取字符。
    // 提取name列的前4个字符
    SELECT MID(name,1,4) AS ShortTitle FROM Websites;
    
13. LENGTH() 函数返回文本字段中值的长度。
    SELECT name, LENGTH(url) as LengthOfURL FROM Websites;
    
14. ROUND() 函数用于把数值字段舍入为指定的小数位数。
    1)ROUND(X): 返回参数X的四舍五入的一个整数。
        mysql> select ROUND(-1.23);
            -> -1
        mysql> select ROUND(-1.58);
            -> -2
        mysql> select ROUND(1.58);
            -> 2
    2)ROUND(X,D): 返回参数X的四舍五入的有 D位小数的一个数字。如果D为0,结果将没有小数点或小数部分。
        mysql> select ROUND(1.298, 1);
            -> 1.3
        mysql> select ROUND(1.298, 0);
            -> 1
            
15. NOW() 函数返回当前系统的日期和时间。
    下面的 SQL 语句从 "Websites" 表中选取 name,url,及当天日期:
    SELECT name, url, Now() AS date FROM Websites;
    
16. FORMAT() 函数用于对字段的显示进行格式化。
    SELECT FORMAT(column_name,format) FROM table_name;
    column_name	必需。要格式化的字段。
    format	必需。规定格式。
    下面的 SQL 语句从 "Websites" 表中选取 name, url 以及格式化为 YYYY-MM-DD 的日期:
    SELECT name, url, DATE_FORMAT(Now(),'%Y-%m-%d') AS date FROM Websites;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值