SQL Server Management Studio 2016 - 需要初学者查询帮助

SQL Server Management Studio 2016 - 需要初学者查询帮助

我是 SQL 新手,需要处理大量数据集。我使用 Excel 分析了一小部分数据,但现在我需要查看整个数据。我已将其导入 SQL Server Management Studio 2016,可以使用“前 1000 行”功能查看所有表,但这确实是我所知道的全部操作。

我关心的只有两个表。每个表都有 1 亿行。它们共享一个重叠列 - 我们称之为 EventID。每个表都描述了“事件”期间发生的事情。因此,表 1 有 EventID #100001、#100002 等条目,表 2 有 EventID #100001、#100002 等条目。

因此,拥有一张大桌子会简单得多,但这就是生活......

我想弄清楚两件事:

1) 在 SQL Server Management Studio 2016 中我应该在哪里输入查询来询问数据库?(最终,我希望执行连续值分析,但在执行此操作之前我可能需要重新利用这些信息)

2)如何处理有两个不同表的问题?(我应该/可以创建另一个表来合并我当前拥有的两个表吗?或者我应该在我编写的查询中处理这个问题吗?)

预先感谢您的任何帮助。

答案1

我将概述一些入门指南,并向您推荐其他在线教程。然后,当您遇到问题时,您应该提出更具体的问题。

1. 导入数据并设置主键

您已经导入了数据,但这里更具体的步骤。如果每个表中的每一行都有一个唯一的 EventID,那么它就是您的主键(稍后很重要),在这种情况下,您不需要“启用身份插入”来生成新的主键。

确保您的表已配置好,以便在每个表中将 EventID 设置为主键。此处有说明如果有许多行具有相同的 EventID,事情就会变得更加复杂,因此我假设它们是唯一的。

2. 定义关系

通过在主键(EventID)上链接两个表来定义它们之间的关系。选择一个表作为主表,第二个表的主键将成为第一个表的外键。如果 EventID 之间有 1:1 匹配,那么这是最简单的情况。

教程在这里它显示了 GUI 和 SQL 方法。

3. 使用查询设计器

这是一个可以帮助您创建 SQL 查询的工具,它将加入(连接或链接)两个表格并显示结果。后续教程在这里。由于您已经定义了关系,查询设计器将知道如何连接它们。

在查询中,您可以从每个连接表中选取要查看的列,查询会将它们合并显示为一个。您也可以在此处添加过滤器(“where”条件)和排序(“order by”)。

4. 根据您所做的查询创建一个视图。

A看法是一个数据库术语,表示保存的查询,可以像读取真实表一样读取,尽管在后台它仍然只是您创建的 SQL 查询,将两个表合并为一个。这应该可以回答您的第二个问题。

跟进教程在这里

5.实验

熟悉了这些之后,您可能想要更深入地学习 SQL。网上有大量的资源。事实上,SQL 中的步骤 2-4 可以替换为以下内容:

create view MyBigTableView as
select * from table1 
inner join table2 
on table1.EventID = table2.EventID

附录

如果有多个列作为主键(唯一标识每一行的列),则称为复合键。在表设计器中定义这种类型的主键很容易(请参阅stackoverflow 的答案在这里),并将用于定义关系,并最终用于创建索引,以获得更好的查询性能(这里不涉及)。

在 SQL 中(无论您是否定义了主键),同时具有 EventID 和 SubEventID 的两个表上的内连接将如下所示:

select * from table1 
inner join table2
on table1.EventID = table2.EventID 
and table1.SubEventID = table2.SubEventID

答案2

在这种情况下,相交运算符会更容易使用。

select * from table1
intersect
select * from table2

这将仅产生两个表所共有的记录。 这里是对相交、并集和除运算符的简便解释。

相关内容