Definition „Structured Query Language“ Was ist SQL?

Aktualisiert am 26.04.2024 Von Dipl.-Ing. (FH) Stefan Luber 4 min Lesedauer

Anbieter zum Thema

Die Structured Query Language, kurz SQL, ist eine Abfragesprache für die Kommunikation mit relationalen Datenbanken. Mit SQL-Befehlen lassen sich Daten relativ einfach einfügen, verändern oder löschen.

Die meisten der existierenden Datenbanksysteme verfügen über SQL-Schnittstellen.
Die meisten der existierenden Datenbanksysteme verfügen über SQL-Schnittstellen.
(Bild: alphaspirit - Fotolia.com)

Die Grundzüge von SQL

Die Datenbanksprache SQL zeichnet sich durch ihre einfach gehaltene Syntax aus und basiert auf der relationalen Algebra. Sie besteht semantisch im Wesentlichen aus englischen Sprachelementen. SQL ist standardisiert und kann plattformübergreifend mit vielen Datenbanksystemen genutzt werden. Allerdings verhindern die verschiedenen bestehenden SQL-Dialekte und -Implementierungen eine hundertprozentige Kompatibilität.

Populäre Open-Source-Implementierungen sind MySQL, PostgreSQL und SQLite. Wichtige proprietäre Lösungen sind Microsoft SQL Server, Oracle Database und IBM DB2. Auf einigen dieser Implementierungen bauen auch der Amazon Relational Database Service (RDS) und Google Cloud SQL auf.

Die meisten der existierenden Datenbanksysteme verfügen über SQL-Schnittstellen und ermöglichen den Zugang zu den gespeicherten Daten über die universelle Structured Query Langurage. Die eigentlichen SQL-Abfragen sind mit wenig Aufwand zu bewerkstelligen, da für einen Großteil der Anweisungen nur wenige unterschiedliche Befehle bekannt sein müssen.

Die verschiedenen Kategorien der SQL-Befehle

Neben 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): Für den lesenden Zugriff auf eine Datenbank und zum Bearbeiten, Einfügen oder Löschen von Daten.
  • DDL-Befehle (Data Definition Language): Zur Definition des Schemas einer Datenbank
  • DCL-Befehle (Data Control Language): Zur Verwaltung einzelner Rechte und Kontrolle von Transaktionen

Datenabfragen erfolgen mit dem Befehl „SELECT“, dem weitere Befehle wie „FROM“ oder „WHERE“ folgen. Dabei kann SQL das Abfrageergebnis in Tabellenform ausgeben und die Daten als neue Tabelle weiterverarbeiten.

Beispiele für SQL-Befehle der verschiedenen Kategorien

Im Folgenden einige Befehlsbeispiele aus den verschiedenen SQL-Kategorien.

Wichtige DML-Befehle sind:

  • SELECT FROM ... für das Lesen, …
  • DELETE FROM ... für das Löschen und …
  • INSERT INTO ... für das Einfügen von Daten in Tabellen sowie
  • UPDATE … für das nachträgliche Ändern und …
  • MERGE … für das Zusammenführen von Daten.

Wichtige DDL-Befehle

  • CREATE TABLE ... - für das Anlegen und …
  • ALTER TABLE ... zum Ändern von Tabellen, …
  • CREATE VIEW ... zum Anlegen einer sogenannten Sicht.

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

Standard-Datentypen in SQL

Mit Befehlen wie „CREATE TABLE“ oder „ALTER TABLE“ lassen sich per SQL Tabellen und Spalten anlegen, für die jeweils ein Datentyp zu definieren ist. Zu diesem Zweck sind in SQL viele verschiedene Datentypen vorgesehen. Wichtige Datentypen 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 Datums- und Zeitangaben
  • diverse Binärformate wie Blob

Neben den Standarddatentypen wie bietet SQL weitere Datentypen wie boolean, enum, json oder array, die je nach Datenbanksystem unterstützt werden. Diese Datentypen dienen der Typüberprüfung und Optimierung der Datenspeicherung.

Programmieren mit SQL

Bei SQL handelt es sich um keine vollwertige Programmiersprache, mit der Datenbanksprache können also keine vollständigen Programme erstellt werden. Allerdings lässt sich SQL sehr gut mit anderen Programmiersprachen wie Java, C# oder auch Python kombinieren.

Ebenso lässt sich SQL in Programme einbetten. Hierfür kommen verschiedene Techniken wie Embedded SQL, Programmierschnittstellen (APIs) oder Frameworks zum Einsatz. Bei den SQL-Befehlen kann zwischen dynamischem und statischem SQL unterschieden werden:

  • Statische SQL-Anweisungen sind bereits vor der Kompilierung des Programms festgelegt.
  • Dynamische SQL-Anweisungen sind hingegen erst direkt zum Zeitpunkt der Programmausführung bekannt. Dadurch müssen die SQL-Anweisungen direkt zur Laufzeit der Programme durch das Datenbanksystem interpretiert werden.

SQL im Zusammenspiel mit PHP

Ein weit verbreitetes Anwendungsgebiet von SQL ist die Verwendung zusammen mit der Skriptsprache PHP (Hypertext Preprocessor). Der Großteil der im World Wide Web erreichbaren Internetauftritte, Onlineshops und Internetservices basiert auf der Kombination von PHP-Anweisungen und SQL-Datenbanken.

Beispielsweise nutzen fast alle gängigen Content-Management-Systeme (CMS) wie WordPress diese Technik, um Webinhalte dynamisch zu erzeugen. Hierfür werden auf dem Webserver PHP-Skripte abgelegt, die der Anwender mit seinem Browser aufruft. Ist ein PHP-Dokument angefordert, führt der Webserver das Skript mit Hilfe seines PHP-Interpreters aus.

Im PHP-Code befinden sich auch SQL-Befehle, mit denen auf die Inhalte einer auf dem Server hinterlegten Datenbank zugegriffen werden kann. Der Webserver erzeugt mit den PHP-Befehlen und den Inhalten aus der SQL-Datenbank eine HTML-Seite, die der Browser des Anwenders lädt und anzeigt.

Datenbank-Administration mit SQL

Mit speziellen SQL-Befehlen lassen sich überdies administrative Aufgaben wie Backups, Wiederherstellung, Benutzerverwaltung und Überwachung realisieren. Der Zugang und die Sicherheit für Anwendungen und Benutzer geregelt wird mittels Rollen und Berechtigungen geregelt.

Einige Beispiele für administrative SQL-Befehle sind:

  • BACKUP DATABASE – zum Sichern einer gesamten Datenbank
  • RESTORE DATABASE – für das Wiederherstellen einer Datenbanksicherung
  • CREATE USER / DROP USER – Anlegen und Löschen von Datenbankbenutzern
  • ALTER USER – zum Ändern von Benutzerkonten und Berechtigungen
  • CREATE/DROP INDEX – dient dem Anlegen und Löschen von Indizes
  • SHOW PROCESSLIST – listet alle aktiven Datenbankverbindungen
  • ANALYZE TABLE – für die Analyse und Optimierung von Tabellen

(ID:44551343)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung