先创建三张表并添加数据:
- 顾客表:
CREATE TABLE IF NOT EXISTS `customer` (`user_id` INT AUTO_INCREMENT COMMENT '顾客id',`username` VARCHAR( 255 ) NULL COMMENT '顾客名称',`telephone` VARCHAR( 255 ) NULL COMMENT '顾客电话',PRIMARY KEY ( `user_id` ) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO customer (`user_id`, `username`, `telephone`) VALUES (1, 'zxzxz', '1327');
INSERT INTO customer (`user_id`, `username`, `telephone`) VALUES (2, 'youku1327', '1996');
- 商品表
CREATE TABLE IF NOT EXISTS `product` (`product_id` INT AUTO_INCREMENT COMMENT '商品id',`product_name` VARCHAR ( 255 ) NULL COMMENT '商品名称',`price` VARCHAR ( 255 ) NULL COMMENT '商品价格',PRIMARY KEY ( `product_id` ) );INSERT INTO product ( `product_id`, `product_name`, `price` ) VALUES ( 1, '苹果', '5' );
INSERT INTO product ( `product_id`, `product_name`, `price` ) VALUES ( 2, '梨', '4' );
INSERT INTO product ( `product_id`, `product_name`, `price` ) VALUES ( 3, '香蕉', '3' );
- 订单表
CREATE TABLE IF NOT EXISTS `order` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT'订单id',
`user_id` INT NULL COMMENT '客户id',
`product_id` INT NULL COMMENT '商品id',
`order_name` VARCHAR(255) NULL COMMENT '订单名称',
PRIMARY KEY (`id`)
);INSERT INTO `order` (`id`, `user_id`, `product_id`, `order_name`) VALUES(1, 1, 1, '乖乖订单');
INSERT INTO `order` (`id`, `user_id`, `product_id`, `order_name`) VALUES(2, 2, 2, '悦悦订单');
INSERT INTO `order` (`id`, `user_id`, `product_id`, `order_name`) VALUES(3, 1, 3, '可可订单');
聚集函数的定义:将一些行的数据运行某些函数,返回一个期望值。
1. avg()
平均值
avg()
函数计算行的数量,通过计算这些行的特定列值和,计算出平均值(特定列值之和/行数=平均值)。使用时注意其会忽略列值为null
的行:
SELECT AVG(price) FROM product;
-
语句分析:查询价格平均值来自商品表
(5+4+3)/3=4
; -
结果:
2. count()
计算行数
count()
函数计算行数,count(*)
计算所有行的数目,count("column")
会忽略column
为NULL
的行数:
SELECT count(*) FROM product;
-
语句分析:查询总函数来自商品表
-
结果:
3. max()
列值的最大值
max()
函数返回特定列值的最大值,忽略特定列为NULL
的行:
SELECT MAX(price) FROM product;
-
语句分析:查询价格的最大值来自商品表
-
结果:
4. min()
列值的最小值
min()
函数返回特定列的最小值,忽略特定列为NULL
的行:
SELECT MIN(price) FROM product;
-
语句分析:查询价格的最小值来自商品表
-
结果:
5. sum()
特定列的和
sum()
返回特定列的和,忽略特定列为NULL
的行:
SELECT SUM(price) FROM product;
-
语句分析:查询价格的总和来自商品表
-
结果: