一、学习总结
今天学习了更有难度的语法。
1.学了SELECT,WHERE,运算符,比较符,AS,NOT,AND,OR。
2.学了聚合函数,GROUP BY,ORDER BY,HAVING
注意:1.希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。
2.SQL在使用 HAVING 子句时 SELECT 语句的顺序为:
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY。
如果用了聚合函数,GROUP BY分组要用HAVING。
二、作业答案
ch002
第一题
插入数据
INSERT INTO product VALUES ('0006','叉子','厨房用具',500,NULL,'2009-01-01')
选择数据
SELECT product_name, regist_date
FROM product
WHERE regist_date > '2009-04-28'
第二题
都没有结果,如果想挑选出空值或者不为空值的数据,应该同 IS NULL/IS NOT NULL
SELECT *
FROM product
WHERE purchase_price IS NULL;
第三题
SELECT product_name,sale_price,purchase_price
FROM product
WHERE product_name='T恤衫' OR product_name='运动T恤' OR product_name='高压锅';
----------------------
写法2:
SELECT product_name,sale_price,purchase_price
FROM product
WHERE product_name in ('T恤衫','运动T恤','高压锅')
第四题
SELECT product_name, product_type, sale_price*0.9-purchase_price AS profit
FROM product
WHERE sale_price*0.9-purchase_price> 100;
2.5
WHERE 在group by之前
sum 必须用于数字型的变量,括号是英文括号
group by 的变量要先 SELECT
2.6
SELECT product_type,SUM(sale_price),SUM(purchase_price)
FROM product
GROUP BY product_type
HAVING SUM(sale_price)>SUM(purchase_price)*1.5;
---用了聚合函数以后,就用HAVING,不用WHERE.
COUNT:计算表中的记录数(行数)
SUM:计算表中数值列中数据的合计值
AVG:计算表中数值列中数据的平均值
MAX:求出表中任意列中数据的最大值
MIN:求出表中任意列中数据的最小值
2.7
SELECT *
FROM product
ORDER BY regist_date DESC;