SQL – Structured Query Language – Industriestandard-Sprache zur Verwaltung und Manipulation von relationalen Datenbanken

Was ist SQL?

Die Abkürzung SQL steht für den Begriff Structured Query Language und bezeichnet eine Sprache für die Kommunikation mit relationalen Datenbanken. Mit SQL-Befehlen lassen sich Daten relativ einfach einfügen, verändern oder löschen.

Was ist eine Datenbank?

Eine Datenbank, auch Datenbanksystem genannt, ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe einer Datenbank ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern und benötigte Teilmengen in unterschiedlichen, bedarfsgerechten Darstellungsformen für Benutzer und Anwendungsprogramme bereitzustellen.

Wie wird eine Datenbank genutzt?

In der Regel nutzt man ein sogenanntes Datenbank-Managementsystem (DBMS), eine Systemsoftware zum Erstellen und Verwalten von Datenbanken. Mit einem solchen Programm können Nutzer Daten in eine Datenbank einpflegen, um sie zu sammeln, zu lesen, zu aktualisieren und zu löschen.

Datenbank-Managementsysteme?

Ja, plural! Man unterscheidet zwischen relationalen (SQL bzw. RDMS) und nicht relationalen (NoSQL „Not only SQL“) Datenbanken bzw. Datenbanksystemen. Relationale Datenbanken modellieren Daten als Datensätze in Zeilen und Tabellen mit logischen Verknüpfungen zwischen ihnen. Und NoSQL verwendet stattdessen ein Speichermodell, das für die spezifischen Anforderungen des gespeicherten Datentyps optimiert ist. Daten können beispielsweise als einfache Schlüssel-Wert-Paare, als JSON-Dokumente oder als Diagramm mit Edges und Scheitelpunkten eingepflegt werden. Bekannte Implementierungen sind Riak, Apache Cassandra, CouchDB, MongoDB und Redis.
Was wir definitiv festhalten können – NoSQL Systeme können SQL nicht verstehen 🙂

Funfact Aussprache: S-Q-L / SEQUEL

Die Sprache wurde in den 70er Jahren von IBM entwickelt und als SEQUEL bezeichnet. Das Akronym für Structured English Query Language. Es wurde aber später in SQL abgeändert, da „SEQUEL“ eine Marke des britischen Flugzeugherstellers Hawker Siddeley war.

Eigentümlichkeiten von SQL

Die Datenbanksprache zeichnet sich durch eine einfach gehaltene Syntax aus. Sie basiert auf der relationalen Algebra und besteht semantisch im Wesentlichen aus englischen Sprachelementen. SQL ist standardisiert und kann plattformübergreifend mit vielen Datenbanksystemen genutzt werden. Es existieren verschiedene Dialekte (MySQL, PostgreSQL, SchemaSQL, Transact-SQL), die eine hundertprozentige Kompatibilität verhindern. Die meisten Datenbanksysteme verfügen über Schnittstellen und ermöglichen den Zugang zu den gespeicherten Daten über die universelle SQL-Datenbanksprache. Die eigentlichen Abfragen sind mit wenig Aufwand zu realisieren, da für einen Großteil der Anweisungen nur wenige Befehle erforderlich sind.

Kategorien der SQL-Befehle

Neben den Befehlen zum Anlegen, Bearbeiten und Löschen von Daten besitzt SQL Elemente für die Definition von Datenstrukturen und zur Abfrage von Datenbeständen. Grundsätzlich kann zwischen drei verschiedenen Kategorien von SQL-Befehlen unterschieden werden. Diese Kategorien sind:

  • DML-Befehle (Data Manipulation Language)
  • DDL-Befehle (Data Definition Language)
  • DCL-Befehle (Data Control Language)

Während DML-Befehle zum Bearbeiten, Einfügen oder Löschen von Daten oder für den lesenden Zugriff auf die Datenbank vorgesehen sind, lassen sich die DDL-Befehle für die Definition des Schemas einer Datenbank verwenden. DCL-Befehle dienen hingegen der Rechtevergabe oder zur Kontrolle von Transaktionen. Abfragen von Daten aus der Datenbank werden mit dem Befehl „SELECT“ eingeleitet, dem weitere Befehle wie „FROM“ oder „WHERE“ folgen. Im Rahmen einer Abfrage ermöglicht SQL, das Ergebnis in Tabellenform auszugeben und diese Daten als neue Tabelle weiterzuverwenden oder zu bearbeiten.

Beispiele für SQL-Befehle der verschiedenen Kategorien

Wichtige DML-Befehle
– SELECT FROM … für das Lesen von Daten aus Tabellen
– DELETE FROM … für das Löschen von Daten in Tabellen
– INSERT INTO … für das Einfügen von Daten in Tabellen

Wichtige DDL-Befehle
– CREATE TABLE … – für das Anlegen von Tabellen
– DROP INDEX … für das Löschen eines Index
– ALTER TABLE … für das Ändern von Tabellen

Wichtige DCL-Befehle
– GRANT ON TO … für die Weitergabe von Rechten an einer Tabelle zu einem bestimmten User
– REVOKE … für das Widerrufen von Rechten

Datentypen in SQL

Mit Befehlen wie „CREATE TABLE“ oder „ALTER TABLE“ lassen sich per Tabellen und Spalten anlegen, für die jeweils ein Datentyp zu definieren ist. Zu diesem Zweck sind in dieser Sprache viele verschiedene Datentypen vorgesehen. Wichtige Standarddatentypen sind beispielsweise:

– Integer für ganze Zahlen
– Numeric und Decimal für Festkommazahlen
– Float, Real und Double für Gleitkommazahlen
– Charakter und Text für Zeichenketten
– Date und Time für Datum- und Zeitangaben
– diverse Binärformate wie Blob
– und viele mehr

Programmieren mit SQL?

Bei dieser Datenbanksprache handelt es sich um keine vollwertige Programmiersprache. Mit den Befehlen selbst können daher keine vollständigen Programme erstellt werden. Allerdings lässt sich SQL sehr gut mit anderen Programmiersprachen kombinieren oder in Programme einbetten. Hierfür kommen verschiedene Techniken wie Embedded SQL, Programmierschnittstellen oder Frameworks zum Einsatz.

Bei den Befehlen kann zwischen dynamischem und statischem SQL unterschieden werden. Während statische Anweisungen beim Zeitpunkt der Übersetzung des Programms festgelegt sind, sind dynamische Anweisungen erst direkt zum Zeitpunkt der Programmausführung bekannt. Dadurch müssen die Anweisungen direkt zur Laufzeit der Programme durch das Datenbanksystem interpretiert werden.