Modern SQL: Eröffnungs-Artikel


Gerade eben habe ich meine neue Webseite modern-sql.com in Betrieb genommen. Sie ist momentan noch sehr klein – nur sechs Seiten mit echtem Inhalt – wird aber in den nächsten Monaten und Jahren wachsen und schlussendlich vielleicht ein Buch werden, genauso wie auch aus Use-The-Inde-Luke.com ein Buch wurde. Daher dachte mich mir, ich hole dich jetzt gleich mit an Board, damit du mit der Seite wachsen kannst.

Was ist also modern SQL? Noch eine SQL-Referenz? Mitnichten. Es gibt bereits genügend Referenzen im Internet. Und alle leiden an denselben Problemen:

  • Sie decken kaum mehr als entry-levelSQL-92 ab. Manche Anleitungen erwähnen nicht einmal, dass sie eigentlich einen proprietären Dialekt beschreiben.

  • Die Beispiele zeigen nur die Syntax, aber nicht wie man damit reale Probleme löst.

  • Sie dokumentieren nicht, welche Datenbanken welche Funktionen unterstützen.

Modern SQL ist anders:

  • Modern SQL basiert auf SQL:2011 – der aktuellen Version des ISO-Standards. Dennoch berücksichtige modern SQL, dass manche Datenbanken noch gegen ältere Standards entwickelt werden oder nur einen Teil der Standard-Funktionen unterstützten.

  • Modern SQL zeigt, wie man reale Probleme mit aktuellen SQL-Funktionen löst. Es zeigt jedoch auch „konforme Alternativen“ um dasselbe Problem mit anderen (oft älteren) Standard-Methoden zu lösen. Wenn nötig und möglich werden auch „proprietäre Alternativen“ aufgezeigt.

    Beachte, dass es hier eine Hierarchie gibt: die empfohlene (die idiomatischste) Lösung zuerst, standardkonforme Alternativen danach und nur wenn nötig proprietäre Alternativen.

  • Modern SQL dokumentiert die Verfügbarkeit der SQL-Funktionen in sechs SQL-Datenbanken (Beispiel aus values):

Klick auf eine Funktion (z. B. „gültig, wo select gültig ist“) um zu sehen, wie sich die Verfügbarkeit entwickelt hat.

Hier kann man sehen, dass SQLite values erst seit Kurzem überall akzeptiert, wo select gültig ist. In dieser Ansicht ist für die Datenbanken, die eine Funktion nicht unterstützen, auch festgehalten welche Version geprüft wurde.

modern SQL wird unweigerlich beides werden: eine Hommage an den SQL-Standard und eine Beschwerde über die mangelnde Umsetzung. Die Verfügbarkeitsdokumentation und die oben erwähnten alternativen Lösungen (konforme und proprietäre) sorgen dafür, dass das Jammern produktiv bleibt. Sieh dir zum Beispiel select ohne from an.

Dies ist nur der erste Schritt einer langen Reise. Ich lade dich ein, dieser Reise per Twitter, E-Mail oder RSS zu folgen.

Über den Autor

Foto von Markus Winand

Markus Winand lehrt effizientes SQL – inhouse und online. Er minimiert die Entwicklungszeit durch modernes SQL und optimiert die Laufzeit durch schlaue Indizierung – dazu hat er auch das Buch SQL Performance Explained veröffentlicht.

Sein Buch bei Amazon kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Bei Amazon kaufen
(Taschenbuch)

Taschenbuch und PDF auch auf Markus' Webseite erhältlich.

Sein Training

Sein beliebtes Training stimmt Entwickler auf SQL Performance ein.

Erfahren Sie mehr»

„modern SQL“ von Markus Winand ist unter einer Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License lizenziert.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz | CC-BY-NC-ND 3.0 Lizenz