SQL-Grundlagen
401
Abfragen
tblWochen eigentlich ein Long Integer, der auf den entsprechenden Film verweist. Da die FilmNr als
Nachschlagefeld vereinbart ist, wird der jeweilige Filmtitel aus tblFilme im Ergebnis einer Abfrage
dargestellt. In den Beispielen dieses Kapitels werden wir die automatische Nachschlagefunktion ver-
nachlässigen, da sonst viele Beispiele nicht zu überschauen wären.
SQL-Views
Access-Abfragen entsprechen den in den SQL-Standards definierten »Views«. Ein View ist eine Sicht
auf die Daten von Tabellen. Dazu wird eine SQL-Abfrage unter einem Namen abgelegt. Auf eine
View kann wie auf eine Tabelle zugegriffen werden.
In Access-Datenbanken sind Views nicht wie im SQL-Standard definiert, hier übernehmen Abfragen die
gleiche Aufgabe. Eine in Access vereinbarte Abfrage kann ebenso als Basis einer neuen Abfrage dienen.
Allerdings besteht ein erheblicher Unterschied zwischen Standard-SQL und Access, denn in Access
ist es möglich, Datensätze einer Abfrage, auch wenn sie auf mehreren Tabellen oder anderen Abfra-
gen basiert, zu verändern. In vielen anderen SQL-Datenbanken können immer nur Tabellen oder
Abfragen, denen nur eine Tabelle zugrunde liegt, bearbeitet werden. Microsoft nennt diese be-
arbeitbaren Abfragen »Dynasets«. Dynasets erleichtern die Arbeit mit SQL-Datenbanken erheblich.
SQL-Grundlagen
Wir möchten Ihnen in diesem Abschnitt die wichtigsten SQL-Befehle und ihre Syntax beschreiben.
Arbeiten Sie viel mit Access-Abfragen, und haben Sie komplexe Probleme zu lösen, ergibt es Sinn,
sich direkt mit SQL zu beschäftigen. Benötigen Sie nur ab und zu direkt SQL, beispielsweise für
Unterabfragen, die im Abschnitt »Unterabfragen« besprochen werden, oder für Kombinations- oder
Listenfelder in Formularen, so können Sie den folgenden Weg wählen:
1. Erstellen Sie Ihre Abfrage in der bekannten Weise in der Entwurfsansicht.
Abbildg. 20.1
Abfrage in der Entwurfsansicht
Kapitel 20
Die Abfragesprache SQL
402
2. Schalten Sie beispielsweise mithilfe der Schaltfläche Ansicht und dem Eintrag SQL-Ansicht auf
die SQL-Darstellung um.
Abbildg. 20.2
Die Abfrage in der SQL-Darstellung
3.
Sie können nun den von Access erzeugten SQL-Text in die Zwischenablage kopieren und an den
benötigten Stellen einfügen.
Diese Methode hat den Vorteil, dass die SQL-Befehle garantiert fehlerfrei sind.
Auswahlabfragen mit SELECT
Eine Auswahlabfrage, die immer mit dem Befehl SELECT beginnt, besteht aus einer Reihe von Tei-
len, von denen einige optional sind. In den folgenden Abschnitten möchten wir Ihnen die einzelnen
SQL-Bestandteile einer Auswahlabfrage beschreiben.
Die Basissyntax eines SELECT-Befehls lautet
wobei die eckigen Klammern nicht Teil des Befehls sind, sondern nur die optionalen Teile WHERE
und ORDER BY kennzeichnen sollen. In den nächsten Abschnitten werden neben den eckigen Klam-
mern auch geschweifte Klammern eingesetzt, die einen Teil des Befehls festlegen, der zwingend
vorhanden sein soll. Der senkrechte Stricht »|« steht für »oder«, d.h., die durch den Strich getrennten
Teile können alternativ verwendet werden.
Der SELECT-Befehl
SELECT wird in der Form
eingesetzt. Die Ausdrücke können entweder Spaltenbezeichnungen, berechnete Spalten oder SQL-
Aggregatfunktionen sein. Das Sternchen steht für alle Spalten einer Tabelle.
Tabellenauswahl mit FROM
Die Tabellen oder Abfragen, auf die sich der SELECT-Befehl bezieht, werden hinter der FROM-
Klausel angegeben, in der Form
SELECT Spaltenliste
FROM
Tabellenliste
[WHERE
Bedingung
]
[ORDER BY
Sortierfelder
]
SELECT {* | Ausdruck1 [AS Alias1] [, Ausdruck2 [AS Alias2] [,...] ]}
FROM Tabelle_
oder_Abfrage
[AS
Alias
]
SQL-Grundlagen
403
Abfragen
Bedingungen mit WHERE
Die Syntax für Bedingungen lautet
Eine Auswahlabfrage beispielsweise, die die Daten des Films »Luther« zeigen soll, lässt sich als
schreiben. Um die Ausdrücke der WHERE-Bedingung zu formulieren, stehen Ihnen neben den
Grundrechenarten der Textverknüpfungsoperator und weitere Operatoren zur Verfügung (siehe Kapi-
tel 15 und 16).
In den vergangenen Kapiteln haben Sie die Operatoren »Zwischen ... Und ...« und »Wie« kennen
gelernt. Der erste Operator wird mit BETWEEN ... AND ... übersetzt, der zweite mit LIKE.
Sortieren mit ORDER BY
Die Ergebnisdaten der SELECT-Abfrage können mit ORDER BY sortiert werden. Allgemein lautet
der Befehl:
Möchten Sie die Filmtitel der Tabelle tblFilme sortiert ausgeben,nnen Sie das wie folgt formulieren:
Die Zusätze ASC (ascending) für eine aufsteigende und DESC (descending) für eine absteigende
Sortierung sind optional, wobei ASC als Standardwert verwendet wird.
Verknüpfungen mit INNER JOIN, LEFT JOIN und RIGHT JOIN
Natürlich lassen sich auch verknüpfte Tabellen bzw. Abfragen mit dem SELECT-Befehl darstellen.
Eine einfache Verknüpfung könnte beispielsweise so aussehen:
Access verwendet die modernere Form
für Verknüpfungen, mit deren Hilfe sich sowohl Inklusions- als auch Exklusionsverknüpfungen
schreiben lassen.
WHERE
Ausdruck1
[ {AND | OR}
Ausdruck2
[...] ]
SELECT * FROM tblFilme WHERE Filmtitel = "Vitus"
ORDER BY
Spalte1
[{ASC | DESC}] [,
Spalte2
[{ASC | DESC}][,...]]
SELECT * FROM tblFilme ORDER BY Filmtitel
SELECT
Spaltenliste
FROM
Tabelle1
,
Tabelle2
WHERE
Tabelle1.Spalte1
=
Tabelle2.Spalte2
SELECT
Spaltenliste
FROM
Tabelle1
{INNER | LEFT | RIGHT} JOIN
Tabelle2
ON
Tabelle1.Spalte1
=
Tabelle2.Spalte2

Get Microsoft Office Access 2007 - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.