学习记录-希望我写的小白都能看懂

这章开始学习DML了,属于比较实用的章节。资料来自:http://datawhale.club/t/topic/476

但其实我的进度稍微快一点加入了join表我觉得会更实用

1、简单查询

首先是一段简单的查询码,不写老会忘,可是没关系,万能公式往里套

SELECT DISTINCT product_id,unit_price
FROM PRODUCTS p
join orders O
ON  p.product_id = O.order_id
WHERE unit_price=1.21
ORDER BY product_id

运算就是正常的加减乘除"+ - * /",运算符无非就是 > < =  ,<>不等于,=!这个也是,如果是文字就用not like

然后还有OR和and 来选择我们的条件

DINSTINCT:去重,放在你要的列前面 列也可以重新命名但是前面要加AS,如果是表后面也可以直接命名比如在product后面加个空格写上P

ORDER BY 是排序 如果要降序需要在列前加个 DESC

连接表可以用 join on ,想要按照左表连接就是left join 要是以右表的列为主就是right join 类似于vlookup自行理解

然后注意一下字符所在的顺序

2、聚合函数

①计算的函数:count、sum、avg、max、min

例:SELECT COUNT(DISTINCT product_type) FROM product;

②分组计算GROUP BY书写位置 (理解为数据透视)

1 SELECT → 2. FROM → 3. JOIN ON → 4. WHERE → 5.GROUP BY → 6.HAVING (类似where)

例:比如下表需要对status是1的总价格数和2的总价个数

以下为码和跑出来的数据

加上条件having看看

代码段记录一下

SELECT status,sum(unit_price)
FROM PRODUCTS p
join orders O
ON  p.product_id = O.order_id
group by status
having status=1
ORDER BY product_id

练习题答案:

1、SELECT product_id, SUM(product_name) --本SELECT语句中存在错误。 FROM product GROUP BY product_type WHERE regist_date > '2009-09-01';

括号是中文括号错,group by后面接having 如果是where 需要在上一行,groupby后面多了个上面没select的条件

2、没有底表 按自己的表模拟了一下

SELECT name,sum(quantity_in_stock) as '进货价',sum(unit_price)*20 '出货价' 
FROM sql_store.products
where products.name='longan'
group by name
having sum(quantity_in_stock) > sum(unit_price)*20

这边注意一下 group by 不能用别名,如果是order by 是可以的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值