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

本文是关于数据分析与SQL Lesson2的内容,主要介绍了SQL JOIN的使用,包括JOIN的基本概念、为何拆分数据到不同表格、JOIN的解决方案、主外键关系、别名的使用,以及LEFT JOIN、RIGHT JOIN等其他类型的JOIN。通过实例解析了JOIN操作在数据整合中的作用,帮助读者理解和掌握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';
  • 为每个销售代表对应的区域以及相关的客户创建一个表格,最终表格应该包含三列:区域名称、销售代表名称,以及客户名称。根据客户名称按字母顺序 (A-Z) 排序。
基于遗传算法的微电网调度(风、光、蓄电池、微型燃气轮机)(Matlab代码实现)内容概要:本文档介绍了基于遗传算法的微电网调度模型,涵盖风能、太阳能、蓄电池和微型燃气轮机等多种能源形式,并通过Matlab代码实现系统优化调度。该模型旨在解决微电网中多能源协调运行的问题,优化能源分配,降低运行成本,提高可再生能源利用率,同时考虑系统稳定性经济性。文中详细阐述了遗传算法在求解微电网多目标优化问题中的应用,包括编码方式、适应度函数设计、约束处理及算法流程,并提供了完整的仿真代码供复现学习。此外,文档还列举了大量相关电力系统优化案例,如负荷预测、储能配置、潮流计算等,展示了广泛的应用背景和技术支撑。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能电网优化研究的工程技术人员。; 使用场景及目标:①学习遗传算法在微电网调度中的具体实现方法;②掌握多能源系统建模优化调度的技术路线;③为科研项目、毕业设计或实际工程提供可复用的代码框架算法参考; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注目标函数构建约束条件处理,同时可参考文档中提供的其他优化案例进行拓展学习,以提升综合应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值