Entendimento Todos os conjuntos de resultados relacionais

  

Este artigo pode ajudá-lo a compreender melhor complicada SQL contendo multitable associações, grupo de cláusulas relacionadas, e funções de agregação, de longe, os temas mais problemáticos para a maioria dos desenvolvedores de banco de dados. Você também aprende a maneira correta de lidar com exceções de banco de dados e incorporá-los como real funcionalidade em seu aplicativo ColdFusion. Você aprende, também, como para aumentar o desempenho do cache de consultas em memória para acesso rápido. Você pode memorizar as cláusulas SQL e Bachus formas Naur até que você esteja azul na cara, mas você ainda acabam jogando "ready-fire-aim" tentando escrever SQL complicada que realmente funciona, a menos que tenha uma imagem clara de exatamente como o SQL processos declarações. Seu primeiro passo para visualizar claramente SQL é compreender a natureza dos conjuntos de resultados relacionais. O código contidas neste artigo não é suportada pelo Access, por isso, se você quiser acompanhar junto com os anúncios no presente artigo, executar os arquivos Este novo banco de dados contém informações adicionais dados e tabelas para ajudar a ilustrar os diferentes tipos de junções e os resultados que eles produzem. Nós adicionamos todos para o título desta peça por uma razão importante que já foi declarado na anterior. Todos os resultados da consulta SQL são na forma de uma tabela única de linhas e colunas. Se o resultado é a partir da consulta de uma única tabela ou uma consulta relacional complicada envolvendo 15 mesas não importa, todos os resultados da consulta estão na forma de uma tabela única de linhas e colunas. Considere o código, que produz um resultado de consulta relacional que, como todos os resultados da consulta, é sob a forma de um única tabela.

SELECT c.CompanyID, c.CompanyName, e.LastName, e.FirstName, e.salary da empresa C INNER JOIN EMPREGADOS E ON c.CompanyID = e.CompanyID

Repare que o resultado de juntar estes resultados duas tabelas em uma única tabela. O que é isto? Não é um presente dos diagramas de Venn? Lembre-se quando o Sr. Suber, seu professor de matemática da escola secundária, lhe disse que você realmente iria usá-las um dia no mundo real, e você empacou? Tempo para convocá-lo e pedir desculpas! Uma junção interna é a interseção dos dois conjuntos de dados contidos nas duas tabelas sendo juntadas. Porque é que essa conceituação crítica à escrita SQL impecável? Porque agora podemos visualizar facilmente qualquer tipo de associação entre duas tabelas: Agora podemos facilmente descrever o que realmente está acontecendo com cada um desses tipos de associações. INNER JOIN Um resultado consiste em colunas selecionadas de ambas as tabelas, mas contém apenas as linhas que correspondem a valores de chave JOIN (especificado na cláusula ON) em ambas as tabelas associadas. A LEFT OUTER JOIN resultado consiste em colunas selecionadas de ambas as tabelas, e que contém todas as linhas no lado esquerdo da tabela, independentemente de qualquer um deles coincidir com o JOIN valores-chave no lado direito do quadro. As colunas da consulta selecionada da tabela do lado esquerdo contém os dados dessa tabela. Para cada linha no resultado da consulta, se um JOIN valor da chave do lado esquerdo da tabela corresponde a um valor de chave JOIN direita da mesa do lado, as colunas da consulta selecionada da tabela do lado direito do mouse conter dados da coluna dessa tabela, se não , as colunas contêm valores nulos.

SELECT c.CompanyID, c.CompanyName, e.LastName, e.FirstName, e.salary da empresa C LEFT OUTER JOIN EMPREGADOS E ON c.CompanyID = e.CompanyID

RIGHT OUTER JOIN resultado consiste em colunas selecionadas de ambas as tabelas, e que contém todas as linhas na tabela lateral-direito, independentemente de qualquer um deles corresponder a valores de chave JOIN na tabela do lado esquerdo. As colunas da consulta selecionada da tabela do lado direito do mouse conter dados dessa tabela. Para cada linha no resultado da consulta, se um JOIN valor da chave do lado direito da tabela corresponde a um JOIN valor da chave do lado esquerdo da tabela, as colunas da consulta selecionada da tabela do lado esquerdo da coluna conter dados dessa tabela, se não , as colunas contêm valores nulos. OUTER FULL JOIN Um resultado consiste em colunas selecionadas de ambas as tabelas, e que contém todas as linhas de ambas as tabelas, independentemente de qualquer um deles JOIN combinam seus valores fundamentais. Para cada linha do resultado da consulta extraída do lado esquerdo da tabela, se o JOIN valor da chave da tabela do lado esquerdo não tem correspondência na tabela do lado direito do mouse, essa linha do resultado da consulta contém valores nulos na coluna selecionada do lado direito da tabela . Da mesma forma, em uma linha do resultado da consulta extraído do lado direito do quadro, se o valor da chave JOIN direita da mesa do lado não tem correspondência na tabela do lado esquerdo, a linha do resultado da consulta contém valores nulos nas colunas selecionadas a partir da esquerda mesa lateral. Se uma linha do resultado da consulta JOIN correspondência entre os valores fundamentais da esquerda e da direita mesas laterais, os dados de ambas as tabelas estão contidas nessa linha resultado da consulta.

SELECT c.CompanyID, c.CompanyName, e.LastName, e.FirstName, e.salary da empresa C RIGHT OUTER JOIN EMPREGADOS E ON c.CompanyID = e.CompanyID
SELECT c.CompanyID, c.CompanyName, e.LastName, e.FirstName, e.salary da empresa C FULL OUTER JOIN EMPREGADOS E ON c.CompanyID = e.CompanyID

Ok, agora você pode visualizar com precisão os vários tipos de junções e são mais confortáveis com a sintaxe SQL que cria-los. Isso é ótimo! Mas no mundo real, você freqüentemente lidam com a união de mais de duas tabelas em conjunto em uma única consulta relacional. Como é que você vai escrever o SQL complicada para se juntar sete tabelas relacionadas e acertar a primeira vez, todas as vezes? Na verdade, é um pedaço de bolo. Na verdade, escrever uma consulta que executa uma combinação de INNER, OUTER LEFT, RIGHT OUTER e FULL OUTER junções entre 15 tabelas é muito mais difícil de escrever do que uma consulta que contém um único INNER JOIN entre duas tabelas. O truque é tudo em como você visualizá-lo!

SELECT c.CompanyID, c.CompanyName, e.LastName, e.FirstName, e.salary, d.FullName, d.Relationship da empresa C INNER JOIN EMPREGADOS E ON c.CompanyID = e.CompanyID INNER JOIN Dependant d E. ON SSN = d.SSN

Para entender exatamente o que você pode e não pode fazer com o SQL, você deve primeiro compreender a ordem em que os processos do SQL as cláusulas de uma instrução SQL. Você pode usar o código como um exemplo da forma que o SQL seguinte.

C.CompanyName SELECT, e.LastName + ',' + e.FirstName AS EmployeeName, e.salary, count (*) como NumDependants da empresa C INNER JOIN EMPREGADOS E ON c.CompanyID = e.CompanyID INNER JOIN Dependant d ON e . SSN = d.SSN e.DateOfBirth WHERE <'01 / GROUP 01/82 'c.CompanyName BY, e.LastName, e.FirstName, TENDO e.salary Count (*)> = 2 ORDER BY ASC EmployeeName

um artigo submetido por Daniel Carlson


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "Understanding Relational Todos os conjuntos de resultados" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 215 users browsing the articles directory   


  

|