Eine Abfragesprache beschreibt, welche Daten gesucht sind, und überlässt den Weg dorthin dem System, das die Daten hält.
- Abfragesprache
Eine Sprache, in der beschrieben wird, welche Daten aus einem Bestand gesucht sind, ohne den Weg dorthin festzulegen.
Beispiel: „SQL ist die bekannteste Abfragesprache, aber längst nicht die einzige.“Auch: Query Language.
Abgrenzung zur Programmiersprache: Eine Abfragesprache beschreibt ein Ergebnis, keinen Ablauf. Sie kennt im Regelfall weder Schleifen noch eigene Funktionen.
Beschreiben statt anweisen
Du nennst die gewünschten Felder und die Bedingungen, und das System entscheidet, wie es daran kommt: in welcher Reihenfolge es Tabellen liest, welchen Index es benutzt, ob es zwischendurch sortiert.
Das ist eine Arbeitsteilung mit Folgen. Eine Abfrage kann richtig und trotzdem langsam sein. Die Ursache liegt dann selten in ihrem Wortlaut und meist darin, wie das System sie ausführt.
Die verbreiteten
SQL für relationale Datenbanken ist die mit Abstand bekannteste. GraphQL fragt Schnittstellen ab und lässt den Aufrufer bestimmen, welche Felder er haben will. XPath sucht in XML-Dokumenten, und auch die CSS-Selektoren sind im Kern eine Abfragesprache für Dokumente.
Allen gemeinsam ist die Trennung zwischen Frage und Ausführung. Wer eine davon verstanden hat, erkennt das Muster in den anderen wieder.
Wo sie dir im Projekt begegnen
Meist versteckt. Redaktionssysteme und Frameworks bauen die Abfragen aus Code zusammen, den du in der jeweiligen Sprache schreibst. Zu Gesicht bekommst du sie, wenn gemessen wird, welche Abfrage wie lange braucht.
Bei Schnittstellen ist es umgekehrt: Wer eine GraphQL-Schnittstelle anbindet, schreibt die Abfragen von Hand und bestimmt damit, wie viele Daten über die Leitung gehen.