MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
汇总数据
一、聚集函数
1.AVG()函数
AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。AVG()可以返回所有列的平均值,也可以用来返回特定列或行的平均值。
SELECT AVG(prod_price) AS avg_price FROM products;
此语句的输出如下图所示:
AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。
2.COUNT()函数
COUNT()函数进行计数。可利用COUNT()函数确定表中行的数目或者符合特定条件的行的数目。
COUNT()函数有两种使用方式:
(1)使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
(2)使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
SELECT COUNT(*) AS num_cust FROM customers;
此语句的输出如下图所示:
3.MAX()函数
MAX()返回指定列中的最大值。MAX()要求指定列名。
SELECT MAX(prod_price) AS max_price FROM products;
此语句的输出如下图所示:
4.MIN()函数
MIN()返回指定列中的最小值。MIN()要求指定列名。
SELECT MIN(prod_price) AS min_price FROM products;
此语句的输出如下图所示:
5.SUM()函数
SUM()函数用来指定列值的总和。
SELECT SUM(quantity) AS items_ordered FROM orderitems WHERE order_num=20005;
此语句的输出如下图所示:
二、聚集不同值
只包含不同的值,指定DISTINCT参数。
SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id=1003;
此语句的输出如下图所示:
三、组合聚集函数
SELECT COUNT(*) AS num_items,MIN(prod_price) AS price_min, MAX(prod_price) AS max_price,AVG(prod_price) AS price_avg FROM products;
此语句的输出如下图所示:
分组数据
一、创建分组
分组是在SELECT语句的GROUP BY子句中建立的。
SELECT vend_id,COUNT(*)AS num_prods FROM products GROUP BY vend_id;
此语句的输出如下图所示:
二、过滤分组
HAVING非常类似于WHERE。唯一的差别就是WHERE过滤行,而HAVING过滤分组。
SELECT cust_id,COUNT(*)AS orders FROM orders GROUP BY cust_id HAVING COUNT(*)>=2;
此语句的输出如下图所示:
SELECT vend_id,COUNT(*) AS num_prods FROM products WHERE prod_price>=10 GROUP BY vend_id HAVING COUNT(*)>=2;
此语句的输出如下图所示: