一:select语句基础
一 从表中选取数据
select <列名> from <表名>;
二 从表中获取符合要求的数据
where 子句
select <列名> from <表名> where <条件表达式>;
二:算数比较符和比较运算符
一 算数运算符
+
-
*
/
二 比较运算符
= 相等
<>不等
>=大于等于
> 大于
<= 小于等于
< 小于
三: 逻辑运算符
一 not
select * from tb where not name ="zly"
二 and 和 or
三 括号优先处理
四:练习
1
select product_name,regist_date
from product
where regist > "2009-4-28";
2
①结果为product中所有purchase_price为NULL的值
②结果为product中所有purchase_price不为NULL的值
③结果为product中所有purchase_name不为NULL的值
3
select product_name,sale_price,purchase_price
from product
where (saleprice-purchase_price)>500
4
select product_name,product_type,saleprice*0.9 profit
from product
where (sale_price*0.9-purchase_price)>100;
四:对表的聚合查询
一 聚合函数
- COUNT:计算表中的记录数(行数)
- SUM:计算表中数值列中数据的合计值
- AVG:计算表中数值列中数据的平均值
- MAX:求出表中任意列中数据的最大值
- MIN:求出表中任意列中数据的最小值
-
-- 计算全部数据的行数(包含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;
二 使用聚合函数删除重复值
-- 计算去除重复数据后的数据行数
SELECT COUNT(DISTINCT product_type)
FROM product;
-- 是否使用DISTINCT时的动作差异(SUM函数)
SELECT SUM(sale_price), SUM(DISTINCT sale_price)
FROM product;
五:对表进行分组
一 group by 语句
SELECT <列名1>,<列名2>, <列名3>, ……
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>, ……;
二 聚合键中包含NULL时
将进货单价(purchase_price)作为聚合键举例:
SELECT purchase_price, COUNT(*)
FROM product
GROUP BY purchase_price;
此时会将NULL作为一组特殊数据进行处理
三 书写位置
四 于where 组合使用
select *,count(*)
from product
where price=100
group by type;
六:为聚合查询指定条件
一 使用having 得到特定分组
二 having 特点
七对查询结果排序
一 order by
select *
from tb
order by age;
默认为升序排列,降序排列为DESC
练习
1 where 字句应该在前面
2
select product_type,sum(sale_price) sum,sum(purchase_price) sum
from product
where sale_price>purchase_price*1.5
group by product_type;
3
select *
from product
order by regist_date desc,purchase_price,sale_price;