SQL 数据库 函数

1 平均值 AVG ()

SELECT AVG(count) AS CountAverage FROM access_log;

下面的 SQL 语句选择访问量高于平均访问量的 "site_id" 和 "count":

SELECT site_id, count FROM access_log
WHERE count > (SELECT AVG(count) FROM access_log);

2 行数 COUNT ()

下面的 SQL 语句计算 "access_log" 表中总记录数:

SELECT COUNT(*) AS nums FROM access_log;
下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:

SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;


3 第一个记录的值  FIRST ()

SELECT name AS FirstSite FROM Websites LIMIT 1;


最后一个记录的值 LAST ()

SELECT name FROM Websites
ORDER BY id DESC
LIMIT 1;


最大值 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 

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

9 HAVING 

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

现在我们想要查找总访问量大于 200 的网站。

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;
现在我们想要查找总访问量大于 200 的网站,并且 alexa 排名小于 200

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 ()

下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "url" 列,并把 "name" 列的值转换为大写:

SELECT UCASE(name) AS site_title, url
FROM Websites;

11 转换为小写 LCASE ()

下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "url" 列,并把 "name" 列的值转换为小写:

SELECT LCASE(name) AS site_title, url
FROM Websites;


12 从文本字段中提取字符 MID ()

下面的 SQL 语句从 "Websites" 表的 "name" 每列中提取前 4 个字符:

SELECT MID(name,1,4) AS ShortTitle
FROM Websites;

13  返回文本字段中值的长度 LEN ()

下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "url" 列中值的长度:

SELECT name, LENGTH(url) as LengthOfURL
FROM Websites;


14 把数值字段舍入为指定的小数位数 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


15 返回当前系统的日期和时间 NOW ( )

下面的 SQL 语句从 "Websites" 表中选取 name,url,及当天日期:

SELECT name, url, Now() AS date
FROM Websites;

16 对字段的显示进行格式化 FORMAT ( )

下面的 SQL 语句从 "Websites" 表中选取 name, url 以及格式化为 YYYY-MM-DD 的日期:

SELECT name, url, DATE_FORMAT(Now(),'%Y-%m-%d') AS date
FROM Websites;












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值