© Excellent backgrounds/Shutterstock.com
Mehr als eine Abfragesprache

SQL im 21. Jahrhundert


Die Einführung neuer QL-Sprachen erfreut sich momentan großer Beliebtheit. Erst im Sommer machte Amazon mit der Einführung von PartiQL einen neuen Vorstoß in diese Richtung. Bei diesem QL-Wildwuchs darf man das Original aber nicht aus den Augen verlieren. Was wurde eigentlich aus SQL? Steckt es tatsächlich noch in den 90ern fest? Natürlich nicht. Ein Update für Entwickler.

Das letzte Jahrzehnt war von neuen Datenbankkonzepten rund um das Thema NoSQL geprägt. Anfangs diente SQL dabei als Antithese, später wurde NoSQL als Backronym für „Not only SQL“ definiert. Zuletzt gab es dann eine regelrechte Explosion neuer QL-Sprachen. Viele davon erinnern nicht nur dem Namen nach, sondern auch der Syntax nach an SQL.

Das Versprechen dieser QL-Sprachen ist einfach: Die bekannte Grundstruktur erleichtert den Start, die punktuellen Erweiterungen liefern nach, was bei SQL fehlt. Dieses Versprechen hält einer genauen Prüfung aber nicht immer Stand. Denn zwischen dem SQL-92-Funktionsumfang, den viele aus Studium, Kursen oder Büchern kennen, und modernem SQL liegen Welten. So wurde das relationale Korsett von SQL zum Beispiel schon vor 20 Jahren aufgegeben.

Um diese und andere Überraschungen geht es in diesem Artikel. Um den Unterschied zwischen SQL und anderen Datenzugriffsmethoden zu verdeutlichen, teile ich den Funktionsumfang von SQL in vier Niveaustufen ein. Erst auf der letzten Stufe wird es um modernes SQL gehen. Die ersten drei Stufen handeln von älteren SQL-Funktionen, deren Nutzen im NoSQL-Jahrzehnt vielfach in Vergessenheit geraten ist – daher eine kurze Einführung.

Stufe 0: CRUD

Am Anfang jedes Datenzugriffs stehen die vier Grundoperationen Create, Read, Update und Delete – zusammen kurz CRUD. SQL stellt diese Grundoperationen über die Anweisungen Insert, Select, Update und Delete zur Verfügung. Das heißt aber nicht, dass diese Anweisungen jeweils nur eine dieser Grundoperationen umsetzen.

Der Unterschied zwischen reinem CRUD-Denken und SQL wird beim Inkrementieren eines Zählers deutlich. Im CRUD-Denken liest man dafür zuerst den aktuellen Zählerstand ein (Select), erhöht ihn dann in der Applikation, um den neuen Wert schließlich zu speichern (Update).

Denselben Effekt kann man in SQL aber auch mit einer einzelnen Update-Anweisung erreichen:

UPDATE Tabelle SET Spalte = Spalte + 1 WHERE ID = ?

Der Lesezugriff steckt zusammen mit der Inkrementierung im rechten Argument der Zuweisung. Dort kann man beliebig komplexe Ausdrücke verwenden – von einfachen Formeln übe...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang