SQL Server Management Studio 2016 - ajuda de consulta do iniciante necessária

0

Sou novato em SQL com um grande conjunto de dados que preciso manipular. Eu usei o Excel para analisar uma pequena parte desses dados, mas agora preciso examinar a coisa toda. Eu o importei para o SQL Server Management Studio 2016 e posso visualizar todas as tabelas usando o recurso "First 1000 rows", mas isso é tudo que sei fazer.

Existem apenas duas tabelas que me interessam. Cada um tem 100 milhões de linhas. Eles compartilham uma única coluna sobreposta - vamos chamá-lo, EventID. Cada tabela descreve o que ocorreu durante o 'evento'. Portanto, a Tabela 1 possui uma entrada para EventID # 100001, # 100002, etc., e a Tabela 2 possui uma entrada para EventID # 100001, # 100002, etc.

Então, seria muito mais simples ter uma grande mesa, mas c'est la vie ...

Estou tentando descobrir duas coisas:

1) Para onde eu vou no SQL Server Management Studio 2016 para digitar uma consulta para fazer perguntas do banco de dados? (Por fim, estou procurando realizar uma análise de valores consecutiva, mas talvez precise recorrer às informações antes de fazê-lo)

2) Como eu lido com a questão de ter duas tabelas diferentes? (Devo criar outra tabela que combine as duas tabelas que tenho atualmente? Ou devo lidar com esse problema na consulta que escrevo?)

Agradeço antecipadamente por qualquer ajuda.

    
por Zero Cool 07.10.2016 / 05:56

2 respostas

0

Vou fornecer uma visão geral dos ponteiros para você começar e encaminhá-lo para outros tutoriais on-line. Então você deve fazer perguntas mais específicas ao encontrar problemas.

1. Importe seus dados e defina uma chave primária

Você já importou seus dados, mas aqui estão etapas mais específicas . Se cada linha tiver um EventID exclusivo em cada uma de suas tabelas, essa será sua chave primária (importante mais tarde), caso em que você não precisará "ativar inserção de identidade" para gerar uma nova.

Certifique-se de que sua tabela esteja configurada para que o EventID seja definido como a chave primária em cada tabela, em cada tabela. Instruções aqui . Se houver muitas linhas com o mesmo EventID, as coisas serão mais complicadas, então estou assumindo que elas são únicas.

2. Definir relações

Defina relacionamentos entre as duas tabelas, vinculando-as em suas chaves primárias (EventID). Escolha uma tabela como a principal, e a chave primária da segunda tabela se torna a chave estrangeira para a primeira. Se houver uma correspondência de 1: 1 entre os EventIDs, esse é o caso mais simples de se trabalhar.

Veja o tutorial aqui que mostra os métodos GUI e SQL.

3. Use o criador de consultas

Esta é uma ferramenta para ajudá-lo a criar uma consulta SQL que irá entrar (conectar ou vincular) tabelas e mostrar o resultado. Siga o tutorial aqui . Como você já definiu os relacionamentos, o designer de consulta saberá como se juntar a eles.

Em uma consulta, você pode escolher as colunas de cada tabela associada que deseja ver e a consulta mostrará as combinações como uma. Você pode adicionar filtros ("onde" critérios) e ordenação ("encomendar por") aqui também.

4. Crie uma visualização da consulta que você fez.

Uma exibição é um termo de banco de dados que significa uma consulta que é salva e pode ser lida como se fosse foi uma tabela real, embora nos bastidores ainda seja apenas a consulta SQL que você criou, unindo as duas tabelas como uma. Isso deve responder à sua segunda pergunta.

Siga o tutorial aqui .

5. Experiência

Depois de se familiarizar com isso, você pode querer aprender mais sobre o SQL. Há uma tonelada de recursos online. E, de fato, as etapas 2-4 do SQL podem ser substituídas apenas por:

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

Adendo

Se você tiver mais de uma coluna como chave primária (o que identifica exclusivamente todas as linhas), isso é chamado de chave composta ou composta. É fácil definir esse tipo de chave primária no designer de tabelas (consulte resposta do stackoverflow aqui ), e isso será usado para definir os relacionamentos, bem como, eventualmente, para criar índices para melhor desempenho da consulta (não abordados aqui).

No SQL (se você definiu a chave primária ou não), uma junção interna em 2 tabelas com o EventID e o SubEventID seria assim:

select * from table1 
inner join table2
on table1.EventID = table2.EventID 
and table1.SubEventID = table2.SubEventID
    
por 07.10.2016 / 07:02
0

O operador de intersecção seria mais fácil de usar nesta instância.

select * from table1
intersect
select * from table2

Isso produzirá apenas os registros comuns às duas tabelas. Aqui é um explicação útil para os operadores intersect, union e except.

    
por 08.10.2016 / 03:05

Tags