Einführung
Der Zweck dieses Lernprogramms besteht darin, zu zeigen, wie Sie Ihre eigenen SQL-Anweisungen schreiben und sie in Microsoft Access 2007, 2010, 2013, 2016 oder 2019 ausführen können (die Schritte sind in allen Versionen praktisch identisch). Wie alle relationalen Datenbanken kann Microsoft Access direkt mit der Structured Query Language (SQL) programmiert werden. Während SQL den Benutzern meistens verborgen bleibt, bietet MS Access für Datenbankstudenten eine schnelle und einfache Möglichkeit, SQL zu erkunden und einige ziemlich komplexe Abfragen zu schreiben. Dies ist besonders praktisch, wenn Sie keine Zeit oder Geduld haben, SQL Server, Oracle, MySQL oder andere größere Verwaltungssysteme für relationale Datenbanken zu installieren.
Die in diesem kurzen Tutorial verwendeten SQL-Beispiele basieren auf den einfachen Kunden- und Kontentabellen, die als Teil meines Tutorials zu Microsoft Access 2007, 2010 und 2013 erstellt wurden.
Vielleicht möchten Sie zuerst dieses Tutorial (oder zumindest das erste) durchgehen einige Abschnitte), um die Tabellen zu erstellen und die erforderlichen Daten hinzuzufügen, damit diese Beispiele funktionieren.
Der nächste Abschnitt bietet eine sehr kurze Einführung in die Structured Query Language (SQL).
Die strukturierte Abfragesprache (SQL)
Structured Query Language (SQL ausgesprochen „Sequel“) ist eine deklarative Programmiersprache, die verwendet wird, um relationale Datenbankverwaltungssysteme (RDBMS) zu manipulieren. Es wurde erstmals Ende der 1970er Jahre in IBMs System R eingeführt. Heute wird SQL in allen wichtigen relationalen DBMS wie Oracle, IBM DB2, Informix, Sybase, Microsoft SQL Server, MySQL, Postgres, SQLLite, Microsoft Access und vielen anderen verwendet. Während jeder Datenbankanbieter einige proprietäre Zusatzfunktionen bereitstellt, kann der Kern von SQL auf nahezu jeder relationalen Datenbank verwendet werden.
Die strukturierte Abfragesprache ist in zwei Hauptteile unterteilt:
- Data Definition Language (DDL) – Wird verwendet, um Datenstrukturen wie Schemata, Tabellen, Indizes, Cluster, Sequenzen zu erstellen (definieren) und die Datenbank zu sichern
- Data Manipulation Language (DML) – Wird zum Einfügen, Abrufen, Aktualisieren und Löschen von Daten aus Tabellen verwendet.
Microsoft Access unterstützt sowohl DDL- als auch DML-Teile von SQL. Meistens konzentrieren wir uns auf SQL-Abfragen, die als SQL-SELECT-Anweisungen verwendet werden, um Daten aus einer vorhandenen Datenbank abzurufen. Die grundlegende Syntax für eine SQL SELECT-Anweisung lautet:
SELECT column1, column2, ... columnN FROM tableA, tableB, ... tableZ WHERE condition1, condition2, ...conditionM ORDER BY column1, column2, ... columnN
Angenommen, wir haben beispielsweise eine Tabelle mit dem Namen Customer mit Spalten wie FirstName, LastName, StreetAddress, City, State und Zip, können wir eine SQL SELECT-Anweisung wie diese schreiben:
SELECT FirstName, LastName, City, State FROM customer
In der obigen Abfrage fragen wir nur nach Daten in den Spalten FirstName, LastName, City und State, und die Tabelle, aus der wir diese Daten erhalten, heißt Kunde. Beachten Sie, dass sich die SQL-Sprache nicht um Groß- oder Kleinbuchstaben kümmert. Schreiben Sie also select firstName... ist dasselbe wie das Schreiben von SELECT FIRSTNAME ... .
Eine etwas ausgefeiltere Abfrage wäre, wenn wir nur Kunden sehen möchten, die in Georgia leben, und wir möchten, dass die Ergebnisse nach dem Nachnamen des Kunden sortiert werden:
SELECT FirstName, LastName, City, State FROM customer WHERE state = 'GA' ORDER BY LastName
Wie Sie sehen können, folgt die Liste der Spalten, die wir anzeigen möchten, auf das Schlüsselwort SELECT. Der Name der abgefragten Tabelle folgt dem Schlüsselwort FROM, einer Bedingung state ='GA' folgt dem Schlüsselwort WHERE und schließlich werden die Ergebnisse in der Spalte Nachname sortiert, wie durch das Schlüsselwort ORDER BY beschrieben.
Es gibt viele weitere Funktionen der SQL SELECT-Anweisung, die das Abfragen mehrerer Tabellen durch „Zusammenfügen“ beinhalten, das Gruppieren von Sammlungen von Datensätzen, um Summen, größte, kleinste oder durchschnittliche Werte zu finden, und das Durchführen anderer Manipulationen an der Ausgabe, die Benutzer schließlich sehen werden. Eine viel umfassendere Diskussion über die Funktionen von SQL finden Sie unter diesem Link.
Der nächste Abschnitt stellt die Verwendung von SQL aus der Abfrageentwurfsansicht in MS Access vor.
SQL in Microsoft Access
In diesem Abschnitt stellen wir Ihnen die Schritte zum Schreiben Ihres eigenen SQL in MS Access vor. Diese Übung geht davon aus, dass Sie MS Access 2007, 2010 oder 2013 mit geöffneter „Bank“-Datenbank (Kunden- und Kontotabellen) ausführen. Klicken Sie hier für das Tutorial mit Schritten zum Erstellen dieser Datenbank.
Um loszulegen:
- Erstellen Sie eine neue Abfrage, indem Sie auf Erstellen klicken und klicken Sie dann auf Abfragedesign Symbol wie unten gezeigt.
- Das Dialogfeld „Tabelle anzeigen“ wird wie unten gezeigt angezeigt. Klicken Sie auf Schließen Schaltfläche zum Schließen.
- Klicken Sie auf die Registerkarte Design und klicken Sie dann auf SQL Symbol auf der linken Seite (oder ziehen Sie die Ansichtsschaltfläche herunter und wählen Sie SQL
- An dieser Stelle erscheint die SQL-Ansicht der Abfrage Query1. Standardmäßig wird das Schlüsselwort SELECT im Fenster angezeigt.
- Bearbeiten Sie die Abfrage, um eine vollständige SQL-Anweisung zu schreiben:
SELECT firstname, lastname FROM customer ORDER BY lastname
Das Abfragefenster der SQL-Ansicht wird nun wie folgt angezeigt:
- An diesem Punkt können wir mit der eingegebenen SQL-Anweisung die Abfrage für die Datenbank ausführen, indem wir auf die Schaltfläche „Ausführen“ mit dem Ausrufezeichen klicken.
- Die Ergebnisse der Abfrage werden in einer Datenblattansicht (wie eine Tabellenkalkulation) angezeigt:
- Um zum Bearbeiten der SQL-Abfrage zurückzukehren, öffnen Sie das Menü Ansicht und wählen Sie erneut SQL aus.
- Sie können Ihre Abfrage auch speichern. Klicken Sie dazu mit der rechten Maustaste auf die Registerkarte mit dem aktuellen Abfragenamen:Query1 und wählen Sie Speichern .
Ein Dialogfeld wird angezeigt, in dem Sie zur Eingabe des neuen Namens der Abfrage aufgefordert werden. Geben Sie einen neuen Namen ein, wie zum Beispiel:Customer_Names und klicken Sie dann auf OK um es zu speichern.
- Schließlich bietet MS Access keine Möglichkeit, eine Abfrage unter einem neuen Namen zu speichern („Speichern unter“). Stattdessen können Sie den Namen der Abfrage markieren, mit der rechten Maustaste klicken und Kopieren auswählen Klicken Sie dann erneut mit der rechten Maustaste und wählen Sie Einfügen . Sie werden dann nach dem neuen Namen der Abfrage gefragt.
Als nächstes werde ich einige Tricks und Tipps zum Schreiben und Debuggen Ihrer SQL-Abfragen vorstellen.
Schreiben und Debuggen von SQL-Abfragen in MS Access
Nachdem Sie nun die grundlegenden Mechanismen zum Schreiben und Ausführen von SQL-Abfragen kennen, finden Sie hier einige Tipps und Tricks zum Debuggen von SQL.
Editoren für MS Access SQL
Das SQL-Editor-Fenster in MS Access ist nicht besonders intelligent oder einfach zu handhaben. Eine Möglichkeit, mit SQL zu arbeiten, besteht darin, den Code in einem anderen Editor zu schreiben und den Code dann zu kopieren und in Access einzufügen, um ihn auszuführen. Es stehen viele verschiedene Texteditoren zur Verfügung. Zum Beispiel haben Sie in Windows Notepad unter der Gruppe Zubehör verfügbar. Die einzige Warnung, die ich hier geben kann, ist, MS Word oder andere Textverarbeitungssoftware NICHT zu verwenden, um Ihre SQL zu schreiben. Der Grund dafür ist, dass MS Word und andere Textverarbeitungsprogramme Ihre einfachen und doppelten Anführungszeichen in „ausgefallene Anführungszeichen“ verwandeln, die SQL nicht versteht.
Zum Beispiel, wenn Sie eine WHERE-Klausel wie WHERE state ='GA' haben
SQL erwartet, dass der Text in einfache Anführungszeichen gesetzt wird. MS Word verwandelt diese in ein ausgefallenes Anführungszeichen am Anfang und am Ende, das SQL nicht versteht.
Wenn Sie eine Fehlermeldung wie Enter Parameter Value for `GA’ erhalten dann sollten Sie unbedingt sicherstellen, dass Ihr Text in einfache einfache Anführungszeichen eingeschlossen ist.
Umgang mit Syntaxfehlern
Syntaxfehler können in SQL sehr frustrierend sein, da die Datenbank oft nicht genau feststellen kann, wo das Problem in Ihrem Code liegt. Zu den wichtigsten Fehlern, die Access anzeigt, gehören:
Fehlertext | Lösung | Beispiel |
---|---|---|
Geben Sie den Parameterwert für ________ ein | Meistens passiert dies, wenn der Name einer Spalte (Feld) nicht richtig eingegeben wird (wie in diesem Fall „lstname“ falsch geschrieben ist) oder ein Ausdruck dies nicht kann erkannt werden wie zum Beispiel WHERE state =`GA' | |
Das Microsoft Access-Datenbankmodul kann die Eingabeabfrage oder -tabelle nicht finden :______________ | Meistens passiert dies, wenn der Name einer Tabelle nicht korrekt in die FROM-Klausel der Abfrage eingegeben wird. In diesem Fall wurde beispielsweise die Abfrage VON Kunden angegeben statt VON Kunde | |
Syntaxfehler (fehlender Operator) im Abfrageausdruck:______________ | In diesem Fall fehlen der Syntax der Abfrage einige Schlüsselteile. Beispielsweise fehlt die „FROM“-Klausel, und Access meldet den ungefähren Ort, an dem das Problem auftritt, indem der Text der Abfrage angezeigt wird. |
Im nächsten Abschnitt gebe ich einige zusätzliche Tipps, wie Sie Ihre SQL-Abfragen und -Ergebnisse für ein Projekt oder eine Hausaufgabe präsentieren können.
Ihre SQL-Arbeit dokumentieren
In diesem Abschnitt beschreibe ich einige Tipps zur Formatierung Ihrer Abfragen und Ergebnisse, damit diese in Ihren Aufgaben und Projekten übersichtlich und übersichtlich dargestellt werden.
Dabei wird davon ausgegangen, dass Sie ein Textverarbeitungsprogramm wie z MS Word oder ein anderes Textverarbeitungsprogramm, das das Kopieren und Einfügen von Bildern und Text unterstützt.
MS Access erlaubt es Ihnen nicht, Kommentare in den SQL-Code einzufügen. Andere DBMS erlauben dies, aber Access ist etwas restriktiver.
Nehmen Sie für diese Übung an, dass die Hausaufgabe darin besteht, die Vor- und Nachnamen aller Kunden anzuzeigen und das Ergebnis nach dem Nachnamen des Kunden zu ordnen.
- Geben Sie die SQL-Abfrage wie im vorherigen Abschnitt beschrieben ein und führen Sie sie aus, um die Ergebnisse zu erhalten:
- Klicken Sie in der Datenblattansicht auf das kleine quadratische Kästchen links neben den Spaltenüberschriften und oben in den Zeilenauswahlkästchen. Dadurch wird der gesamte Ergebnissatz hervorgehoben.
- Klicken Sie mit der rechten Maustaste auf dasselbe kleine quadratische Kästchen in der Ecke und wählen Sie Kopieren aus dem Popup-Menü.
- Wechseln Sie zu MS Word (oder einem anderen Textverarbeitungsprogramm) und fügen Sie die Ergebnisse an einer geeigneten Stelle ein:
Einige andere hilfreiche Hinweise, die auch bei der Erstellung dieses Aufgabendokuments befolgt wurden:
- Stellen Sie sicher, dass Sie den vollständigen Satz eingeben, der die zu lösende Frage beschreibt (geben Sie nicht einfach „Frage 1“ ein). Sie können zum Beispiel die Frage aus der Hausaufgabe kopieren und sie zu einem Teil der Antwort machen.
- Verwenden Sie beim Einfügen des SQL-Texts für Ihre Abfrage eine Courier New-Schriftart, damit die Zeichen und Abstände aufeinander abgestimmt sind. Das macht es viel einfacher zu lesen.
- Fügen Sie die Ergebnisse mit der oben gezeigten Technik ein, anstatt einen Screenshot zu verwenden. Dadurch werden Ihre Word-Dokumentdateien nicht nur kleiner, sondern auch sehr klar, wenn Sie sie drucken.
- Achten Sie darauf, Ihren Namen, Ihre Klasse/Ihren Kurs und Ihre Abteilung in Ihre Aufgabe einzutragen.
- Bei komplexeren Abfragen, die Unterabfragen oder Inline-Abfragen beinhalten können, ist es am besten, die Unterabfragen eingerückt anzuordnen, um sie leichter lesbar und debuggbar zu machen. Anstatt beispielsweise eine Unterabfrage wie diese zu schreiben:
SELECT accountnumber, balance FROM accounts WHERE balance = (SELECT MIN(balance) from accounts)
Richten Sie die Unterabfrage entlang der Klammern aus:
SELECT accountnumber, balance FROM accounts WHERE balance = ( SELECT MIN(balance) FROM accounts )
Wenn Sie diese Schritte befolgen, hinterlassen Sie einen guten Eindruck, wenn Sie Ihre Aufgaben und Projekte abgeben.
Schlussfolgerungen
In diesem kurzen Tutorial haben wir behandelt, wie man mit MS Access mit SQL arbeitet. SQL ist eine ziemlich generische Programmiersprache und alles, was Sie beim Schreiben von SQL unter MS-Zugriff lernen, kann leicht auf andere relationale Datenbanken wie SQL Server, Oracle, Sybase usw. übertragen werden. Weitere Hinweise zu SQL finden Sie in meiner Structured Query Language (SQL). Seite mit Kursnotizen.
Weitere einführende und fortgeschrittene MS Access-Tutorials finden Sie in der Access-Kategorie auf meiner Website.