02 -数据分析与SQL- Lesson2 SQL JOIN

02 数据分析与SQL Lesson2 SQL JOIN

1.视频:JOIN简介

在公司运营中产生的公司数据(包括采购数据、员工数据、库存等等)存放在一个Excel中没有太大用处。因为这样的表格包含信息过多,也很难为不同类型的数据建立行列和结构。而多个数据库能在各个表格中有序地组织数据。当需要多种类型数据是,可以整合表格,使用SQL的JOIN方法,按照每个表中的相同标识,轻松整合多个表格中的信息:
在这里插入图片描述

2.为何要将数据拆分为不同的表格?

等同于为什么要用JOIN的方式组合数据,原因如下:

  1. Orders and accounts are different types of objects
  2. This allows queries to execute more quickly

e.g.1 都在一个表,更新一个用户的address会造成更新多行记录

在这里插入图片描述

数据库规范化

数据库如何存储数据其实是数据库规范化的问题,数据库规范化需要考虑以下3个要点:

  1. 表格存储了逻辑分组的数据吗?
  2. 我能在一个位置进行更改,而不是在多个表格中对同一信息作出更改吗?
  3. 我能快速高效地访问和操纵数据吗?
  4. ![/扩展内容(墙)/]https://www.itprotoday.com/microsoft-sql-server/sql-design-why-you-need-database-normalization

5.解决方案:你的首个JOHN

第2问的答案如下面代码,大家注意以下几点:

  1. SELECT后面明确要选出的数据,用表.列来制定某个表中的列。如果这里用*则会选出结合之后所有数据列。
  2. FROM a JOIN b,就是把a和b结合成一个更大的数据。注意默认是INNER JOIN,可以指定其他对其方式。
  3. 结合的对应规则在 ON 这行指定。
SELECT orders.standard_qty, orders.gloss_qty,
orders.poster_qty,  accounts.website,
accounts.primary_poc
FROM orders
JOIN accounts
ON orders.account_id = accounts.id

8.练习:主外键关系

本部分练习2不选择“表格中可能有多个主键”,因为从课程的角度来讲,虽然有这个情况出现,但是这样并不很恰当。

crow-foot(鱼尾纹)标记的是外键。

10.视频:别名

可以这样:

FROM tablename AS t1
JOIN tablename2 AS t2

也可以省略AS,这样:

FROM tablename t1
JOIN tablename2 t2

还可以把一个运算结果赋予别名,比如下面这个 col1 + col2 命名为 total:

SELECT col1 + col2 total, col3

14.练习:JOHN问题(第一部分)

在这里插入图片描述

  • 为与客户名称 Walmart 相关的所有 web_events 创建一个表格。表格应该包含三列:primary_poc、事件时间和每个事件的渠道。此外,你可以选择添加第四列,确保仅选中了 Walmart 事件。如下代码:
    • SELECT 语句根据要求选择了4列,并且使用了别名a,w
    • FROM和JOIN 定义了选择范围和别名
    • WHERE 定义了过滤方法
SELECT a.primary_poc, w.occurred_at, w.channel, a.name
FROM web_events w
JOIN accounts a
ON w.account_id = a.id
WHERE a.name = 'Walmart';
  • 为每个销售代表对应
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值