Parametrisierte Abfragen
Einführung
Eine parametrisierte Abfrage ist eine Abfrage, bei der ein Wert in einem Kriterium fehlt. Das Wort "fehlt" hier scheint negativ zu sein, um auf etwas Schlechtes in der Abfrage hinzuweisen, aber das ist nicht so. Die Abfrage wird absichtlich so erstellt, dass ihrem Filter ein Wert bereitgestellt wird. Zum Zeitpunkt der Erstellung der Abfrage wird der Filter auf eine bestimmte Weise eingerichtet.
Eine parametrisierte Abfrage ist eine Abfrage, bei der ein Wert in einem Kriterium fehlt. Das Wort "fehlt" hier scheint negativ zu sein, um auf etwas Schlechtes in der Abfrage hinzuweisen, aber das ist nicht so. Die Abfrage wird absichtlich so erstellt, dass ihrem Filter ein Wert bereitgestellt wird. Zum Zeitpunkt der Erstellung der Abfrage wird der Filter auf eine bestimmte Weise eingerichtet. Wenn die Abfrage ausgeführt wird, muss der fehlende Wert bereitgestellt werden, um das Kriterium zu vervollständigen, dann ist die Abfrage abgeschlossen und das Ergebnis der Abfrage wird erzeugt. Meistens wird eine parametrisierte Abfrage erstellt, sodass der Benutzer die zu erstellenden Datensätze angeben muss.
Obwohl wir angegeben haben, dass die Abfrage parametrisiert ist, ist es tatsächlich die SQL-Anweisung, die parametrisiert ist. Das bedeutet, dass Sie einen SQL-Ausdruck erstellen können, der als Datensatzquelle eines Formulars oder Berichts verwendet wird, aber den Benutzer dazu verpflichten, die fehlenden Informationen bereitzustellen, damit das Formular oder der Bericht nur die Datensätze anzeigt, die diesen Wert verwenden.
Praktisches Lernen:Einführung in parametrisierte Abfragen
- Starten Sie Microsoft Access
- Klicken Sie in der Liste der Dateien auf Altair Realtors3 aus der vorherigen Lektion
- Klicken Sie in der Multifunktionsleiste auf Erstellen und dann auf Abfragedesign
- Klicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Eigenschaften“, dann auf „Hinzufügen“ und dann auf „Schließen“.
- Doppelklicken Sie in der oberen Liste auf PropertyNumber, PropertyType, City, Bedrooms, Bathrooms, FinishedBasement, IndoorGarage, Condition und MarketValue
- Um die Ergebnisse anzuzeigen, klicken Sie in der Statusleiste auf die Schaltfläche Datenblatt
- Klicken Sie ggf. auf der Multifunktionsleiste auf Startseite.
Ändern Sie die folgenden Eigenschaften:
Schriftartname:Calisto MT (wenn Sie diese Schriftart nicht haben, wählen Sie Times New Roman)
Hintergrundfarbe:Grün, Akzent 6, Heller 40 % (Designfarben:10. Spalte, 4. Reihe)
Alternative Zeilenfarbe:Grün, Akzent 6, Heller 80 % (Themenfarben:10. Spalte, 2. Reihe) - Klicken Sie nach dem Anzeigen des Ergebnisses im Abschnitt "Ansichten" der Multifunktionsleiste auf den Pfeil unter der Schaltfläche "Ansicht" und dann auf "SQL-Ansicht".
- Ändern Sie die SQL-Anweisung wie folgt:
SELECT Properties.PropertyNumber, Properties.PropertyType AS [Property Type], Properties.City, Properties.Bedrooms AS Beds, Properties.Bathrooms AS Baths, Properties.FinishedBasement AS [Basement?], Properties.IndoorGarage AS [Garage?], Properties.Condition, Properties.MarketValue AS [Market Value] FROM Properties;
- Entwurfsansicht der Abfrage anzeigen
Erstellen einer parametrisierten Abfrage
Beim Erstellen einer parametrisierten Abfrage müssen Sie einen Parameter angeben. Um fortzufahren, öffnen Sie die Abfrage in der Entwurfsansicht und wählen Sie die erforderlichen Spalten aus. Geben Sie im Feld Kriterien des Felds, das die Kriterien enthalten soll, die eckigen Klammern [] ein. Geben Sie innerhalb der Klammern alles ein, was Sie möchten, z. B. eine Nachricht oder eine Frage. Die Nachricht oder Frage wird dem Benutzer präsentiert, der einen Wert in ein Textfeld eingeben muss. Sobald der Benutzer den Wert bereitstellt und auf OK klickt oder die Eingabetaste drückt, wird die Abfrage ausgeführt.
Praktisches Lernen:Erstellen eines parametrisierten SQL-Ausdrucks
- Klicken Sie auf das Feld Kriterien für die Spalte PropertyNumber und geben Sie Folgendes ein:[Enter the property # to view:]
- Wechseln Sie die Abfrage zur Datenblattansicht, um das Ergebnis anzuzeigen
- Geben Sie als Objektnummer 192703 ein
- Klicken Sie auf OK
- Zur Entwurfsansicht zurückkehren
- Löschen Sie [Geben Sie die anzuzeigende Objektnummer ein:]
- Klicken Sie auf das Feld Kriterien für die Spalte Eigenschaftstyp und geben Sie Folgendes ein:[Geben Sie die Art der anzuzeigenden Eigenschaft ein:]
- Wechseln Sie die Abfrage zur Datenblattansicht, um das Ergebnis anzuzeigen
- Geben Sie den Immobilientyp als Stadthaus ein
- Drücken Sie die Eingabetaste
- Zur Entwurfsansicht zurückkehren
Parametrisierte Konjunktion
Sie können eine parametrisierte Abfrage erstellen, die zwei oder mehr Fragen stellt, die kombiniert werden müssen, um die Abfrage abzuschließen. Geben Sie dazu in der Entwurfsansicht der Abfrage eine Nachricht für das Feld Kriterien jeder Spalte ein.
Praktisches Lernen:Erstellen einer parametrisierten Disjunktion
- Klicken Sie in das Kriterienfeld für die Spalte "Schlafzimmer" und geben Sie [Wie viele Schlafzimmer benötigen Sie?] ein
- Wechseln Sie die Abfrage zur Datenblattansicht, um das Ergebnis anzuzeigen
- Geben Sie den Eigenschaftstyp als Einzelfamilie ein und drücken Sie die Eingabetaste
- Geben Sie die Anzahl der Schlafzimmer als 5 ein und drücken Sie die Eingabetaste
- Zur Entwurfsansicht zurückkehren
- Löschen Sie [Wie viele Schlafzimmer benötigen Sie?]
Parametrisierte Disjunktion
Eine parametrisierte Disjunktion fordert zwei oder mehr Werte an. Die Abfrage erzeugt alle Datensätze, die einen der Werte enthalten. Um eine solche parametrisierte Abfrage zu erstellen, fügen Sie die erste Frage oder Nachricht zum Feld Kriterien des gewünschten Felds hinzu. Fügen Sie dann die zweite Nachricht oder Frage zum Oder-Feld derselben Spalte hinzu. Wenn Sie zusätzliche Werte benötigen, geben Sie ihre Fragen oder Nachrichten in die Felder unter der Oder-Zelle derselben Spalte ein.
Praktisches Lernen:Erstellen einer parametrisierten Disjunktion
- Klicken Sie auf das Oder-Feld der Spalte Eigenschaftstyp und geben Sie [Welche andere Eigenschaftsart möchten Sie sehen?] ein
- Wechseln Sie die Abfrage zur Datenblattansicht, um das Ergebnis anzuzeigen
- Geben Sie den ersten Immobilientyp als Stadthaus ein und drücken Sie die Eingabetaste
- Geben Sie den zweiten Eigenschaftstyp als Einzelfamilie ein und drücken Sie die Eingabetaste
- Schließen Sie die Abfrage, ohne sie zu speichern
Aktionsabfragen
Einführung
Microsoft Access bietet einige vorgefertigte Abfragen, mit denen Sie halbkomplexe Aktionen für vorhandene Tabellen ausführen können. Die Aktionen werden als Abfragen ausgeführt. Wenn Sie eine Aktionsabfrage verwenden, erstellen Sie keine reguläre Abfrage im eigentlichen Sinne. Die meisten dieser Abfragen sind normalerweise nur einmal nützlich. Aus diesem Grund müssen Sie sie kaum speichern.
Die Aktionsabfrage "Tabelle erstellen"
Anstatt zuerst eine Tabelle zu erstellen und sie dann mit Werten zu füllen, können Sie, wenn Sie bereits Werte in einer Tabelle gespeichert haben, mit Microsoft Access eine neue Tabelle erstellen, die mit Werten aus dieser Tabelle gefüllt ist.
Bei der Verwendung von Abfragen gibt es zwei Haupttechniken, mit denen Sie eine neue Tabelle für Ihre Datenbank erstellen können. Microsoft Access bietet eine Technik namens Make Table Query. Diese Art von Abfrage wird verwendet, um alle oder einige Felder einer vorhandenen Tabelle abzurufen, und anstatt eine neue Abfrage zu erstellen, die von einer vorhandenen Tabelle abhängt, erhalten Sie eine brandneue Tabelle, unabhängig von einer vorhandenen Tabelle. Mit dieser Art von Aktion können Sie eine neue Tabelle basierend auf einer Regel erstellen, die auf eine vorhandene Tabelle angewendet wird.
Um eine Tabelle mit einer Microsoft Access-Abfrage zu erstellen, starten Sie eine neue Abfrage in der Entwurfsansicht. Klicken Sie dann im Abschnitt Abfragetyp des Menübands auf die Schaltfläche Tabelle erstellen . Dies würde Ihnen ein Dialogfeld "Tabelle erstellen" anzeigen, in dem Sie einen neuen Namen für die Abfrage angeben oder eine vorhandene Tabelle auswählen können, die die neuen Daten erhalten würde.
Praktisches Lernen:Verwenden von Make-Table-Abfragen
- Die Altair Realtors3-Datenbank sollte noch geöffnet sein.
Klicken Sie auf der Multifunktionsleiste auf Erstellen und im Abschnitt Abfragen auf Abfragedesign - Klicken Sie im Dialogfeld "Tabellen anzeigen" auf "Eigenschaften", klicken Sie auf "Hinzufügen" und dann auf "Schließen"
- Klicken Sie im Abschnitt "Abfragetyp" der Multifunktionsleiste auf die Schaltfläche "Tabelle erstellen".
- Geben Sie im Kombinationsfeld Tabellenname Eigentumswohnungen ein als Name der Tabelle
- Stellen Sie sicher, dass das Optionsfeld Aktuelle Datenbank ausgewählt ist, und klicken Sie auf OK
- Doppelklicken Sie in der Eigenschaftenliste auf PropertyNumber, PropertyType, City, Locality, State, Bedrooms, Bathrooms, FinishedBasement, IndoorGarage, Condition und MarketValue
- Klicken Sie unten im Fenster auf das Feld "Kriterien" für die Spalte "PropertyType" und geben Sie Eigentumswohnung ein
- Klicken Sie auf das Kontrollkästchen Anzeigen, um das Häkchen zu entfernen
- Um die Tabelle zu erstellen, klicken Sie auf der Multifunktionsleiste auf die Schaltfläche Ausführen
- Sie erhalten eine Nachricht
- Lesen Sie es und klicken Sie auf Ja
- Schließen Sie die Abfrage, ohne sie zu speichern
- Doppelklicken Sie im Navigationsbereich auf die Tabelle Condominiums
- Schließen Sie die Tabelle
Die Aktualisierungsabfrage
Wenn Sie eine große Liste haben und viele Datensätze eine gemeinsame Änderung erhalten müssen, können Sie eine spezielle Abfrage mit dem Namen Aktualisierungsabfrage erstellen. Mit einer Aktualisierungsabfrage können Sie die vorhandenen Werte einer oder mehrerer Spalten einer Tabelle ändern. Mit anderen Worten, Sie können die Werte abrufen, die bereits in den Feldern einer Tabelle stehen, diese Werte ändern und die Tabelle damit speichern lassen.
Um eine Anfügeabfrage zu erstellen, starten Sie eine Abfrage in der Entwurfsansicht. Klicken Sie im Abschnitt Abfragetyp des Menübands auf die Schaltfläche Aktualisieren . Beim Erstellen der Abfrage müssen Sie eine Bedingung festlegen, die Microsoft Access auf eine Tabelle anwendet, um herauszufinden, welche Datensätze aktualisiert werden müssen. Dazu verwenden Sie das Kriterienfeld einer Spalte, so wie wir es bei der Datenanalyse gelernt haben.
Praktisches Lernen:Aktualisieren von Aufzeichnungen
- Öffnen Sie die Datenbank Metro System1 aus Lektion 18
- Doppelklicken Sie im Navigationsbereich auf die Silver Line-Tabelle, um ihre Datensätze anzuzeigen
- Schließen Sie die Tabelle
- Klicken Sie im Menüband auf Erstellen und im Abschnitt Abfragen auf Abfragedesign
- Klicken Sie im Dialogfeld „Tabellen anzeigen“ auf „Silberne Linie“, dann auf „Hinzufügen“ und dann auf „Schließen“
- Klicken Sie im Abschnitt "Abfragetyp" der Multifunktionsleiste auf die Schaltfläche "Aktualisieren".
- Doppelklicken Sie in der oberen Liste auf MetroLine
- Klicken Sie unten im Fenster auf das Feld Kriterien für die Spalte MetroLine und geben Sie Silber ein
- Um die Aktion auszuführen, klicken Sie auf der Multifunktionsleiste auf die Schaltfläche Ausführen
- Sie erhalten ein Nachrichtenfeld
- Schließen Sie die Abfrage, ohne sie zu speichern
- Doppelklicken Sie im Navigationsbereich auf die Silver Line-Tabelle, um sie zu überprüfen
- Schließen Sie die Tabelle
Eine Append-Abfrage
Wenn Sie eine Tabelle mit einer beträchtlichen Anzahl von Datensätzen haben und diese Datensätze zu einer anderen Tabelle hinzufügen müssen, kann die Arbeit überwältigend werden. Microsoft Access bietet eine Funktion zum Erstellen einer speziellen Abfrage, mit der viele Datensätze in einem Schritt zu einer Tabelle hinzugefügt werden können.
Mit einer Append-Abfrage können Sie Datensätze zu einer vorhandenen Tabelle hinzufügen, aber Sie erstellen die Datensätze nicht. Sie müssen aus einer Tabelle abgerufen und einer anderen Tabelle hinzugefügt werden.
Um eine Anfügeabfrage zu erstellen, starten Sie eine Abfrage in der Entwurfsansicht. Klicken Sie im Abschnitt Abfragetyp des Menübands auf die Schaltfläche Anhängen . Ihnen wird ein Dialogfeld angezeigt, in dem Sie entweder die Tabelle auswählen müssen, der Sie die Datensätze hinzufügen möchten, oder den Namen einer neuen Tabelle angeben, die die Datensätze erhalten soll. Wenn Sie die Datensätze zu einer bestehenden Tabelle hinzufügen möchten, können Sie diese aus dem Kombinationsfeld auswählen.
Wie Sie sich vielleicht vorstellen können, besteht das Anhängen eines Datensatzes darin, einer Tabelle einen Datensatz hinzuzufügen. Wenn Sie dies in SQL tun möchten, erstellen Sie einfach ein INSERT Aussage.
Praktisches Lernen:Anhängen von Aufzeichnungen
- Die Datenbank Metro System1 sollte noch geöffnet sein.
Doppelklicken Sie im Navigationsbereich auf die MetroStations-Tabelle und scrollen Sie in der Liste ganz nach unten - Beachten Sie, dass es keine Stationen für die Silver Line gibt.
Schließen Sie die Tabelle - Klicken Sie im Menüband auf Erstellen und im Abschnitt Abfragen auf Abfragedesign
- Klicken Sie im Dialogfeld „Tabelle anzeigen“ auf „Silberne Linie“, dann auf „Hinzufügen“ und dann auf „Schließen“.
- Klicken Sie im Abschnitt "Abfragetyp" der Multifunktionsleiste auf die Schaltfläche "Anhängen".
- Klicken Sie im Dialogfeld „Anhängen“ auf den Pfeil des Kombinationsfelds „Tabellenname“ und wählen Sie „MetroStations“ aus
- Klicken Sie auf OK
- Doppelklicken Sie in der oberen Liste auf StationNumber, StationName, MetroLine und Location
- Um die Abfrage auszuführen, klicken Sie in der Multifunktionsleiste auf die Schaltfläche Ausführen
- Lesen Sie die Nachricht:
- Schließen Sie die Abfrage, ohne sie zu speichern
- Doppelklicken Sie im Navigationsbereich auf die MetroStations-Tabelle und scrollen Sie in der Liste ganz nach unten
- Beachten Sie, dass es jetzt Stationen für die Silberlinie enthält.
Schließen Sie die Tabelle
Die Löschabfrage
Wenn Sie einige Datensätze haben, die aus einer Tabelle entfernt werden müssen, bietet Microsoft Access verschiedene Techniken zum Löschen solcher Datensätze. Um eine Gruppe von Datensätzen in einer Aktion zu löschen, können Sie eine spezielle Abfrage namens Löschabfrage erstellen.
Wie alle anderen Aktionsabfragen können Sie mit einer Löschabfrage die erforderlichen Felder einer Tabelle auswählen. Der erste Unterschied zwischen dieser und der Auswahlabfrage besteht darin, dass die Löschabfrage wie alle anderen Aktionsabfragen alle Felder auswählt oder berücksichtigt, sogar diejenigen, die Sie nicht in Ihre Anweisung aufnehmen. Die anderen Spalten dienen dazu, die Regeln anzugeben, nach denen ein Datensatz gelöscht werden muss.
Sie können ein Kriterium oder mehrere Kriterien verwenden, um die zu befolgende Regel festzulegen, um einen oder mehrere Datensätze loszuwerden. Wie die meisten anderen Aktionsabfragen ist die Aktion einer Löschabfrage irreversibel.
Praxislernen:Datenbankeinträge löschen
- Die Datenbank Metro System1 sollte noch geöffnet sein.
Doppelklicken Sie im Navigationsbereich auf die MetroStations-Tabelle, um sie zu öffnen - Scrollen Sie nach unten und beachten Sie, dass einige Stationen für die Maroon-Linie sind, aber wir wissen, dass es keine Maroon-U-Bahn-Linie gibt
- Schließen Sie die MetroStations-Tabelle
- Klicken Sie in der Multifunktionsleiste auf Erstellen und im Abschnitt Abfragen auf Abfragedesign
- Klicken Sie im Dialogfeld "Tabellen anzeigen" auf MetroStations, klicken Sie auf Hinzufügen und dann auf Schließen
- Klicken Sie im Abschnitt "Abfragetyp" der Multifunktionsleiste auf die Schaltfläche "Löschen".
- Doppelklicken Sie in der oberen Liste auf MetroLine
- Klicken Sie unten auf das Kriterienfeld für die Spalte und geben Sie kastanienbraun ein
- Um die Aktion auszuführen, klicken Sie auf der Multifunktionsleiste auf die Schaltfläche Ausführen
- Sie erhalten ein Nachrichtenfeld
- Lesen Sie es und klicken Sie auf Ja
- Doppelklicken Sie im Navigationsbereich auf die MetroStations-Tabelle, um sie zu öffnen
- Scrollen Sie nach unten und beachten Sie, dass es keine Maroon-Stationen mehr gibt
- Schließen Sie die MetroStations-Tabelle
- Schließen Sie die Tabelle
Spezielle Operationen für Abfragen
Zusammenführen der Datensätze vieler Tabellen
Wenn Sie über verschiedene Tabellen verfügen, können Sie eine Abfrage erstellen, die ihre Datensätze kombiniert, sodass Sie diese Datensätze untersuchen können, wenn sie zusammengesetzt sind. Um Ihnen dabei zu helfen, bietet die SQL einen Operator namens UNION . Die primäre Formel zur Verwendung lautet:
SELECT columns-names FROM table-name1 UNION [ALL] SELECT columns-names FROM table-name2
Dies entspricht der Erstellung von zwei SELECT Aussagen. Jeder enthält einige Spalten und eine Tabelle. Beide Anweisungen müssen die gleiche Anzahl von Spalten enthalten. Die Datentypen der Spalten an jeder Position müssen kompatibel sein.
Praktisches Lernen:Zusammenführen der Datensätze vieler Tabellen
- Öffnen Sie die Ceil Inn3-Datenbank aus Lektion 40
- Klicken Sie im Menüband auf Erstellen und im Abschnitt Abfragen auf Abfragedesign
- Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf Mitarbeiter und Sachbearbeiter
- Klicken Sie auf Schließen
- Doppelklicken Sie in den Employees-Listen auf EmployeeNumber, FirstName und LastName
- Doppelklicken Sie in der Clerks-Liste auf ClerkCode, FirstName und LastName
- Klicken Sie mit der rechten Maustaste auf das Abfragefenster und klicken Sie auf SQL-Ansicht
- Ändern Sie die SQL-Anweisung wie folgt:
SELECT Employees.EmployeeNumber, Employees.FirstName, Employees.LastName FROM Employees UNION SELECT Clerks.ClerkCode, Clerks.FirstName, Clerks.LastName FROM Clerks;
- Um die Abfrage auszuführen, klicken Sie auf die Schaltfläche Ausführen
- Schließen Sie die Abfrage
- Wenn Sie gefragt werden, ob Sie speichern möchten, klicken Sie auf Nein
Auswählen in eine Tabelle
Wenn Sie einige Datensätze in einer vorhandenen Tabelle haben, können Sie alle oder einige dieser Datensätze kopieren, um sie in eine von Ihnen neu erstellte Tabelle einzufügen. Um dies zu tun, ist die folgende Formel zu befolgen:
SELECT fields INTO new-table-name FROM existing-table [WHERE condition]
Um alle Spalten und alle Datensätze zu verwenden, beginnen Sie mit SELECT Operator, gefolgt von *, gefolgt von INTO , gefolgt von einem Namen für die Tabelle, die Sie erstellen möchten, gefolgt von FROM , und den Namen der ursprünglichen Tabelle, die die Datensätze enthält. Hier ist ein Beispiel:
SELECT * INTO CompanyRecipients FROM Employees;
Anstatt alle Spalten zu verwenden, können Sie hinter dem SELECT nur das gewünschte Feld angeben Stichwort. Hier ist ein Beispiel:
SELECT EmployeeNumber, LastName, FirstName, EmploymentStatus INTO Salaried FROM Employees;
Anstatt alle Datensätze zu verwenden, können Sie eine Bedingung verwenden, durch die die Datensätze ausgewählt und der neuen Tabelle hinzugefügt werden, die Sie erstellen. Um die Bedingung festzulegen, können Sie ein WHERE erstellen Anweisung als letzte im gesamten Ausdruck. Hier ist ein Beispiel:
SELECT * INTO FullTimeEmployees FROM Employees WHERE EmploymentStatus = 'Full Time';
Alle Datensätze aus einer Tabelle entfernen
Um alle Datensätze aus einer Tabelle zu entfernen, verwenden Sie in SQL das DELETE Befehl. Die folgende Formel lautet:
DELETE columns-names FROM table-name;
Normalerweise verwenden Sie * als Spaltennamen . Der Tabellenname Parameter muss ein gültiger Name einer Tabelle der aktuellen Datenbank sein. Hier ist ein Beispiel:
DELETE * FROM States;
Wenn Sie ausführen, erhalten Sie eine Warnung:
Wenn Sie auf Ja klicken, werden alle Datensätze aus der Tabelle entfernt.
Löschen einiger Datensätzex
Um einen oder mehrere Datensätze zu löschen, fügen Sie ein WHERE hinzu Bedingung zu einem LÖSCHEN Befehl. Die folgende Formel lautet:
DELETE columns-names FROM table-name WHERE condition;
Das WO -Klausel gibt die Bedingung an, unter der einige Datensätze gelöscht werden. Hier ist ein Beispiel:
DELETE * FROM [Staff Members] WHERE [Marital Status] = "Single";
Auch hier erhalten Sie beim Ausführen eine Warnung, anhand derer Sie entscheiden können, ob Sie die Operation fortsetzen möchten.
Praktisches Lernen:Abschluss der Lektion
- Schließen Sie Microsoft Access