【Datawhale202208】SQL编程-Task 02

  • ch02: 基础查询与排序

        分成小节分别讲了:

  1. select 语句 - 从表中选取数据 【 select <列名> from <表名>;】
  2. where 语句 - 从表中选取符合条件的数据【 select <列名> from <表名> where <条件表达式>;】
  3. 四种主要算术运算符【+ - * /】
  4. 常见比较运算符【=  <>  <=  >=  <  >】
  5. 逻辑运算符【not  and  or,优先级 not > and > or】
  6. 用真值表来梳理条件复杂语句的逻辑关系
  7. 五个常用聚合函数【sum  avg  max  min  count】
  8. 使用 distinct 进行删除重复值的聚合运算 【select count(distinct <列名>) from <表名> 】
  9. group by 语句 - 对表进行分组 【 SELECT <列名1>,<列名2>, <列名3>, …… FROM <表名> GROUP BY <列名1>, <列名2>, <列名3>, ……;】【子句书写顺序 1.SELECT ➡️ 2. FROM ➡️ 3. WHERE ➡️ 4. GROUP BY】
  10. having 语句 - 为聚合结果指定条件,得到特定分组 【HAVING 子句必须与 GROUP BY 子句配合使用,且限定的是分组聚合结果,WHERE 子句是限定数据行(包括分组列)】
  11. order by - 对查询结果进行排序【SELECT <列名1>, <列名2>, <列名3>, ……FROM <表名> ORDER BY <排序基准列1> [ASC, DESC], <排序基准列2> [ASC, DESC], ……】【参数 ASC 表示升序排列,DESC 表示降序排列,默认为升序】
  12. null值 - 【MySQL中,NULL 值被认为比任何 非NULL 值低】【对于数字或者日期类型,可以在排序字段前添加一个负号(minus)来得到反向排序】【is null / isnull()】【!isnull()、COALESCE 函数】

  • 练习题

2.1

select product_name , regist_date 
from product
where regist_date > '2009-04-28';

2.2

结果都是返回六个列并且值都为N/A

2.3

/*已知结果,直接按照产品名字筛选*/

select product_name , sale_price , purchase_price 
from product
where product_name = 'T恤' or product_name = '运动T恤' or product_name = '高压锅';

/*换种运算方式*/

select product_name , sale_price , purchase_price 
from product
where purchase_price + 500 <= sale_price ;

2.4

select product_name , product_type , sale_price * 0.9 - purchase_price as "profit"
from product;

 2.5

(1)WHERE子句写在了GROUP BY后面;
(2)在聚合函数的SELECT子句中写了聚合键以外的列使用COUNT等聚合函数时,SELECT子句中如果出现列名,只能是GROUP BY子句中指定的列名

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;

2.7

/*找规律,首先 regist_date 列null值在首行,其余按降序,则可能为 order by -regist_date ASC ;

date相同的情况下,sale_price 列升序,则可能为 order by -regist_date ASC , sale_price ASC ;

*/

select *
from product
order by -regist_date ASC , sale_price ASC ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值