目录
第二章 查询基础
2-1 SELECT语句基础
注释
- 1行注释
书写在“--”之后,只能写在同一行,MySQL中需要在“--”之后加入半角空格(如果不加的话就不会
被认为是注释)
- 多行注释
书写在“/*”和“*/”之间,可以跨多行
2-2算术运算符和比较运算符
+ - * / ()
SELECT product_name, sale_price,
sale_price * 2 AS "sale_price_x2"
FROM Product;
- 只有 NULL 除以 0 时不会发生错误,并且结果还是 NULL
比较运算符
字符串比较
典型的规则就是按照字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行
排序。
不能对NULL使用比较运算符
可使用 IS 或 IS NOT
WHERE purchase_price IS NULL;
2-3 逻辑运算符
NOT
AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其意思相当于“并且”。
OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立,其意思相当于“或者”
SQLServer中带中文的字符串用NVARCHAR,NCHAR(30)不够的话后面有空格,VCHAR显示不出来中文
AND运算符的优先级高于OR运算符。想要优先执行OR运算符时可以使用括号。
第3章 聚合与排序
3-1 对表进行聚合查询
聚合函数
- COUNT:计算表中的记录数(行数)
SELECT COUNT(*) as count from Product;
计算NULL之外的数据的行数,purchase_price为NULL将不统计
SELECT COUNT(purchase_price) AS count FROM Product;
- SUM: 计算表中数值列中数据的合计值
SELECT SUM(sale_price), sum(purchase_price) FROM Product;
- AVG: 计算表中数值列中数据的平均值
SELECT AVG(sale_price) FROM Product;
- MAX: 求出表中任意列中数据的最大值
- MIN: 求出表中任意列中数据的最小值
使用聚合函数删除重复值(关键字DISTINCT)
计算出商品种类的个数:
SELECT COUNT(DISTINCT product_type) FROM Product;
价格去重后求和:
SELECT SUM(sale_price), SUM(DISTINCT sale_price) FROM Product;
3-2 对表进行分组
GROUP BY子句
按照商品种类统计数据行数
SELECT product_type, COUNT(*) FROM Product GROUP BY product_type;
使用WHERE子句时GROUP BY的执行结果
SELECT purchase_price, COUNT(*) FROM Product WHERE product_type = '衣服' GROUP BY purchase_price;
▲
GROUP BY 和 WHERE 并用时 SELECT 语句的执行顺序
FROM → WHERE → GROUP BY → SELECT