Access
 sql >> Baza danych >  >> RDS >> Access

Wprowadzenie do łączenia danych i relacji

Opcje łączenia danych

Połączenia danych i nieważność rekordów

Czasami będziesz mieć tabelę, w której w polu brakuje niektórych rekordów. Oto przykład listy pracowników, w której niektóre zapisy nie określają działu, do którego należy pracownik:

SELECT Employees.EmployeeNumber AS [Employee #],
       Employees.FirstName,
       Employees.LastName,
       Employees.DepartmentCode AS Department
FROM Employees;

Spowoduje to:

Jeśli utworzysz kwerendę sprzężenia wewnętrznego dwóch tabel, które mają relację, a w niektórych rekordach tabeli podrzędnej brakuje niektórych wartości w kolumnie klucza obcego, kwerenda wygeneruje tylko rekordy, które mają wartość. Oto przykład:

SELECT Employees.EmployeeNumber AS [Employee #],
       Employees.FirstName,
       Employees.LastName,
       Departments.DepartmentName AS Department
FROM   Departments INNER JOIN Employees
       ON Departments.DepartmentCode = Employees.DepartmentCode;

Spowoduje to:

Zauważ, że zapytanie generuje mniej rekordów. Tak się składa, że ​​aparaty baz danych nie lubią rekordów o wartości null, zwłaszcza w polach współdzielonych, czyli polach, które są powiązane z relacjami. Aby upewnić się, że wszystkie rekordy tabeli podrzędnej są tworzone przez zapytanie, utwórz wartość domyślną dla rekordów, których wartości brakuje. Jeśli relacja używa prostej liczby całkowitej, utwórz rekord z wartością 0. Jeśli relacja używa ciągu znaków, możesz utworzyć rekord z wartością „Nie dotyczy”. Jeśli rekordy są przetwarzane przez komputer, możesz utworzyć rekord z ogólną/losową wartością, taką jak 00000 lub coś podobnego.

Praktyczne uczenie się:radzenie sobie z łączeniem danych i nieważnością zapisów

  1. Uruchom Microsoft Access
  2. Z zasobów towarzyszących tym lekcjom otwórz bazę danych Altair Realtors3
  3. Na wstążce kliknij Utwórz i kliknij Projekt zapytania
  4. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie Właściwości i kliknij Zamknij
  5. Na liście Właściwości kliknij dwukrotnie PropertyNumber, City i State
  6. Przełącz zapytanie do widoku arkusza danych:

  7. Zwróć uwagę na liczbę rekordów:48.
    Przełącz zapytanie do widoku projektu
  8. Kliknij prawym przyciskiem myszy pusty obszar w górnej części okna i kliknij Pokaż tabelę
  9. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie PropertyTypes i kliknij Zamknij
  10. Na liście PropertyTypes kliknij dwukrotnie PropertyType

  11. Przełącz zapytanie do widoku arkusza danych

  12. Zwróć uwagę na liczbę rekordów tym razem:44.
    Wyświetl widok SQL zapytania i zmień jego kod w następujący sposób:
    SELECT Properties.PropertyNumber,
           Properties.City,
           Properties.State,
           Conditions.Condition
    FROM   Properties INNER JOIN Conditions
           ON Properties.Condition = Conditions.Condition;
  13. Przełącz zapytanie do widoku arkusza danych

  14. Zwróć uwagę na liczbę rekordów:38.
    Zamknij zapytanie bez zapisywania go
  15. W okienku nawigacji kliknij dwukrotnie formularz PropertyTypes
  16. Utwórz nowy rekord w następujący sposób:
    Typ właściwości Opis Nieznany Typ właściwości jest niedostępny lub nie jest jasny. Ilustracje
  17. Zamknij tabelę PropertyTypes
  18. W okienku nawigacji kliknij dwukrotnie formularz Warunki
  19. Utwórz nowy rekord w następujący sposób:
    Typ właściwości Opis Nieznany Obecny stan lub wygląd (wewnętrzny i/lub zewnętrzny) nieruchomości nie został sprawdzony, nie został oceniony lub nie jest jasno znany.
  20. Zamknij tabelę warunków
  21. W okienku nawigacji kliknij prawym przyciskiem myszy tabelę Właściwości i kliknij Widok projektu
  22. W górnej części okna kliknij PropertyType
  23. W dolnej części kliknij Wartość domyślna i wpisz Nieznane
  24. W górnej części okna kliknij Warunek
  25. W dolnej części kliknij Wartość domyślna i wpisz Nieznane
  26. Zapisz tabelę i przełącz ją do widoku arkusza danych
  27. W kolumnie PropertyType dla każdej pustej komórki wybierz Nieznany
  28. W kolumnie Warunek dla każdej pustej komórki wybierz Nieznany
  29. Zauważ, że istnieje wartość domyślna dla kolumn PropertyType i Condition
  30. Ustawiając tylko wskazane wartości, utwórz nowe rekordy w następujący sposób:
    Właściwość nr Typ właściwości Miasto Stan Kod pocztowy Sypialnie Łazienki Gotowa piwnica Garaż wewnętrzny Stan Wartość rynkowa 476005 Jednorodzinny Hanower, PA 17331 3 2,50 Sprawdzone 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condominium Alexandria VA 3 2,00 Wymaga naprawy 622845 297427 Matinsburg Doskonały 729336 Alexandria VA 3 2,50 Wymaga naprawy 750000 300618 Harrisburg, PA 17109 5 3,50 Sprawdzone Zaznaczono Dobry kształt 515885

  31. Zamknij stół
  32. Na wstążce kliknij Utwórz i kliknij Projekt zapytania
  33. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie Właściwości i kliknij Zamknij
  34. Na liście Właściwości kliknij dwukrotnie PropertyNumber, City i State
  35. Przełącz zapytanie do widoku arkusza danych
  36. Zwróć uwagę na liczbę rekordów:51.
    Przełącz zapytanie do widoku projektu
  37. Kliknij prawym przyciskiem myszy pusty obszar w górnej części okna i kliknij Pokaż tabelę
  38. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie PropertyTypes i kliknij Zamknij
  39. Na liście PropertyTypes przeciągnij PropertyType i upuść go na City na dole
  40. Na liście Właściwości kliknij dwukrotnie Sypialnie i łazienki

  41. Przełącz zapytanie do widoku arkusza danych

  42. Zwróć uwagę na liczbę rekordów tym razem:51.
    Zamknij zapytanie bez zapisywania go
  43. Otwórz bazę danych Lambda Square Apartments1 utworzoną i używaną wcześniej
  44. Na wstążce kliknij Utwórz i kliknij Projekt zapytania
  45. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie Płatności i kliknij Zamknij
  46. Na liście Płatności kliknij dwukrotnie Numer paragonu, Data płatności, Przetworzone przez, Numer rejestracyjny i Kwota płatności
  47. Przełącz zapytanie do widoku arkusza danych

  48. Zwróć uwagę na liczbę rekordów:63.
    Przełącz zapytanie do widoku projektu
  49. Kliknij prawym przyciskiem myszy pusty obszar w oknie i kliknij Pokaż tabelę...
  50. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie Pracownicy i kliknij Zamknij
  51. Przeciągnij numer pracownika i upuść go na ProcessedBy
  52. W dolnej części okna zastąp ProcessedBy ciągiem
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"

  53. Przełącz zapytanie do widoku arkusza danych

  54. Zwróć uwagę na liczbę rekordów:46.
    Zamknij zapytanie bez zapisywania go
  55. W okienku nawigacji kliknij dwukrotnie tabelę Pracownicy i utwórz nowy rekord w następujący sposób (dotyczy to transakcji dokonywanych w banku, na przykład najemcy, który wpłaca pieniądze na czynsz bezpośrednio w banku):
    Liczba pracownika Imię Nazwisko Tytuł 00000 Automatyczne przetwarzanie transakcji elektronicznej
  56. Zamknij tabelę Pracownicy
  57. W okienku nawigacji kliknij prawym przyciskiem myszy tabelę Płatności i kliknij Widok projektu
  58. W górnej części okna kliknij Przetworzone przez
  59. W dolnej części kliknij Wartość domyślna i wpisz „00000”
  60. Zapisz i zamknij stół
  61. Otwórz tabelę płatności
  62. W kolumnie ProcessedBy, w każdej pustej komórce wpisz 00000
  63. Zamknij tabelę płatności
  64. Na wstążce kliknij Utwórz i kliknij Projekt zapytania
  65. W oknie dialogowym Pokaż tabelę kliknij dwukrotnie Płatności i pracownicy
  66. Kliknij Zamknij
  67. Przeciągnij numer pracownika i upuść go na ProcessedBy
  68. Na liście Płatności kliknij dwukrotnie numer paragonu i datę płatności
  69. Naciśnij klawisz Tab i wpisz
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  70. Na liście Płatności kliknij dwukrotnie Numer rejestracyjny i Kwota płatności
  71. Przełącz zapytanie do widoku arkusza danych
  72. Zwróć uwagę na liczbę rekordów:63.
    Zamknij zapytanie bez zapisywania go

Dołączanie do więcej niż dwóch stołów

Jak dotąd nasze zestawienia złączeń obejmowały tylko dwie tabele. Właściwie możesz użyć większej liczby tabel. Podstawowa formuła dołączenia do trzech stołów to:

SELECT field-name(s) FROM first-table
first-join-type second-table ON condition1
second-join-type third-table ON condition2

Wyrażenie rozpoczyna się od połączenia pierwszej z drugą tabelą, co oznacza, że ​​obie tabele powinny współdzielić kolumnę w relacji typu klucz podstawowy-klucz obcy. W ten sam sposób możesz utworzyć drugie sprzężenie. Oczywiście druga i trzecia tabela powinny mieć wspólną kolumnę. W większości przypadków powinna istnieć kolumna współdzielona przez wszystkie trzy tabele. W większości przypadków relacja zaczyna się od kolumny klucza podstawowego z tabeli nadrzędnej. Ta kolumna jest następnie reprezentowana jako klucz obcy w pozostałych dwóch tabelach.

Praktyczna nauka:łączenie więcej niż dwóch stołów

  1. Na wstążce kliknij Utwórz i kliknij Projekt formularza
  2. W arkuszu właściwości kliknij kartę Wszystkie.
    Kliknij Źródło nagrywania i kliknij jego przycisk z wielokropkiem
  3. W tabeli Pokaż dwukrotnie kliknij Pracownicy, rejestracje i apartamenty
  4. Kliknij Zamknij
  5. Przeciągnij numer pracownika z listy pracowników i upuść go na ProcessedBy na liście rejestracji
  6. Przeciągnij kod apartamentu z listy apartamentów i upuść go na PropNbr na liście rejestracji

  7. Na liście Rejestracje kliknij dwukrotnie identyfikator rejestracji i datę rejestracji
  8. Naciśnij klawisz Tab i wpisz
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  9. Na liście Rejestracje kliknij dwukrotnie imię, nazwisko, stan cywilny i liczbę dzieci
  10. Naciśnij klawisz Tab i wpisz:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. Wyświetl widok SQL zapytania:
    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. Zamknij Konstruktora zapytań
  13. Po zapytaniu, czy chcesz zapisać zmiany, kliknij Tak
  14. Zapisz formularz jako Przydziały czynszu
  15. Kliknij dwukrotnie przycisk na przecięciu linijek
  16. W arkuszu właściwości zmień następujące cechy:
    Podpis:Apartamenty Lambda Square - Przydział czynszu
    Wartość domyślna:Formularz ciągły
    Automatyczne centrowanie:Tak
    Przyciski nawigacyjne:Nie
  17. Na wstążce kliknij Projekt
  18. W sekcji Narzędzia kliknij Dodaj istniejące pola
  19. Na Liście pól kliknij Mieszkanie, naciśnij i przytrzymaj Shift, kliknij Zarejestruj nr i zwolnij Shift
  20. Przeciągnij zaznaczenie do formularza
  21. Na Wstążce kliknij Rozmieść i kliknij Tabela
  22. Przeciągnij zaznaczenie w lewo
  23. Naciśnij Ctrl + A, aby wybrać wszystkie elementy sterujące
  24. Na Wstążce kliknij Usuń układ
  25. Dokończ projekt formularza. Oto przykład:

  26. Zapisz i zamknij formularz

Połączenia danych i analizy rekordów

Sortowanie rekordów

W dotychczas utworzonych złączeniach danych uwzględniliśmy wszystkie rekordy i pozwoliliśmy, aby silnik bazy danych wylistował je wyłącznie za pomocą reguł złączeń wbudowanych w SQL. Aby uczynić taką listę bardziej restrykcyjną, można zastosować pewne warunki, według których można odizolować niektóre rekordy. Filtry można tworzyć wizualnie w widoku projektu zapytania lub w podobnym oknie. Możesz także utworzyć filtr w SQL. Tak jak w poprzednich lekcjach, aby uwzględnić kryterium w WYBIERZ oświadczenie, możesz utworzyć GDZIE klauzula.

Praktyczna nauka:wprowadzenie łączeń i analiza danych

  1. Otwórz bazę danych Monson University1 używaną wcześniej
  2. Aby rozpocząć zapytanie, na Wstążce kliknij Utwórz i kliknij Projekt zapytania
  3. W oknie dialogowym Pokaż tabelę kliknij Zamknij
  4. Kliknij prawym przyciskiem myszy górną część okna i kliknij Widok SQL
  5. Zmień oświadczenie w następujący sposób:
    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. Podgląd wyników w widoku arkusza danych
  7. W razie potrzeby na Wstążce kliknij Strona główna.
    Zmień następujące cechy:
    Nazwa czcionki:Californian FB (jeśli nie masz tej czcionki, wybierz Times New Roman)
    Kolor czcionki:niebieski, akcent 1, jaśniejszy 80% (kolory motywu:piąta kolumna, drugi wiersz)
    Kolor tła:Więcej kolorów:Czerwony:195, Zielony:95, Niebieski:15
    Linie siatki:poziome
    Alternatywny kolor wiersza:Więcej kolorów:Czerwony:128, Zielony:0, Niebieski:0

  8. Zamknij zapytanie bez zapisywania go
  9. Zamknij Microsoft Access

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak profesjonaliści z branży nieruchomości mogą korzystać z Microsoft Access

  2. Śledź mnie na Twitterze podczas Microsoft MVP Summit w przyszłym tygodniu

  3. Jak dodać podformularz do formularza w programie Access 2016

  4. Jakie są korzyści ze współpracy z firmą zajmującą się wsparciem dostępu?

  5. Jak poruszać się po otwierającym obszarze roboczym programu Access 2019