Access
 sql >> Datenbank >  >> RDS >> Access

Einführung in Datenverknüpfungen und -beziehungen

Optionen für Datenverknüpfungen

Datenverknüpfungen und Datensatznullität

Manchmal haben Sie eine Tabelle, in der in einem Feld einige Datensätze fehlen. Hier ist ein Beispiel für eine Mitarbeiterliste, in der einige Datensätze die Abteilung, zu der der Mitarbeiter gehört, nicht angeben:

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

Dies würde produzieren:

Wenn Sie eine Inner-Join-Abfrage von zwei Tabellen erstellen, die eine Beziehung haben, und einigen Datensätzen der untergeordneten Tabelle einige Werte in der Fremdschlüsselspalte fehlen, würde die Abfrage nur die Datensätze erzeugen, die einen Wert haben. Hier ist ein Beispiel:

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

Dies würde produzieren:

Beachten Sie, dass die Abfrage weniger Datensätze erzeugt. Zufällig mögen Datenbank-Engines keine Null-Datensätze, insbesondere nicht bei gemeinsam genutzten Feldern, Feldern, die an Beziehungen beteiligt sind. Um sicherzustellen, dass alle Datensätze einer untergeordneten Tabelle von einer Abfrage erstellt werden, erstellen Sie einen Standardwert für Datensätze, deren Werte fehlen. Wenn die Beziehung eine einfache Ganzzahl verwendet, erstellen Sie einen Datensatz mit dem Wert 0. Wenn die Beziehung eine Zeichenfolge verwendet, können Sie einen Datensatz mit dem Wert „N/A“ erstellen. Wenn die Datensätze von einem Computer verarbeitet werden, können Sie einen Datensatz mit einem generischen/zufälligen Wert wie 00000 oder so ähnlich erstellen.

Praktisches Lernen:Umgang mit Datenverknüpfungen und Datensatznullität

  1. Starten Sie Microsoft Access
  2. Öffnen Sie aus den Ressourcen, die diese Lektionen begleiten, die Altair Realtors3-Datenbank
  3. Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
  4. Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Eigenschaften“ und klicken Sie auf „Schließen“
  5. Doppelklicken Sie in der Eigenschaftenliste auf PropertyNumber, City und State
  6. Wechseln Sie die Abfrage zur Datenblattansicht:

  7. Beachten Sie die Anzahl der Datensätze:48.
    Wechseln Sie die Abfrage in die Entwurfsansicht
  8. Klicken Sie mit der rechten Maustaste auf einen leeren Bereich oben im Fenster und klicken Sie auf Tabelle anzeigen
  9. Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf PropertyTypes und klicken Sie auf Schließen
  10. Doppelklicken Sie in der PropertyTypes-Liste auf PropertyType

  11. Wechseln Sie die Abfrage zur Datenblattansicht

  12. Beachten Sie diesmal die Anzahl der Datensätze:44.
    Zeigen Sie die SQL-Ansicht der Abfrage an und ändern Sie ihren Code wie folgt:
    SELECT Properties.PropertyNumber,
           Properties.City,
           Properties.State,
           Conditions.Condition
    FROM   Properties INNER JOIN Conditions
           ON Properties.Condition = Conditions.Condition;
  13. Wechseln Sie die Abfrage zur Datenblattansicht

  14. Beachten Sie die Anzahl der Datensätze:38.
    Schließen Sie die Abfrage, ohne sie zu speichern
  15. Doppelklicken Sie im Navigationsbereich auf das Formular PropertyTypes
  16. Erstellen Sie wie folgt einen neuen Datensatz:
    PropertyType Beschreibung Unbekannt Der Eigenschaftstyp ist nicht verfügbar oder nicht klar. Illustrationen
  17. Schließen Sie die PropertyTypes-Tabelle
  18. Doppelklicken Sie im Navigationsbereich auf das Formular Bedingungen
  19. Erstellen Sie wie folgt einen neuen Datensatz:
    PropertyType Beschreibung Unbekannt Der aktuelle Zustand oder das Erscheinungsbild (innen und/oder außen) der Immobilie wurde nicht geprüft, nicht bewertet oder ist nicht eindeutig bekannt.
  20. Schließen Sie die Bedingungstabelle
  21. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Eigenschaftentabelle und klicken Sie auf Entwurfsansicht
  22. Klicken Sie oben im Fenster auf PropertyType
  23. Klicken Sie unten auf Standardwert und geben Sie Unbekannt ein
  24. Klicken Sie oben im Fenster auf Bedingung
  25. Klicken Sie unten auf Standardwert und geben Sie Unbekannt ein
  26. Speichern Sie die Tabelle und wechseln Sie in die Datenblattansicht
  27. Wählen Sie in der Spalte "PropertyType" für jede leere Zelle "Unknown" aus
  28. Wählen Sie in der Spalte "Bedingung" für jede leere Zelle "Unbekannt" aus
  29. Beachten Sie, dass es sowohl für die PropertyType- als auch für die Condition-Spalten einen Standardwert gibt
  30. Indem Sie nur die angegebenen Werte festlegen, erstellen Sie neue Datensätze wie folgt:
    Immobiliennummer Eigenschaftstyp Stadt Zustand Postleitzahl Schlafzimmer Badezimmer Fertig gestellter Keller Innengarage Zustand Marktwert 476005 Einfamilienhaus Hannover PA 17331 3 2,50 Geprüft 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condominium Alexandria VA 3 2,00 Needs Repair 622845 297427 Matinsburg Excellent 729336 Alexandria VA 3 2,50 Needs Repair 750000 300618 Harrisburg PA 17109 5 3,50 Geprüft Geprüft Gute Form 515885

  31. Schließen Sie die Tabelle
  32. Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
  33. Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Eigenschaften“ und klicken Sie auf „Schließen“
  34. Doppelklicken Sie in der Eigenschaftenliste auf PropertyNumber, City und State
  35. Wechseln Sie die Abfrage zur Datenblattansicht
  36. Beachten Sie die Anzahl der Datensätze:51.
    Wechseln Sie die Abfrage in die Entwurfsansicht
  37. Klicken Sie mit der rechten Maustaste auf einen leeren Bereich oben im Fenster und klicken Sie auf Tabelle anzeigen
  38. Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf PropertyTypes und klicken Sie auf Schließen
  39. Ziehen Sie PropertyType in der PropertyTypes-Liste und legen Sie es auf City unten auf der Seite ab
  40. Doppelklicken Sie in der Eigenschaftenliste auf Schlafzimmer und Badezimmer

  41. Wechseln Sie die Abfrage zur Datenblattansicht

  42. Beachten Sie diesmal die Anzahl der Datensätze:51.
    Schließen Sie die Abfrage, ohne sie zu speichern
  43. Öffnen Sie die zuvor erstellte und verwendete Lambda Square Apartments1-Datenbank
  44. Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
  45. Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Zahlungen“ und klicken Sie auf „Schließen“
  46. Doppelklicken Sie in der Zahlungsliste auf ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber und PaymentAmount
  47. Wechseln Sie die Abfrage zur Datenblattansicht

  48. Beachten Sie die Anzahl der Datensätze:63.
    Wechseln Sie die Abfrage in die Entwurfsansicht
  49. Klicken Sie mit der rechten Maustaste auf einen leeren Bereich im Fenster und klicken Sie auf Tabelle anzeigen...
  50. Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Mitarbeiter“ und klicken Sie auf „Schließen“.
  51. EmployeeNumber ziehen und auf ProcessedBy ablegen
  52. Ersetzen Sie unten im Fenster ProcessedBy durch
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"

  53. Wechseln Sie die Abfrage zur Datenblattansicht

  54. Beachten Sie die Anzahl der Datensätze:46.
    Schließen Sie die Abfrage, ohne sie zu speichern
  55. Doppelklicken Sie im Navigationsbereich auf die Tabelle „Employees“ und erstellen Sie wie folgt einen neuen Datensatz (dies gilt für Transaktionen, die bei der Bank getätigt werden, z. B. wenn ein Mieter Mietgeld direkt bei der Bank einzahlt):
    Mitarbeiternummer Vorname Nachname Titel 00000 Elektronische Transaktion automatisch verarbeiten
  56. Schließen Sie die Mitarbeitertabelle
  57. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Tabelle "Zahlungen" und dann auf "Entwurfsansicht".
  58. Klicken Sie oben im Fenster auf ProcessedBy
  59. Klicken Sie unten auf Standardwert und geben Sie "00000" ein
  60. Speichern und schließen Sie die Tabelle
  61. Öffnen Sie die Zahlungstabelle
  62. Geben Sie in der Spalte "ProcessedBy" in jede leere Zelle 00000 ein
  63. Schließen Sie die Zahlungstabelle
  64. Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
  65. Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Zahlungen und Mitarbeiter“
  66. Klicken Sie auf Schließen
  67. EmployeeNumber ziehen und auf ProcessedBy ablegen
  68. Doppelklicken Sie in der Zahlungsliste auf ReceiptNumber und PaymentDate
  69. Drücken Sie die Tabulatortaste und geben Sie
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
    ein
  70. Doppelklicken Sie in der Zahlungsliste auf RegistrationNumber und PaymentAmount
  71. Wechseln Sie die Abfrage zur Datenblattansicht
  72. Beachten Sie die Anzahl der Datensätze:63.
    Schließen Sie die Abfrage, ohne sie zu speichern

Beitritt zu mehr als zwei Tischen

Bisher umfassten unsere Join-Anweisungen nur zwei Tabellen. Tatsächlich können Sie mehr Tabellen verwenden. Die grundlegende Formel zum Verbinden von drei Tabellen lautet:

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

Sie beginnen den Ausdruck, indem Sie die erste mit der zweiten Tabelle verknüpfen, was bedeutet, dass beide Tabellen eine Spalte in einer Primärschlüssel-Fremdschlüssel-Beziehung teilen sollten. Auf die gleiche Weise können Sie den zweiten Join erstellen. Natürlich sollten die zweite und die dritte Tabelle eine gemeinsame Spalte haben. In den meisten Fällen sollte es eine Spalte geben, die alle drei Tabellen gemeinsam nutzen. Meistens beginnt die Beziehung mit einer Primärschlüsselspalte aus der übergeordneten Tabelle. Diese Spalte wird dann in den anderen beiden Tabellen als Fremdschlüssel dargestellt.

Praktisches Lernen:Verbinden von mehr als zwei Tischen

  1. Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Formularentwurf
  2. Klicken Sie im Eigenschaftenblatt auf die Registerkarte Alle.
    Klicken Sie auf Datensatzquelle und dann auf die Schaltfläche mit den Auslassungspunkten
  3. Doppelklicken Sie in der Anzeigetabelle auf Mitarbeiter, Anmeldungen und Wohnungen
  4. Klicken Sie auf Schließen
  5. Ziehen Sie EmployeeNumber aus der Employees-Liste und legen Sie sie auf ProcessedBy in der Registrations-Liste ab
  6. Ziehen Sie ApartmentCode aus der Apartmentliste und legen Sie ihn auf PropNbr in der Registrierungsliste ab

  7. Doppelklicken Sie in der Registrierungsliste auf RegistrationID und RegistrationDate
  8. Drücken Sie die Tabulatortaste und geben Sie
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
    ein
  9. Doppelklicken Sie in der Registrierungsliste auf FirstName, LastName, MaritalStatus und NumberOfChildren
  10. Drücken Sie die Tabulatortaste und geben Sie Folgendes ein:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. Anzeigen der SQL-Ansicht der Abfrage:
    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. Schließen Sie den Abfragegenerator
  13. Wenn Sie gefragt werden, ob Sie die Änderungen speichern möchten, klicken Sie auf Ja
  14. Speichern Sie das Formular als Mietzuteilungen
  15. Doppelklicken Sie auf die Schaltfläche am Schnittpunkt der Lineale
  16. Ändern Sie im Eigenschaftenblatt die folgenden Eigenschaften:
    Bildunterschrift:Lambda Square Apartments - Mietzuweisung
    Standardwert:Endlosformular
    Automatische Zentrierung:Ja
    Navigationsschaltflächen:Nein
  17. Klicken Sie in der Multifunktionsleiste auf Design
  18. Klicken Sie im Abschnitt „Tools“ auf „Vorhandene Felder hinzufügen“
  19. Klicken Sie in der Feldliste auf Apartment, halten Sie die Umschalttaste gedrückt, klicken Sie auf Registernummer und lassen Sie die Umschalttaste los
  20. Ziehen Sie die Auswahl auf das Formular
  21. Klicken Sie in der Multifunktionsleiste auf Anordnen und dann auf Tabellarisch
  22. Ziehen Sie die Auswahl nach links
  23. Drücken Sie Strg + A, um alle Steuerelemente auszuwählen
  24. Klicken Sie in der Multifunktionsleiste auf Layout entfernen
  25. Vervollständigen Sie das Design des Formulars. Hier ist ein Beispiel:

  26. Speichern und schließen Sie das Formular

Datenverknüpfungen und Datensatzanalysen

Datensätze sortieren

Bei den bisher erstellten Datenverknüpfungen haben wir alle Datensätze berücksichtigt und sie von der Datenbank-Engine auflisten lassen, wobei nur die in SQL integrierten Verknüpfungsregeln verwendet wurden. Um eine solche Liste restriktiver zu gestalten, können Sie einige Bedingungen anwenden, um einige Datensätze zu isolieren. Sie können die Filter visuell in der Entwurfsansicht einer Abfrage oder in einem ähnlichen Fenster erstellen. Sie können auch einen Filter in SQL erstellen. Wie in den vorherigen Lektionen, um ein Kriterium in ein SELECT aufzunehmen -Anweisung können Sie ein WHERE erstellen Klausel.

Praktisches Lernen:Einführung in Joins und Datenanalyse

  1. Öffnen Sie die zuvor verwendete Datenbank der Monson University1
  2. Um eine Abfrage zu starten, klicken Sie im Menüband auf Erstellen und dann auf Abfragedesign
  3. Klicken Sie im Dialogfeld Tabelle anzeigen auf Schließen
  4. Klicken Sie mit der rechten Maustaste auf die obere Seite des Fensters und klicken Sie auf SQL-Ansicht
  5. Ändern Sie die Anweisung wie folgt:
    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. Vorschau der Ergebnisse in der Datenblattansicht
  7. Klicken Sie ggf. auf der Multifunktionsleiste auf Startseite.
    Ändern Sie die folgenden Eigenschaften:
    Schriftartname:Californian FB (wenn Sie diese Schriftart nicht haben, wählen Sie Times New Roman)
    Schriftfarbe:Blau, Akzent 1, Heller 80 % (Designfarben:5. Spalte, 2. Reihe)
    Hintergrundfarbe:Weitere Farben:Rot:195, Grün:95, Blau:15
    Gitternetzlinien:Horizontal
    Alternative Zeilenfarbe:Weitere Farben:Rot:128, Grün:0, Blau:0

  8. Schließen Sie die Abfrage, ohne sie zu speichern
  9. Schließen Sie Microsoft Access