SQL语法以及语句的基本用法(5)

1. SQL 函数

SQL Aggregate 函数

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

  • AVG() - 返回平均值

  • COUNT() - 返回行数

  • FIRST() - 返回第一个记录的值

  • LAST() - 返回最后一个记录的值

  • MAX() - 返回最大值

  • MIN() - 返回最小值

  • SUM() - 返回总和

2. AVG() 函数

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

下面是选自 "access_log" 表的数据:

+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   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 |
+-----+---------+-------+------------+

下面的 SQL 语句从 "access_log" 表的 "count" 列获取平均值:

实例
SELECT AVG(count) AS CountAverage FROM access_log;

执行以上 SQL 输出结果如下:

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

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

执行以上 SQL 输出结果如下:

3. SQL COUNT() 函数

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

下面是选自 "access_log" 表的数据:

+-----+---------+-------+------------+| 
aid | site_id | count | date       
|+-----+---------+-------+------------+|  
 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 |
+-----+---------+-------+------------+

SQL COUNT(column_name) 实例

下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:

实例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;

SQL COUNT(*) 实例

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

实例
SELECT COUNT(*) AS nums FROM access_log;

执行以上 SQL 输出结果如下:

SQL COUNT(DISTINCT column_name) 实例

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

实例
SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;

执行以上 SQL 输出结果如下:

4. SQL FIRST() 函数

FIRST() 函数返回指定的列中第一个记录的值。

SQL FIRST() 语法

SELECT FIRST(column_name) FROM table_name;

注释:只有 MS Access 支持 FIRST() 函数。

在本教程中,我们将使用 RUNOOB 样本数据库。下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 阿里云大学      | http://edu.aliyun.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  6 | 百度         | https://www.baidu.com/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

SQL FIRST() 实例下面的 SQL 语句选取 "Websites" 表的 "name" 列中第一个记录的值:

实例
SELECT name AS FirstSite FROM Websites LIMIT 1;

执行以上 SQL 结果如下所示:

5. LAST() 函数

LAST() 函数返回指定的列中最后一个记录的值。SQL LAST() 语法

SELECT LAST(column_name) FROM table_name;

注释:只有 MS Access 支持 LAST() 函数。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 阿里云大学      | http://edu.aliyun.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  6 | 百度         | https://www.baidu.com/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

下面的 SQL 语句选取 "Websites" 表的 "name" 列中最后一个记录的值:

实例
SELECT name FROM Websites
ORDER BY id DESC
LIMIT 1;

执行以上 SQL 结果如下所示:

6. SQL MAX() 函数

返回指定列的最大值。

SQL MAX() 语法

SELECT MAX(column_name) FROM table_name;

在本教程中,我们将使用 RUNOOB 样本数据库。下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name  | url    | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 阿里云大学      | http://edu.aliyun.com/    | 5000  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  6 | 百度         | https://www.baidu.com/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

SQL MAX() 实例

下面的 SQL 语句从 "Websites" 表的 "alexa" 列获取最大值:

实例
SELECT MAX(alexa) AS max_alexa FROM Websites;

执行以上 SQL 结果如下所示:

7. SQL MIN() Function

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

SELECT MIN(column_name) FROM table_name;

在本教程中,我们将使用 RUNOOB 样本数据库。下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name   | url                             | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 阿里云大学      | http://edu.aliyun.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN   |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  6 | 百度         | https://www.baidu.com/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

下面的 SQL 语句从 "Websites" 表的 "alexa" 列获取最小值:

实例
SELECT MIN(alexa) AS min_alexa FROM Websites;

执行以上 SQL 结果如下所示:

8. SQL SUM() 函数

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

SELECT SUM(column_name) FROM table_name;

在本教程中,我们将使用 RUNOOB 样本数据库。下面是选自 "access_log" 表的数据:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   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 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)

下面的 SQL 语句查找 "access_log" 表的 "count" 字段的总数:

实例
SELECT SUM(count) AS nums FROM access_log;

执行以上 SQL 输出结果如下:

猜你喜欢

转载自blog.csdn.net/qq_20799821/article/details/103189952