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
- Starten Sie Microsoft Access
- Öffnen Sie aus den Ressourcen, die diese Lektionen begleiten, die Altair Realtors3-Datenbank
- Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
- Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Eigenschaften“ und klicken Sie auf „Schließen“
- Doppelklicken Sie in der Eigenschaftenliste auf PropertyNumber, City und State
- Wechseln Sie die Abfrage zur Datenblattansicht:
- Beachten Sie die Anzahl der Datensätze:48.
Wechseln Sie die Abfrage in die Entwurfsansicht - Klicken Sie mit der rechten Maustaste auf einen leeren Bereich oben im Fenster und klicken Sie auf Tabelle anzeigen
- Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf PropertyTypes und klicken Sie auf Schließen
- Doppelklicken Sie in der PropertyTypes-Liste auf PropertyType
- Wechseln Sie die Abfrage zur Datenblattansicht
- 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;
- Wechseln Sie die Abfrage zur Datenblattansicht
- Beachten Sie die Anzahl der Datensätze:38.
Schließen Sie die Abfrage, ohne sie zu speichern - Doppelklicken Sie im Navigationsbereich auf das Formular PropertyTypes
- Erstellen Sie wie folgt einen neuen Datensatz:
PropertyType Beschreibung Unbekannt Der Eigenschaftstyp ist nicht verfügbar oder nicht klar. Illustrationen - Schließen Sie die PropertyTypes-Tabelle
- Doppelklicken Sie im Navigationsbereich auf das Formular Bedingungen
- 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. - Schließen Sie die Bedingungstabelle
- Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Eigenschaftentabelle und klicken Sie auf Entwurfsansicht
- Klicken Sie oben im Fenster auf PropertyType
- Klicken Sie unten auf Standardwert und geben Sie Unbekannt ein
- Klicken Sie oben im Fenster auf Bedingung
- Klicken Sie unten auf Standardwert und geben Sie Unbekannt ein
- Speichern Sie die Tabelle und wechseln Sie in die Datenblattansicht
- Wählen Sie in der Spalte "PropertyType" für jede leere Zelle "Unknown" aus
- Wählen Sie in der Spalte "Bedingung" für jede leere Zelle "Unbekannt" aus
- Beachten Sie, dass es sowohl für die PropertyType- als auch für die Condition-Spalten einen Standardwert gibt
- 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 - Schließen Sie die Tabelle
- Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
- Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Eigenschaften“ und klicken Sie auf „Schließen“
- Doppelklicken Sie in der Eigenschaftenliste auf PropertyNumber, City und State
- Wechseln Sie die Abfrage zur Datenblattansicht
- Beachten Sie die Anzahl der Datensätze:51.
Wechseln Sie die Abfrage in die Entwurfsansicht - Klicken Sie mit der rechten Maustaste auf einen leeren Bereich oben im Fenster und klicken Sie auf Tabelle anzeigen
- Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf PropertyTypes und klicken Sie auf Schließen
- Ziehen Sie PropertyType in der PropertyTypes-Liste und legen Sie es auf City unten auf der Seite ab
- Doppelklicken Sie in der Eigenschaftenliste auf Schlafzimmer und Badezimmer
- Wechseln Sie die Abfrage zur Datenblattansicht
- Beachten Sie diesmal die Anzahl der Datensätze:51.
Schließen Sie die Abfrage, ohne sie zu speichern - Öffnen Sie die zuvor erstellte und verwendete Lambda Square Apartments1-Datenbank
- Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
- Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Zahlungen“ und klicken Sie auf „Schließen“
- Doppelklicken Sie in der Zahlungsliste auf ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber und PaymentAmount
- Wechseln Sie die Abfrage zur Datenblattansicht
- Beachten Sie die Anzahl der Datensätze:63.
Wechseln Sie die Abfrage in die Entwurfsansicht - Klicken Sie mit der rechten Maustaste auf einen leeren Bereich im Fenster und klicken Sie auf Tabelle anzeigen...
- Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Mitarbeiter“ und klicken Sie auf „Schließen“.
- EmployeeNumber ziehen und auf ProcessedBy ablegen
- Ersetzen Sie unten im Fenster ProcessedBy durch
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- Wechseln Sie die Abfrage zur Datenblattansicht
- Beachten Sie die Anzahl der Datensätze:46.
Schließen Sie die Abfrage, ohne sie zu speichern - 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 - Schließen Sie die Mitarbeitertabelle
- Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Tabelle "Zahlungen" und dann auf "Entwurfsansicht".
- Klicken Sie oben im Fenster auf ProcessedBy
- Klicken Sie unten auf Standardwert und geben Sie "00000" ein
- Speichern und schließen Sie die Tabelle
- Öffnen Sie die Zahlungstabelle
- Geben Sie in der Spalte "ProcessedBy" in jede leere Zelle 00000 ein
- Schließen Sie die Zahlungstabelle
- Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
- Doppelklicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Zahlungen und Mitarbeiter“
- Klicken Sie auf Schließen
- EmployeeNumber ziehen und auf ProcessedBy ablegen
- Doppelklicken Sie in der Zahlungsliste auf ReceiptNumber und PaymentDate
- Drücken Sie die Tabulatortaste und geben Sie
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
ein - Doppelklicken Sie in der Zahlungsliste auf RegistrationNumber und PaymentAmount
- Wechseln Sie die Abfrage zur Datenblattansicht
- 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
- Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Formularentwurf
- Klicken Sie im Eigenschaftenblatt auf die Registerkarte Alle.
Klicken Sie auf Datensatzquelle und dann auf die Schaltfläche mit den Auslassungspunkten - Doppelklicken Sie in der Anzeigetabelle auf Mitarbeiter, Anmeldungen und Wohnungen
- Klicken Sie auf Schließen
- Ziehen Sie EmployeeNumber aus der Employees-Liste und legen Sie sie auf ProcessedBy in der Registrations-Liste ab
- Ziehen Sie ApartmentCode aus der Apartmentliste und legen Sie ihn auf PropNbr in der Registrierungsliste ab
- Doppelklicken Sie in der Registrierungsliste auf RegistrationID und RegistrationDate
- Drücken Sie die Tabulatortaste und geben Sie
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
ein - Doppelklicken Sie in der Registrierungsliste auf FirstName, LastName, MaritalStatus und NumberOfChildren
- Drücken Sie die Tabulatortaste und geben Sie Folgendes ein:
Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
- 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;
- Schließen Sie den Abfragegenerator
- Wenn Sie gefragt werden, ob Sie die Änderungen speichern möchten, klicken Sie auf Ja
- Speichern Sie das Formular als Mietzuteilungen
- Doppelklicken Sie auf die Schaltfläche am Schnittpunkt der Lineale
- Ändern Sie im Eigenschaftenblatt die folgenden Eigenschaften:
Bildunterschrift:Lambda Square Apartments - Mietzuweisung
Standardwert:Endlosformular
Automatische Zentrierung:Ja
Navigationsschaltflächen:Nein - Klicken Sie in der Multifunktionsleiste auf Design
- Klicken Sie im Abschnitt „Tools“ auf „Vorhandene Felder hinzufügen“
- Klicken Sie in der Feldliste auf Apartment, halten Sie die Umschalttaste gedrückt, klicken Sie auf Registernummer und lassen Sie die Umschalttaste los
- Ziehen Sie die Auswahl auf das Formular
- Klicken Sie in der Multifunktionsleiste auf Anordnen und dann auf Tabellarisch
- Ziehen Sie die Auswahl nach links
- Drücken Sie Strg + A, um alle Steuerelemente auszuwählen
- Klicken Sie in der Multifunktionsleiste auf Layout entfernen
- Vervollständigen Sie das Design des Formulars. Hier ist ein Beispiel:
- 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
- Öffnen Sie die zuvor verwendete Datenbank der Monson University1
- Um eine Abfrage zu starten, klicken Sie im Menüband auf Erstellen und dann auf Abfragedesign
- Klicken Sie im Dialogfeld Tabelle anzeigen auf Schließen
- Klicken Sie mit der rechten Maustaste auf die obere Seite des Fensters und klicken Sie auf SQL-Ansicht
- Ä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;
- Vorschau der Ergebnisse in der Datenblattansicht
- 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 - Schließen Sie die Abfrage, ohne sie zu speichern
- Schließen Sie Microsoft Access