Access
 sql >> Base de Dados >  >> RDS >> Access

Introdução às associações de dados e relacionamentos


Opções de Junções de Dados

Junções de dados e nulidade de registro

Às vezes você terá uma tabela onde um campo está faltando alguns registros. Aqui está um exemplo de uma lista de funcionários em que alguns registros não especificam o departamento ao qual o funcionário pertence:
SELECT Employees.EmployeeNumber AS [Employee #],
       Employees.FirstName,
       Employees.LastName,
       Employees.DepartmentCode AS Department
FROM Employees;

Isso produziria:



Se você criar uma consulta de junção interna de duas tabelas que tenham um relacionamento e alguns registros da tabela filho estiverem faltando alguns valores na coluna de chave estrangeira, a consulta produzirá apenas os registros que têm um valor. Aqui está um exemplo:
SELECT Employees.EmployeeNumber AS [Employee #],
       Employees.FirstName,
       Employees.LastName,
       Departments.DepartmentName AS Department
FROM   Departments INNER JOIN Employees
       ON Departments.DepartmentCode = Employees.DepartmentCode;

Isso produziria:



Observe que a consulta produz menos registros. Acontece que os mecanismos de banco de dados não gostam de registros nulos, especialmente em campos compartilhados, campos que estão envolvidos em relacionamentos. Para certificar-se de que todos os registros de uma tabela filha sejam produzidos por uma consulta, produza um valor padrão para registros cujos valores estão ausentes. Se o relacionamento estiver usando um inteiro simples, crie um registro com o valor 0. Se o relacionamento estiver usando uma string, você poderá criar um registro com um valor 'N/A'. Se os registros forem processados ​​por um computador, você poderá criar um registro com um valor genérico/aleatório como 00000 ou algo parecido.

Aprendizagem prática:como lidar com junções de dados e nulidade de registros
  1. Iniciar o Microsoft Access
  2. A partir dos recursos que acompanham essas lições, abra o banco de dados Altair Realtors3
  3. Na faixa de opções, clique em Criar e clique em Design de consulta
  4. Na caixa de diálogo Mostrar tabela, clique duas vezes em Propriedades e clique em Fechar
  5. Na lista Propriedades, clique duas vezes em PropertyNumber, City e State
  6. Mude a consulta para a visualização de folha de dados:

  7. Observe o número de registros:48.
    Alterne a consulta para a Visualização de design
  8. Clique com o botão direito do mouse em uma área vazia na parte superior da janela e clique em Mostrar tabela
  9. Na caixa de diálogo Mostrar tabela, clique duas vezes em PropertyTypes e clique em Fechar
  10. Na lista PropertyTypes, clique duas vezes em PropertyType

  11. Mude a consulta para a visualização de folha de dados

  12. Observe o número de registros desta vez:44.
    Exiba a Visualização SQL da consulta e altere seu código da seguinte forma:
    SELECT Properties.PropertyNumber,
           Properties.City,
           Properties.State,
           Conditions.Condition
    FROM   Properties INNER JOIN Conditions
           ON Properties.Condition = Conditions.Condition;
  13. Mude a consulta para a visualização de folha de dados

  14. Observe o número de registros:38.
    Feche a consulta sem salvá-la
  15. No painel de navegação, clique duas vezes no formulário PropertyTypes
  16. Crie um novo registro da seguinte forma:
    Tipo de propriedade Descrição Desconhecido O tipo de propriedade não está disponível ou não está claro. Ilustrações
  17. Fechar a tabela PropertyTypes
  18. No Painel de Navegação, clique duas vezes no formulário Condições
  19. Crie um novo registro da seguinte forma:
    Tipo de propriedade Descrição Desconhecido A condição ou aparência atual (interior e/ou exterior) do imóvel não foi verificada, não foi avaliada ou não é claramente conhecida.
  20. Fechar a tabela Condições
  21. No painel de navegação, clique com o botão direito do mouse na tabela Propriedades e clique em Visualização de design
  22. Na parte superior da janela, clique em PropertyType
  23. Na parte inferior, clique em Valor padrão e digite Desconhecido
  24. Na parte superior da janela, clique em Condição
  25. Na parte inferior, clique em Valor padrão e digite Desconhecido
  26. Salve a tabela e alterne-a para a Visualização de folha de dados
  27. Na coluna PropertyType, para cada célula vazia, selecione Desconhecido
  28. Na coluna Condição, para cada célula vazia, selecione Desconhecido
  29. Observe que há um valor padrão para as colunas PropertyType e Condition
  30. Ao definir apenas os valores indicados, crie novos registros da seguinte forma:
    Propriedade # Tipo de propriedade Cidade Estado CEP Quartos Banheiros Porão Concluído Garagem coberta Condição Valor de mercado 476005 Unifamiliar Hanover PA 17331 3 2,50 Verificado 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condomínio Alexandria VA 3 2,00 Precisa de reparos 622845 297427 Matinsburg Excelente 729336 Alexandria VA 3 2,50 Precisa de reparos 750000 300618 Harrisburg PA 17109 5 3,50 Verificado Verificado Boa Forma 515885

  31. Fechar a tabela
  32. Na faixa de opções, clique em Criar e clique em Design de consulta
  33. Na caixa de diálogo Mostrar tabela, clique duas vezes em Propriedades e clique em Fechar
  34. Na lista Propriedades, clique duas vezes em PropertyNumber, City e State
  35. Mude a consulta para a visualização de folha de dados
  36. Observe o número de registros:51.
    Alterne a consulta para a Visualização de design
  37. Clique com o botão direito do mouse em uma área vazia na parte superior da janela e clique em Mostrar tabela
  38. Na caixa de diálogo Mostrar tabela, clique duas vezes em PropertyTypes e clique em Fechar
  39. Na lista PropertyTypes, arraste PropertyType e solte-o em Cidade na parte inferior
  40. Na lista Propriedades, clique duas vezes em Quartos e banheiros

  41. Mude a consulta para a visualização de folha de dados

  42. Observe o número de registros desta vez:51.
    Feche a consulta sem salvá-la
  43. Abra o banco de dados Lambda Square Apartments1 criado e usado anteriormente
  44. Na faixa de opções, clique em Criar e clique em Design de consulta
  45. Na caixa de diálogo Mostrar tabela, clique duas vezes em Pagamentos e clique em Fechar
  46. Na lista Pagamentos, clique duas vezes em ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber e PaymentAmount
  47. Mude a consulta para a visualização de folha de dados

  48. Observe o número de registros:63.
    Alterne a consulta para a Visualização de design
  49. Clique com o botão direito do mouse em uma área vazia da janela e clique em Mostrar tabela...
  50. Na caixa de diálogo Mostrar tabela, clique duas vezes em Funcionários e clique em Fechar
  51. Arraste EmployeeNumber e solte em ProcessedBy
  52. Na parte inferior da janela, substitua ProcessedBy por
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"


  53. Mude a consulta para a visualização de folha de dados

  54. Observe o número de registros:46.
    Feche a consulta sem salvá-la
  55. No Painel de Navegação, clique duas vezes na tabela Employeees e crie um novo registro da seguinte forma (isso é para transações feitas no banco, como um inquilino que deposita o dinheiro do aluguel diretamente no banco):
    NúmeroFuncionário Nome Sobrenome Título 00000 Processamento Automático de Transação Eletrônica
  56. Fechar a tabela Funcionários
  57. No painel de navegação, clique com o botão direito do mouse na tabela Pagamentos e clique em Visualização de design
  58. Na parte superior da janela, clique em Processado por
  59. Na parte inferior, clique em Valor padrão e digite "00000"
  60. Salvar e fechar a tabela
  61. Abra a tabela Pagamentos
  62. Na coluna ProcessedBy, em cada célula vazia, digite 00000
  63. Fechar a tabela Pagamentos
  64. Na faixa de opções, clique em Criar e clique em Design de consulta
  65. Na caixa de diálogo Mostrar tabela, clique duas vezes em Pagamentos e funcionários
  66. Clique em Fechar
  67. Arraste EmployeeNumber e solte em ProcessedBy
  68. Na lista Pagamentos, clique duas vezes em ReceiptNumber e PaymentDate
  69. Pressione Tab e digite
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  70. Na lista Pagamentos, clique duas vezes em RegistrationNumber e PaymentAmount
  71. Mude a consulta para a visualização de folha de dados
  72. Observe o número de registros:63.
    Feche a consulta sem salvá-la



Unindo mais de duas tabelas

Até agora, nossas instruções de junção envolveram apenas duas tabelas. Na verdade, você pode usar mais tabelas do que isso. A fórmula básica para unir três tabelas é:
SELECT field-name(s) FROM first-table
first-join-type second-table ON condition1
second-join-type third-table ON condition2

Você inicia a expressão juntando a primeira à segunda tabela, o que significa que ambas as tabelas devem compartilhar uma coluna em um tipo de relacionamento de chave primária-chave estrangeira. Da mesma forma, você pode criar a segunda junção. Obviamente, a segunda e a terceira tabelas devem ter uma coluna comum. Na maioria dos casos, deve haver uma coluna que todas as três tabelas compartilhem. Na maioria das vezes, o relacionamento começa com uma coluna de chave primária da tabela pai. Essa coluna é então representada como uma chave estrangeira nas outras duas tabelas.

Aprendizagem prática:juntando mais de duas tabelas
  1. Na faixa de opções, clique em Criar e clique em Design de formulário
  2. Na folha de propriedades, clique na guia Tudo.
    Clique em Origem do registro e clique no botão de reticências
  3. Na tabela Mostrar, clique duas vezes em Funcionários, registros e apartamentos
  4. Clique em Fechar
  5. Arraste EmployeeNumber da lista Employees e solte-o em ProcessedBy na lista Registrations
  6. Arraste ApartmentCode da lista de apartamentos e solte-o no PropNbr na lista de inscrições



  7. Na lista Registros, clique duas vezes em RegistrationID e RegistrationDate
  8. Pressione Tab e digite
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  9. Na lista Registros, clique duas vezes em FirstName, LastName, MaritalStatus e NumberOfChildren
  10. Pressione Tab e digite:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. Exiba a visualização SQL da consulta:
    SELECT Registrations.RegistrationID AS [Regist #],
           Registrations.RegistrationDate AS [Regist Date],
           [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")" AS Employee,
           Registrations.FirstName,
           Registrations.LastName,
           Registrations.MaritalSituation AS Status,
           Registrations.NumberOfChildren AS Children,
           "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month" AS Apartment
    FROM   Apartments INNER JOIN (Employees INNER JOIN Registrations
           ON Employees.EmployeeNumber = Registrations.ProcessedBy)
           ON Apartments.ApartmentCode = Registrations.PropNbr;
  12. Feche o Criador de consultas
  13. Quando perguntado se você deseja salvar as alterações, clique em Sim
  14. Salve o formulário como Alocações de aluguel
  15. Clique duas vezes no botão na interseção das réguas
  16. Na folha de propriedades, altere as seguintes características:
    Legenda:Lambda Square Apartments - Alocação de aluguel
    Valor padrão:Formulário contínuo
    Central automática:Sim
    Botões de navegação:Não
  17. Na faixa de opções, clique em Design
  18. Na seção Ferramentas, clique em Adicionar campos existentes
  19. Na Lista de Campos, clique em Apartamento, pressione e segure Shift, clique em Regist # e solte Shift
  20. Arraste a seleção para o formulário
  21. Na faixa de opções, clique em Organizar e clique em Tabular
  22. Arraste a seleção para a esquerda
  23. Pressione Ctrl + A para selecionar todos os controles
  24. Na faixa de opções, clique em Remover layout
  25. Preencha o design do formulário. Aqui está um exemplo:

  26. Salve e feche o formulário

Junções de dados e análises de registros

Classificação de registros

Nas junções de dados que criamos até agora, consideramos todos os registros e deixamos que o mecanismo de banco de dados os liste usando apenas as regras de junções embutidas no SQL. Para tornar essa lista mais restritiva, você pode aplicar algumas condições para isolar alguns registros. Você pode criar visualmente os filtros no Modo Design de uma consulta ou em uma janela semelhante. Você também pode criar um filtro no SQL. Como feito nas lições anteriores, para incluir um critério em um SELECT declaração, você pode criar um WHERE cláusula.

Aprendizagem prática:introdução de junções e análise de dados
  1. Abra o banco de dados da Monson University1 usado anteriormente
  2. Para iniciar uma consulta, na faixa de opções, clique em Criar e clique em Design da consulta
  3. Na caixa de diálogo Mostrar tabela, clique em Fechar
  4. Clique com o botão direito do mouse na parte superior da janela e clique em Visualização SQL
  5. Altere a instrução da seguinte forma:
    SELECT EmployeeNumber AS [Employee #],
           FirstName      AS [First Name],
           LastName       AS [Last Name],
           Title,
           DepartmentName AS Department
    FROM   Employees, Departments
    WHERE  Employees.DepartmentCode = Departments.DepartmentCode
    ORDER  BY LastName;
  6. Visualize os resultados na Visualização de folha de dados
  7. Se necessário, na Faixa de Opções, clique em Página inicial.
    Altere as seguintes características:
    Nome da fonte:Californian FB (se você não tiver essa fonte, selecione Times New Roman)
    Cor da fonte:azul, acento 1, mais claro 80% (cores do tema:5ª coluna, 2ª linha)
    Cor de fundo:Mais cores:Vermelho:195, Verde:95, Azul:15
    Linhas de grade:horizontais
    Cor da linha alternativa:Mais cores:Vermelho:128, Verde:0, Azul:0

  8. Feche a consulta sem salvá-la
  9. Fechar o Microsoft Access