Definition

Structured Query Language (SQL)

SQL (Structured Query Language) ist eine standardisierte Programmiersprache, die zur Verwaltung relationaler Datenbanken und zum Durchführen verschiedener Aktionen mit den darin enthaltenen Daten verwendet wird. SQL wurde in den 1970er Jahren entwickelt und wird nicht nur von Datenbankadministratoren verwendet, sondern auch von Entwicklern, die Skripte zur Datenintegration schreiben, und von Datenanalysten, die analytische Abfragen erstellen und ausführen möchten.

Zu den Verwendungszwecken von SQL gehören das Ändern von Datenbanktabellen- und Indexstrukturen, das Hinzufügen, Aktualisieren und Löschen von Datenreihen sowie das Abrufen von Teilmengen von Informationen aus einer Datenbank für die Transaktionsverarbeitung und für Analyseanwendungen. Abfragen und andere SQL-Operationen erfolgen in Form von Befehlen, die als Anweisungen geschrieben werden – zu den häufig verwendeten SQL-Anweisungen gehören Select, Add, Insert, Update, Delete, Create, Alter und Truncate.

SQL ist der De-facto-Standard unter den Programmiersprachen für relationale Datenbanken, nachdem diese in den späten 1970er und frühen 1980er Jahren aufkamen. Relationale Systeme, auch als SQL-Datenbanken bekannt, bestehen aus einer Reihe von Tabellen, die Daten in Zeilen und Spalten enthalten. Jede Spalte in einer Tabelle entspricht einer Datenkategorie – zum Beispiel Kundenname oder Adresse – während jede Zeile einen Datenwert für die sich kreuzende Spalte enthält.

SQL-Standard und proprietäre Erweiterungen

Ein offizieller SQL-Standard wurde 1986 vom American National Standards Institute (ANSI) und 1987 von der International Organization for Standardization, bekannt als ISO, verabschiedet. Mehr als ein halbes Dutzend gemeinsamer Aktualisierungen des Standards wurden seither von den beiden Standardisierungsgremien veröffentlicht.

Sowohl proprietäre als auch quelloffene relationale Datenbankmanagementsysteme, die auf SQL basieren, sind für den Einsatz in Unternehmen verfügbar. Dazu gehören:

Viele dieser Datenbankprodukte unterstützen SQL jedoch mit proprietären Erweiterungen der Standardsprache. Microsoft bietet zum Beispiel eine Reihe von Erweiterungen unter dem Namen Transact-SQL (T-SQL) an, während Oracles erweiterte Version des Standards PL/SQL heißt. Daher sind die verschiedenen Varianten von SQL, die von den Anbietern angeboten werden, nicht vollständig miteinander kompatibel.

SQL-Befehle und Syntax

SQL-Befehle werden in verschiedene Typen unterteilt, darunter Data Manipulation Language (DML) und Data Definition Language (DDL), Transaktionssteuerungen und Sicherheitsmaßnahmen. Das DML-Vokabular wird zum Abrufen und Manipulieren von Daten verwendet, während DDL-Anweisungen zum Definieren und Ändern von Datenbankstrukturen dienen. Die Transaktionssteuerung hilft bei der Verwaltung der Transaktionsverarbeitung und stellt sicher, dass die Transaktionen entweder abgeschlossen oder bei Fehlern oder Problemen zurückgesetzt werden. Die Sicherheitsanweisungen dienen dem Steuern des Datenbankzugriffs sowie dem Erstellen von Benutzerrollen und Berechtigungen.

Die SQL-Syntax ist das Codeformat, das beim Schreiben von Anweisungen verwendet wird. Abbildung 1 zeigt ein Beispiel für eine DDL-Anweisung, die in Microsofts T-SQL geschrieben wurde, um eine Datenbanktabelle in SQL Server 2016 zu ändern:

SQL-on-Hadoop-Tools

SQL-on-Hadoop-Abfrage-Engines sind ein neuerer Ableger von SQL, der es Unternehmen mit Big-Data-Architekturen, die um Hadoop-Systeme herum aufgebaut sind, ermöglicht, die Vorteile von SQL zu nutzen, anstatt komplexere und weniger vertraute Sprachen verwenden zu müssen – insbesondere die MapReduce-Programmierumgebung für das Entwickeln von Anwendungen für die Stapelverarbeitung.

Mehr als ein Dutzend SQL-on-Hadoop-Tools sind inzwischen über Hadoop-Distributionsanbieter und andere Anbieter verfügbar; viele davon sind Open-Source-Software. Darüber hinaus enthält die Apache-Spark-Verarbeitungs-Engine, die oft in Verbindung mit Hadoop verwendet wird, ein Spark-SQL-Modul, das auf ähnliche Weise SQL-basierte Programmierung unterstützt.

Beispiel für T-SQL-Code auf SQL Server 2016
Abbildung 1: Beispiel für T-SQL-Code auf SQL Server 2016. Der Code zeigt die TABLE WITH (ONLINE= ON/OFF)-Option.

Im Allgemeinen ist SQL-on-Hadoop immer noch eine aufstrebende Technologie, und die meisten verfügbaren Tools unterstützen nicht alle Funktionen, die in relationalen Implementierungen von SQL angeboten werden. Aber sie werden zu einer regulären Komponente von Hadoop-Implementierungen, da viele Unternehmen Entwickler und Datenanalysten mit SQL-Kenntnissen in die Programmierung von Big-Data-Anwendungen einbinden möchten.

Diese Definition wurde zuletzt im Januar 2021 aktualisiert

Erfahren Sie mehr über Datenbanken