Como usar um básico de associação no sql

Video: JN Moura Informática - Conceitos Básicos para Iniciantes usando Microsoft SQL Server 2008 R2

Qualquer consulta SQL multitable é um tipo de junção. As tabelas de origem são unidas no sentido de que a tabela de resultados inclui informações retiradas de todas as tabelas de origem. O mais simples se juntar é um dois-mesa SELECIONAR que não tem ONDE qualificadores cláusula: Cada linha da primeira tabela é associado a cada linha da segunda tabela.

Video: Trigger SQL Server

A tabela de resultados é o produto cartesiano das duas tabelas de origem. O número de linhas da tabela resultado é igual ao número de linhas na primeira tabela de fonte multiplicado pelo número de linhas na tabela a segunda fonte.

Por exemplo, imagine que você é o gerente de pessoal para uma empresa e que parte de seu trabalho é manter registros de funcionários. A maioria dos dados do empregado, tais como endereço residencial e número de telefone, não é particularmente sensível. Mas alguns dados, como o salário atual, devem estar disponíveis apenas ao pessoal autorizado. Para manter a segurança das informações sensíveis, mantê-lo em uma tabela separada que é protegido por senha.

Considere o seguinte par de tabelas:

FUNCIONÁRIO DE COMPENSAÇÃO -------- ------------ EmpID EmployFName SalaryLName BonusCityPhone

Preencher as tabelas com alguns dados de exemplo:

EmpID FName LName Cidade Telefone ----- ----- ----- ---- ----- 1 Whitey Ford Laranja 555-10012 Don Larson Newark 555-32213 Sal Maglie Nutley 555-69054 Bob Turley Passaic 555-8908Employ Salário Bonus ------ ------ ----- 1 33000 100002 18000 20003 24000 50004 22000 7000


Criar uma tabela de resultados virtual com a seguinte consulta:

SELECT * FROM EMPREGADOS, COMPENSAÇÃO -

Video: Introdução ao SQL Server 2008 - Comandos básicos

Aqui está o que a consulta produz:

EmpID FName LName Cidade Empregar Telefone Salário Bonus ----- ----- ----- ---- ----- ------ ------ ----- 1 Whitey Ford laranja 555-1001 1 33000 100001 Whitey Ford laranja 555-1001 2 18000 20001 Whitey Ford laranja 555-1001 3 24000 50001 Whitey Ford laranja 555-1001 4 22000 70002 Don Larson Newark 555-3221 1 33000 100002 Don Larson Newark 555- 3221 2 18000 20002 Don Larson Newark 555-3221 3 24000 50002 Don Larson Newark 555-3221 4 22000 70003 Sal Maglie Nutley 555-6905 1 33000 100003 Sal Maglie Nutley 555-6905 2 18000 20003 Sal Maglie Nutley 555-6905 3 24000 50003 Sal maglie Nutley 555-6905 4 22000 70004 Bob Turley Passaic 555-8908 1 33000 100004 Bob Turley Passaic 555-8908 2 18000 20004 Bob Turley Passaic 555-8908 3 24000 50004 Bob Turley Passaic 555-8908 4 22000 7000

A tabela de resultados, que é o produto cartesiano das mesas e remuneração, contém redundância considerável. Além disso, não faz muito sentido. Ele combina todas as linhas de EMPREGADO com cada linha de compensação.

Video: usar select insert delete y update en SQL Server 2008

As únicas linhas que transmitem informações importantes são aqueles em que o EmpID número que veio do FUNCIONÁRIO corresponde ao Empregar número que veio de compensação. Em essas linhas, nome e endereço de um empregado estão associados com a sua compensação.

Quando você está tentando obter informações úteis a partir de um banco de dados multitable, o produto cartesiano produzido por um básica juntar-se é quase Nunca o que você quer, mas é quase sempre o primeiro passo para o que você quer. Através da aplicação de restrições ao JUNTE-SE com um ONDE cláusula, você pode filtrar as linhas indesejadas.


Publicações relacionadas