SQL-Anweisungen

Aus DBWiki
Wechseln zu: Navigation, Suche

Zur alphabetischen Übersicht der Artikel in der Kategorie SQL



Hilfsmittel

Im folgenden sollen Lösungen zu verschiedenen SQL-Abfrageproblemstellungen überwiegend anhand einer einfachen Übungsdatenbank entwickelt werden. Die Datenbank stammt von Oracle. Tabellen- und einige Feldnamen wurden für die Access-Benutzer in's Deutsche übersetzt. Für SQLite3 steht die Datenbank unter Oracle Sample Database in SQLite zum Download zur Verfügung.

Hinweise für Access-Anwender:
Der QBE-Editor versieht SQL-Text mit allerlei ausschmückendem Klammerwerk, und verwendet für die Feldauswahl immer ein Tabellenprädikat. Auch Formatierungen des Abfragetextes werden oft zerstört, wenn die Abfrage einmal in seinen Fuchteln war. Das lässt sich leider kaum vermeiden.

Wer einen Tabellenpräfix als störend empfindet, sollte für jede in einer Abfrage verwendete Tabelle einen kurzen Alias-Namen wählen, um Irritationen gering zu halten. Der Übersicht wegen wird in den Lösungen auf unnötige Klammern und Tabellenpräfixe verzichtet.

Zur Eingabe des Abfragetextes erstellt man eine neue Abfrage, wählt aber keine Tabelle aus. Anschließend drückt man links oben im Menüband (Ribbon) oder in der Werkzeugleiste auf das SQL-Symbol. Um den Abfragetext einigermaßen gut lesen zu können, ist es empfehlenswert, eine Nichtproportionale Schriftart (z. B. Consolas, o.ä.) in den Access-Optionen einzustellen.


Wiki hinweis.png

Allgemeiner Hinweis zur Indexnutzung unter Access

Bei größeren Datenbeständen kann es unter Umständen sinnvoll sein, temporär eine Tabelle mit dem entsprechendem Schlüsselfeld aus der Haupttabelle, sowie dem Ausdruck der WHERE-Klausel anzulegen, mit den Werten des Ausdrucks aus der Haupttabelle zu befüllen und anschließend über das Feld des Ausdrucks einen Index zu legen, weil Access bei Rechen- oder Funktionsausdrücken auf der linken Seite der WHERE-Klausel keinen Index unterstützt. Das Ergebnis kann dann mit der Haupttabelle über das Schlüsselfeld verknüpft werden, um das Ergebnis darzustellen.


Einfache SELECT-Anweisungen

Hier werden Grundlagen anhand einfacher Problemstellungen vorgestellt, die man zuerst beherrschen sollte, bevor schwierigere Probleme angegangen werden.

Abfrageergebnisse sortieren

Vielfach ist es gewünscht, die Ergebnisse einer Abfrage in einer bestimmten Reihenfolge darzustellen. Im folgenden werden die grundlegenden Methoden dazu gezeigt.

Mengenoperationen

In der Schule hat man in der Mengenlehre gelernt, dass eine Menge aus einer ungeordneten Anordnung von einmaligen Elementen besteht. Ähnlich lassen sich Mengen in Tabellen betrachten. Die Elemente werden durch Datensätze repräsentiert. Dabei gilt, dass eine Menge über ein oder mehrere gleiche Feldattribute zusammengehalten wird (das ist Sache der Betrachtungsweise der Daten, in der Regel aber das Fremdschlüsselfeld einer Tabelle). Auch ist man in SQL nicht so streng wie in der Mathematik, was die Anordnung von Elementen angeht. In Tabellen kann man sehr gezielt Feldattribute für Sortierungen einsetzen, um z.B. die ersten oder letzten drei Datensätze auffinden zu können.

Datenbearbeitung (Anfügen, Aktualisieren, Löschen von Datensätzen)

Vor der Bearbeitung von Datensätzen sollte man sich über das Anwenden von Transaktionen im Datenbanksystems informieren, damit die Datenbank auch beim Mißlingen einer Aktion immer in einem definierten Zustand verweilt.

Hinweis für Access-Anwender:
Weil keine offizielle SQL-Spezifikation die Verwendung von Joins in Aktionsabfragen vorsieht, wird im folgenden immer nur Bezug auf eine Tabelle genommen, um Mehrdeutigkeiten auszuschließen. Wer anderer Überzeugung ist, muss sich mit der Verwendung des Jet-SQL eigenen Schlüsselworts DISTINCTROW vertraut machen.

Arbeiten mit Zeichenketten (Text)

Hier stehen Manipulationen von Zeichenketten im Vordergrund, die durch die meisten SQL-Dialekte abgedeckt werden.

Arbeiten mit Zahlen

Datums- und Zeitberechnungen

Berichtsspezifische Abfragen

Im Mittelpunkt stehen Themen wie Transponieren, Pivotisieren und Bereitstellung von Daten aus verschiedenen Aggregationsebenen.

Hierarchische Abfragen

Weblinks



Zur alphabetischen Übersicht der Artikel in der Kategorie SQL