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
Conteúdo
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.