SQL

Eine Sprache aus den 1970er Jahren, die jede Fachabteilung überlebt hat und in fast jeder Anwendung steckt. SQL beschreibt, welche Daten gebraucht werden, und überlässt dem System den Weg dorthin.
Drei Mitarbeiter*innen einer Software Agentur schauen sich eine SQL Datenbank am Bildschirm an.
© puhhha

Was SQL ist

SQL ist die standardisierte Sprache, mit der Daten in relationalen Datenbanken abgefragt, geändert und verwaltet werden. Der Name steht für Structured Query Language. Die Besonderheit ist ihre Arbeitsweise: Formuliert wird das gewünschte Ergebnis, nicht der Rechenweg. Welche Reihenfolge und welche Zugriffspfade zum Ziel führen, entscheidet das Datenbanksystem selbst.

Daraus folgt ein praktischer Vorteil. Dieselbe Abfrage bleibt gültig, wenn sich die Datenmenge verzehnfacht, weil das System seinen Plan neu berechnet. Der Preis dafür ist, dass sich langsame Abfragen nicht durch Umschreiben allein beheben lassen, sondern über Indizes und Datenmodell. In der Datenbankentwicklung entscheidet sich die spätere Geschwindigkeit deshalb lange vor der ersten Abfrage.

SQL Befehle in vier Gruppen

Der Sprachumfang ordnet sich in vier Bereiche. Der erste beschreibt die Struktur, legt also Tabellen und Felder an oder ändert sie. Der zweite arbeitet mit den Daten selbst, liest, schreibt, ändert und löscht Datensätze. Der dritte regelt Rechte, also wer worauf zugreifen darf. Der vierte klammert mehrere Schritte zu einer Einheit, die entweder ganz oder gar nicht wirksam wird. Ohne diese vierte Gruppe kann eine halbe Buchung stehen bleiben. Verknüpfungen über mehrere Tabellen gehören zur zweiten Gruppe und machen in der Praxis den größten Teil aller Abfragen aus.

Standard und Dialekte

Die Sprache ist genormt, doch jedes Produkt ergänzt eigene Erweiterungen. Datums- und Zeitfunktionen, Zeichenkettenverarbeitung und die Behandlung fehlender Werte unterscheiden sich zwischen den verbreiteten Systemen spürbar. Eine SQL Abfrage, die auf einem System läuft, kann auf einem anderen an einer Kleinigkeit scheitern. Betroffen sind vor allem Randfälle, die im Test selten auffallen und im Betrieb dann doch.

Wer eine Anwendung austauschbar halten will, bleibt beim genormten Kern. Das kostet Bequemlichkeit und spart den Umbau bei einem späteren Wechsel des Datenbanksystems. Structured Query Language heißt genormt, nicht überall gleich.

Wo die Sprache an Grenzen stößt

Für tief verschachtelte oder je Datensatz unterschiedliche Strukturen ist das Tabellenmodell unhandlich, ebenso für sehr große verteilte Datenmengen. Dort haben sich andere Ansätze etabliert, die dafür auf Teile der Zusicherungen verzichten. Für den Alltag in Verwaltung und Wirtschaft bleibt die relationale Datenbank trotzdem der Regelfall, allein wegen der Zusicherungen bei gleichzeitigen Zugriffen. Auch die Verfügbarkeit von Fachleuten spricht dafür. Ein konkretes System, das die Sprache umsetzt, ist MySQL.

Aktuelle Themen