© saicle/Shutterstock.com
Wie komplexere Probleme mithilfe von SQL direkt auf der Datenbank gelöst werden können

Komplexe Probleme, clevere SQL-Abfragen


SQL ist die Abfragesprache für relationale Datenbanken – dennoch halten viele Entwickler einen gehörigen Sicherheitsabstand dazu und verlassen sich lieber auf Lösungen in der Applikationslogik. In diesem Artikel wollen wir einige komplexere Probleme beleuchten, die alle mithilfe von SQL-Abfragen gelöst werden können. Der Artikel erhebt keinen Anspruch auf Vollständigkeit und soll eher einen Einstieg bieten, auf den aufbauend weitere Problemstellungen angegangen werden können.

Trotz der Tatsache, dass zunehmend spezialisierte No­SQL-­Datenbanken in der Anwendungsentwicklung Einzug halten, bleiben relationale Datenbanksysteme (RDBMS) eine tragende Säule im Entwicklerportfolio. Damit gehört SQL (Structured Query Language) [1] als Abfragesprache für relationale Datenbanken zum Handwerkszeug von Entwicklern wie die eingesetzte Programmiersprache selbst, aber auch zum Beispiel CSS, JavaScript und vieles mehr. Im Zeitalter der oben angesprochenen NoSQL-Datenbanken und im Zeitalter, in dem ORM-(Object-Relational-Mapping-)Komponenten [2] quasi Standard sind (ADO.NET Entity Framework, Hibernate oder Doctrine ORM), hat man als Entwickler immer weniger direkten Kontakt mit SQL oder kann diesen sogar ganz vermeiden. Dabei verliert ein Entwickler auch ein mächtiges Werkzeug aus dem Blickfeld, mit dessen Hilfe er Problemstellungen anders, effizienter und kompakter angehen kann. Leider ist auch dieser Weg nicht ohne Hindernisse.

SQL-Dialekte und Ausprägungen

Eigentlich wäre die SQL-Welt so schön. SQL ist im Grunde eine standardisierte Sprache, deren Ziel es war/ist, Anwendungen schreiben zu können, die vom verwendeten Datenbanksystem unabhängig sind. Wie bei vielen Standards ist es auch mit SQL so, dass sich nicht alle Datenbanksysteme vollständig an den Standard halten, nicht alle Features des Standards implementieren oder aber den Standard um eigene Features erweitern. Die aktuelle Situation im Browsermarkt (JavaScript, CSS und die sog. HTML5-Features) ist ja eine ähnliche. Das führt dazu, dass im Grunde jedes Datenbanksystem eine eigene Syntax bereitstellt – dies wird insbesondere auch bei komplexeren Abfragen zu einem Problem, wenn es darum geht, datenbankunabhängigen Code zu schreiben. Wir wollen uns daher im Rahmen dieses Artikels auf das Datenbanksystem MySQL (> 5.1) beschränken, weil es in der Web­entwicklung einen durchaus großen Stellenwert besitzt. An einigen Stellen werde ich auf Lösungen in anderen Datenbanksystemen (vornehmlich Oracle oder Microsoft SQL Se...

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