Day2:mysql数据库的基础查询与排序

select

`select <column>

from <table>;`

where

`
SELECT <列名>, ……

  FROM <表名>

 WHERE <条件表达式>;`

算术运算符

 加:+
 减:-
 乘:*
 除:/

比较运算符

=  和 ~ 相等
<> 和 ~ 不相等
>= 大于等于~ 
>  大于~
<= 小于等于 ~
<小于 ~

-- 计算全部数据的行数(包含NULL)

聚合函数

SELECT COUNT(*)
  FROM product;
-- 计算NULL以外数据的行数
SELECT COUNT(purchase_price)
  FROM product;
-- 计算销售单价和进货单价的合计值
SELECT SUM(sale_price), SUM(purchase_price) 
  FROM product;
-- 计算销售单价和进货单价的平均值
SELECT AVG(sale_price), AVG(purchase_price)
  FROM product;
-- MAX和MIN也可用于非数值型数据
SELECT MAX(regist_date), MIN(regist_date)
  FROM product;
COUNT:计算表中的记录数(行数)
SUM:计算表中数值列中数据的合计值
AVG:计算表中数值列中数据的平均值
MAX:求出表中任意列中数据的最大值
MIN:求出表中任意列中数据的最小值
包含null和不包含null的情况

– 计算全部数据的行数(包含NULL)
SELECT COUNT(*)
FROM product;
– 计算NULL以外数据的行数SELECT COUNT(purchase_price)
FROM product;
– 计算销售单价和进货单价的合计值

使用distinct剔除重复值计数

– 计算去除重复数据后的数据行数
SELECT COUNT(DISTINCT product_type)
FROM product;

总结

  • COUNT函数的结果根据参数的不同而不同。 COUNT(*)会得到包含NULL的数据行数,而COUNT(<列名>)会得到NULL之外的数据行数。
  • 聚合函数会将NULL排除在外。但COUNT(*)例外,并不会排除NULL。
  • MAX/MIN函数几乎适用于所有数据类型的列。SUM/AVG函数只适用于数值类型的列。
  • 想要计算值的种类时,可以在COUNT函数的参数中使用DISTINCT。
  • 在聚合函数的参数中使用DISTINCT,可以删除重复数据。

having和where的区分

HAVING子句用于对**分组**进行过滤,可以使用数字、聚合函数和GROUP BY中指定的列名(聚合键);
WHERE子句用户对**行数据**进行过滤

排序order by

顺序排序:oder by
逆序排序: order by desc

语法执行顺序

前文讲GROUP BY中提到,GROUP BY 子句中不能使用SELECT 子句中定义的别名,但是在 ORDER BY 子句中却可以使用别名。为什么在GROUP BY中不可以而在ORDER BY中可以呢?
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

其中SELECT的执行顺序在 GROUP BY 子句之后,ORDER BY 子句之前。也就是说,当在ORDER BY中使用别名时,已经知道了SELECT设置的别名存在,但是在GROUP BY中使用别名时还不知道别名的存在,所以不能在ORDER BY中可以使用别名,但是在GROUP BY中不能使用别名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值