- SQL函数说明
SQL函数说明
- 使用AVG()函数。
AVG()函数返回数值列的平均值。AVG()语法如下。
SELECT AVG(column_name) FROM table_name
SELECT AVG(column_name) FROM table_name;
a. 执行如下SQL语句,在Test数据库中创建数据表access_log。
CREATE TABLE access_log
(aid
int(11) NOT NULL AUTO_INCREMENT,site_id
int(11) NOT NULL DEFAULT '0' COMMENT '网站id',count
int(11) NOT NULL DEFAULT '0' COMMENT '访问次数',date
date NOT NULL,
PRIMARY KEY (aid
)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
b. 执行如下SQL语句,向数据表access_log插入数据。
INSERT INTO access_log
VALUES ('1', '1', '45', '2016-05-10'), ('2', '3', '100', '2016-05-13'), ('3', '1', '230', '2016-05-14'), ('4', '2', '10', '2016-05-14'), ('5', '5', '205', '2016-05-14'), ('6', '4', '13', '2016-05-15'), ('7', '3', '220', '2016-05-15'), ('8', '5', '545', '2016-05-16'), ('9', '3', '201', '2016-05-17');
c. 执行如下SQL语句,从access_log数据表的count列获取平均值。
SELECT AVG(count) AS CountAverage FROM access_log;
返回结果如下。
- 使用COUNT()函数 。
COUNT()函数返回匹配指定条件的行数。COUNT()函数有三种语法,如下所示。
COUNT(column_name)语法 :COUNT(column_name)函数返回指定列的值的数目(NULL不计入)。
SELECT COUNT(column_name) FROM table_name;
COUNT() 语法 COUNT() :函数返回表中的记录数。
SELECT COUNT(*) FROM table_name;
COUNT(DISTINCT column_name)语法 :COUNT(DISTINCT column_name)函数返回指定列的不同值的数目 。
SELECT COUNT(DISTINCT column_name) FROM table_name;
测试方法如下:
a. 执行如下SQL语句,计算access_log数据表中site_id=3的总访问量。
SELECT COUNT(count) AS nums FROM access_log WHERE site_id=3;
返回结果如下。
b. 执行如下SQL语句,计算access_log数据表中总记录数。
SELECT COUNT(*) AS nums FROM access_log;
返回结果如下。
c. 执行如下SQL语句,计算access_log数据表中不同site_id的记录数。
SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;
返回结果如下。
- 使用MAX()函数 。
MAX()函数返回指定列的最大值。MAX()语法 如下。
SELECT MAX(column_name) FROM table_name;
执行如下SQL语句,获取web数据表中rank列的最大值。
SELECT MAX(rank) AS max_rank FROM web;
- 使用MIN()函数 。
MIN()函数返回指定列的最小值。MIN()语法 如下。
SELECT MIN(column_name) FROM table_name;
执行如下SQL语句,获取web数据表中rank列的最小值。
SELECT MIN(rank) AS min_rank FROM web;
返回结果如下。
- 使用SUM()函数 。
SUM()函数返回数值列的总数。SUM()语法 如下。
SELECT SUM(column_name) FROM table_name。
执行如下SQL语句,获取access_log数据表的count字段的总数。
SELECT SUM(count) AS nums FROM access_log;
- 使用GROUP BY语句。
GROUP BY语句用于结合聚合函数,根据一个或多个列对结果集进行分组。GROUP BY语法如下。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
执行如下SQL语句,获取access_log数据表各个site_id的访问量。
SELECT site_id, SUM(access_log.count) AS nums
FROM access_log GROUP BY site_id;
- 使用EXISTS运算符。
EXISTS运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回False。EXISTS语法 如下。
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
执行如下SQL语句,查找查找count字段大于200的网站是否存在。
SELECT web.name, web.url
FROM web