Was ist SQL (Structured Query Language)?

Nahaufnahme von Händen, die an einem Desktop-Computer in einem Überwachungsraum arbeiten

Autoren

Alexandra Jonker

Staff Editor

IBM Think

Tim Mucci

IBM Writer

Gather

Was ist SQL?

Die strukturierte Abfragesprache (Structured Query Language, SQL) ist eine domänenspezifische, standardisierte Programmiersprache, die zur Interaktion mit relationalen Datenbankmanagementsystemen (RDBMS) wie MySQL, SQL Server, IBM Db2, PostgreSQL und Oracle Database verwendet wird.

SQL-Abfragen (auch als SQL-Befehle oder SQL-Anweisungen bezeichnet) ermöglichen es Benutzern, Daten in einer relationalen Datenbank (oder SQL-Datenbank) auf einfache Weise hinzuzufügen, abzurufen, zu aktualisieren, zu löschen, zu aggregieren und anderweitig zu verwalten. In diesen Systemen werden strukturierte Daten in Zeilen und Spalten angeordnet, die zusammen Tabellen bilden. Daten sind in der Regel über mehrere miteinander verbundene Tabellen verteilt, die über Primär- oder Fremdschlüssel miteinander verknüpft werden können.

Im Gegensatz zu anderen Programmiersprachen ist SQL eine deklarative Sprache, d. h., sie beschreibt, was der Benutzer vom Computer erwartet, und nicht, wie dies zu erreichen ist. Das ist konträr zu imperativen oder prozeduralen Sprachen (wie Java und COBOL), die schrittweise Anweisungen erfordern.

Schreibt ein Benutzer eine SQL-Abfrage zum Abrufen von Daten, muss er der Datenbank nicht sagen, wie sie die Daten erfassen soll. Stattdessen beschreibt er, wie das Ergebnis aussehen soll.

SELECT Name, E-Mail
FROM Kunden
WHERE Ort = 'Bonn' ;

SQL ist ein grundlegendes und vielseitiges Tool im modernen Tech-Stack, das für seine Datenbearbeitungsfunktionen, schnelle Abfrageverarbeitung und starken Sicherheitsmerkmale bekannt ist. Darüber hinaus bietet es Kompatibilität zwischen verschiedenen Systemen, Skalierbarkeit für wachsende Datenanforderungen sowie einen zuverlässigen Open-Source-Support und Community-Support.

Die Geschichte von SQL

SQL wurde in den 1970er Jahren von den IBM-Wissenschaftlern Donald Chamberlin und Raymond Boyce entwickelt. Sie geht auf das Konzept relationaler Modelle zurück und wurde zunächst als strukturierte englische Abfragesprache (SEQUEL) bezeichnet, bevor sie zu SQL abgekürzt wurde. Auf den Markt kam sie 1979 und hat sich seitdem zum weltweiten Standard für Verwaltungssysteme für relationale Datenbanken entwickelt.

SQL wurde 1986 vom American National Standards Institute (ANSI) und 1987 von der International Organization for Standardization (ISO) normiert. Trotz ihrer Standardisierung gibt es verschiedene SQL-Dialekte, z. B. T-SQL für Microsoft SQL Server und PL/SQL für Oracle. Diese SQL-Dialekte erfüllen spezifische Systemanforderungen und sind gleichzeitig mit den zentralen ANSI-Standardbefehlen wie SELECT, UPDATE, DELETE, INSERT und WHERE kompatibel.

Die neuesten Tech-News – von Experten bestätigt

Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben sich angemeldet.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

Die Bedeutung von SQL

Seit ihrer Entstehung in den 1970er Jahren hat sich SQL zum Rückgrat moderner Datenbanksysteme entwickelt.

Im Gegensatz zu allgemeinen Programmiersprachen wurde SQL speziell für relationale Datenbanken entwickelt – und relationale Datenbanken sind wiederum für SQL optimiert. Dieses kollaborative Design macht SQL zu einem äußerst effizienten Tool für die Datenverwaltung.

Der deklarative Charakter von SQL macht es auch für Benutzer mit begrenzten Programmierkenntnissen zugänglich und somit zu einer idealen Sprache für Einsteiger. Ihre weit verbreitete Verwendung und Integration in andere Programmiersprachen wie Python und Java machen sie auch zu einer wertvollen Kompetenz in umfassenderen Programmier- und Datenumgebungen.

Datenanalysten, Data Scientists und Datenbankadministratoren verwenden SQL regelmäßig, da es sich hervorragend für Aufgaben wie Datenverarbeitung, Datendefinition, Zugriffskontrolle, Datennutzung, Datenintegration und Big-Data-Analysen eignet.

In Data Science werden mit SQL Datenbanken erstellt, in denen große, zur Analyse benötigte Datensätze gespeichert werden. Die Fähigkeit, Daten aus diesen umfangreichen, strukturierten Datensätzen zu bearbeiten und abzurufen, ist auch für die Entwicklung von Anwendungen im Bereich der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) von entscheidender Bedeutung, da diese für das Training auf hochwertige Daten angewiesen sind.

Durch die Einhaltung der ACID-Eigenschaften – Atomizität, Konsistenz, Isolation und Dauerhaftigkeit – trägt SQL dazu bei, eine zuverlässige Transaktionsverarbeitung für kritische Anwendungsfälle und den Umgang mit sensiblen Daten sicherzustellen. Darüber hinaus unterstützt es eine präzisere datengestützte Entscheidungsfindung, fortschrittliche Analysen und verbesserte Business Intelligence.

AI Academy

Ist Datenverwaltung das Geheimnis generativer KI?

Erfahren Sie, warum qualitativ hochwertige Daten für den erfolgreichen Einsatz generativer KI unerlässlich sind.

Was sind die Vorteile von SQL?

SQL bietet viele Vorteile, weshalb es nach wie vor eine der am häufigsten verwendeten und beständigsten Programmiersprachen ist.

Einfache Datenmanipulation

Die einfachen Befehle von SQL (wie GROUP BY, ORDER BY, GRANT und REVOKE) ermöglichen Nutzern mit unterschiedlichen Qualifikationen die Arbeit mit Datenbanken.

Schnelle Abfrageverarbeitung

SQL-Indizes und Techniken zur Abfrageoptimierung verbessern die Geschwindigkeit der Datenabfrage und damit die Datenbankleistung.

Robuste Datensicherheit

SQL-Datenbanken verfügen über Sicherheitsfunktionen wie Benutzerauthentifizierung, Zugriffskontrollen und Verschlüsselung zum Schutz der Daten.

Ähnliche Verwendung und Kompatibilität

SQL entspricht den ANSI- und ISO-SQL-Standards, wodurch die Kompatibilität mit verschiedenen Systemen und Plattformen, einschließlich Cloud-Umgebungen und Big-Data-Tools, gewährleistet ist.

Skalierbarkeit

Mit SQL lassen sich sowohl kleine als auch große Datenbanken effektiv verwalten und ohne nennenswerte Leistungseinbußen an wachsende Datenanforderungen anpassen.

Open-Source-Support

Viele SQL-Datenbanken sind quelloffen (Open Source) und werden von einer großen, aktiven Community gepflegt, die zur kontinuierlichen Verbesserung und Problemlösung beiträgt.

Wie funktioniert eine SQL-Abfrage?

Eine relationale Datenbank organisiert Daten in einem tabellarischen Format (Zeilen und Spalten) und erleichtert die Verknüpfung zwischen verschiedenen Tabellen. Eine Datenbank „Kundendienst“ verwendet beispielsweise verschiedene Tabellen für Kundeninformationen, Käufe, Produktcodes und Kontakte. Durch Schlüssel wie eine eindeutige Kunden-Nr. sind die Datensätze miteinander verknüpft.

Mit SQL können Benutzer Abfragen (und Unterabfragen) schreiben, um diese Daten zu bearbeiten. Diese Befehle durchlaufen während des SQL-Prozesses mehrere Softwarekomponenten:

Ein Parser verifiziert die Korrektheit von SQL-Anweisungen und wandelt sie in ein Format um, das die Datenbank verstehen kann, beispielsweise in tokenisierte Symbole. Dieser Schritt umfasst die Syntaxanalyse und die semantische Überprüfung. Der Parser stellt außerdem sicher, dass der Benutzer zur Ausführung des Vorgangs berechtigt ist.

Anschließend plant eine relationale Engine – auch als Abfrageoptimierer bezeichnet – die effizientesten Strategien für den Abruf, die Änderung oder das Hinzufügen von Daten. Dazu werden verschiedene Abfrageausführungspläne bewertet. Der Plan wird in Bytecode geschrieben, einer Sprache für virtuelle Maschinen. Dieser Schritt ist entscheidend, um Leistung und Ressourcennutzung der Datenbank zu optimieren.

Schließlich verarbeitet eine Speicher-Engine den Bytecode, führt die SQL-Anweisung aus und verwaltet den physischen Datenspeicher. Es ist für die physische Darstellung von Daten zuständig, einschließlich Dateiformaten und Datenpufferung. Außerdem wird das Ergebnis an den Benutzer oder die Anwendung zurückgegeben. Dieser Schritt trägt dazu bei, einen effizienten Datenzugriff und Aktualisierungen auf dem Datenträger sicherzustellen. Diese Verknüpfung kann eine 1:n- oder n:n-Beziehung sein, die mithilfe von Primär- und Fremdschlüsseln Datenintegrität gewährleistet.

SQL-System – Schlüsselkomponenten

Relationale Datenbankmanagementsysteme (auch SQL-Systeme genannt) bestehen aus vielen Komponenten, darunter:

  • Datenbanken: Ein digitales Repository zum Speichern, Verwalten und Sichern organisierter Datensammlungen.

  • Datenbanktabellen: Daten, die in Zeilen und Spalten formatiert sind; jede enthält Informationen zu einem Typ von Entität.

  • SQL-Abfragen: SQL-Abfragen sind in SQL geschriebene Anweisungen, die zur Bearbeitung von Daten in einer relationalen Datenbank verwendet werden.

  • SQL-Einschränkungen: Regeln, die Daten in Datenbankspalten oder -tabellen kontrollieren, um die Datenintegrität zu gewährleisten.

  • Gespeicherte Prozeduren: SQL-Befehle, die zur wiederholten Verwendung gespeichert werden.

  • Transaktionen: Ein oder mehrere SQL-Befehle, die als einzelne Arbeitseinheit oder Operation gebündelt sind.

  • Datentypen: Regeln, die den Typ der Daten definieren, die in einer Spalte gespeichert werden können.

  • Indizes: Ein Datenbankobjekt, das den Datenabruf beschleunigt, indem es die Anzahl der für eine Abfrage erforderlichen Festplattenzugriffe reduziert.

  • Ansichten: Virtuelle Tabellen auf Basis von SQL-Abfragen, die komplexe Abfragen vereinfachen und die Sicherheit verbessern, indem sie den Zugriff auf zugrunde liegende Daten einschränken.

  • Sicherheit und Berechtigungen: Funktionen zur Verwaltung des Benutzerzugriffs sowie Backup- und Wiederherstellungsmechanismen schützen Daten vor Verlust oder Beschädigung.

Typen von SQL-Befehlen: DDL, DML, DQL, DCL und TCL

SQL-Befehle werden üblicherweise in die folgenden Kategorien unterteilt:

  • Datendefinitionssprache (DDL)
  • Datenbearbeitungssprache (DML)
  • Datenkontrollsprache (Data Control Language, DCL)
  • Datenabfragesprache (DQL)
  • Transaktionssteuerungssprache (TCL)

Datendefinitionssprache (DDL)

Datendefinitionssprache verwaltet Datenbankobjekte wie Tabellen, Ansichten und Indizes. Sie definiert die Struktur und Organisation der gespeicherten Daten sowie die Beziehungen zwischen den gespeicherten Artikeln. 

Datenbearbeitungssprache (DML)

Die Datenbearbeitungssprache verwaltet Daten in Datenbanken durch Operationen wie INSERT, UPDATE und OUTER JOIN, mit denen Daten hinzugefügt, geändert und kombiniert werden können.

Datenkontrollsprache (DCL)

Die Datenkontrollsprache regelt den Datenzugriff über Befehle wie GRANT (zum Erteilen von Berechtigungen) und REVOKE (zum Entziehen von Berechtigungen). Es kann die Möglichkeiten eines Benutzers zum Abrufen, Hinzufügen und Ändern von Daten einschränken.

Datenabfragesprache (DQL)

Eine Datenabfragesprache führt Datenabfragen durch, um Informationen abzurufen, in der Regel mithilfe des Befehls SELECT. Es kann bestimmte Datenartikel oder eine Reihe von Artikeln abrufen.

Transaktionssteuerungssprache (TCL)

Die Transaktionssteuerungssprache verwaltet Transaktionsänderungen, um die Datenintegrität sicherzustellen, und unterstützt die Operationen ROLLBACK und COMMIT zum Rückgängigmachen bzw. Speichern von Änderungen. Es dient zur Koordinierung der Datennutzung durch mehrere Benutzer gleichzeitig.

Was sind die gängigsten SQL-Befehle?

SQL-Datenbanken unterstützen verschiedene SQL-Anweisungen für Datenoperationen. SQL-Befehle können jedoch je nach Datenbank variieren, da diese möglicherweise eine eigene SQL-Syntax verwenden.

Zu den grundlegenden SQL-Befehlen gehören:

SELECT

Ruft Daten aus einer oder mehreren Tabellen ab.

SELECT Name, E-Mail

FROM Kunden

WHERE Ort = 'Bonn' ;
Diese Anweisung ruft den Namen und die E-Mail-Adresse aller Kunden aus der Tabelle „Kunden“ ab, die in Bonn leben.

INSERT

Fügt einer Tabelle neue Zeilen hinzu.

INSERT INTO Kunden (Name, E-Mail, Stadt)
VALUES ('Max Mustermann', 'max.mustermann@beispiel.de', 'Bochum') ;

Diese Anweisung fügt eine neue Zeile zur Tabelle „Kunden“ mit dem Namen „Max Mustermann“ und E-Mail-Adresse „max.mustermann@beispiel.de“ sowie dem Ort „Bochum“ hinzu.

UPDATE

Ändert vorhandene Daten in einer Tabelle.

UPDATE Kunden 
SET E-Mail = 'muster@beispiel.de' 
WHERE name = 'John Doe' ;

Diese Anweisung aktualisiert die E-Mail-Adresse des Kunden namens „Max Mustermann“ in der Kundentabelle auf „neu.e-mail@beispiel.de“.

DELETE

Entfernt Zeilen aus einer Tabelle basierend auf einer Bedingung.

DELETE FROM Kunden 
WHERE Ort = 'Bonn' ;

Diese Anweisung löscht alle Zeilen aus der Tabelle „Kunden“, in denen der Ort „Bonn“ lautet.

CREATE TABLE

Definiert eine neue Tabelle und deren Struktur.

CREATE TABLE products (
product_id INT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10, 2)
) ;

Diese Anweisung erstellt eine neue Tabelle mit dem Namen „Produkte“ und drei Spalten: „Produkt_Nr“ als ganzzahliger Primärschlüssel, „Name“ als variable Zeichenfolge mit bis zu 100 Zeichen und „Preis“ als Dezimalzahl mit zehn Ziffern und zwei Dezimalstellen.

ALTER TABLE

Ändert die Struktur einer vorhandenen Tabelle.

ALTER TABLE Kunden 
ADD COLUMN Geburtstag DATE ;

Mit dieser Anweisung wird der vorhandenen Tabelle „Kunden“ eine neue Spalte „Geburtstag“ vom Typ DATE hinzugefügt.

DROP TABLE

Löscht die Tabelle mit allen Daten.

DROP TABLE Alte_Kunden

Diese Anweisung löscht die Tabelle „Alte_Kunden“ mitsamt aller Daten.

JOIN

Kombiniert Zeilen aus zwei oder mehr Tabellen basierend auf einer zugehörigen Spalte.

SELECT c.name, P.Name AS Produkt_Name
FROM Kunden c
JOIN Bestellungen o ON K.Kunden = O.Kunden_Nr
JOIN Produkte p ON O.Produkt_Nr = P.Produkt_Nr
WHERE K.Ort = 'Bonn'

Die SQL-Anweisung JOIN ruft die Namen der Kunden sowie die Namen der von ihnen bestellten Produkte ab. Sie vereint die Tabellen „Kunden“, „Bestellungen“ und „Produkte“ basierend auf „Kunden_Nr“ und „Produkt_Nr“ und wählt dabei nur die Kunden aus, die in Bonn leben.

SQL vs. NoSQL-Datenbanken

SQL-Datenbanken sind relationale Datenbanken, in denen strukturierte Daten in Zeilen und Tabellen gespeichert werden, die auf verschiedene Weise miteinander verknüpft sind. SQL ist die Standardsprache für die Interaktion mit diesen Datenbanken.

NoSQL-Datenbanken (oder nicht relationale Datenbanken) entstanden Ende der 2000er Jahre, um Daten mit weniger Struktur zu verarbeiten. Diese Arten von Datenbanken (wie MongoDB) bieten im Vergleich zu SQL-Datenbanken flexiblere Datenmodelle.

Die wichtigsten Unterschiede:

  • Skalierbarkeit
  • Struktur
  • Leistung
  • Anwendungsfälle
  • Wissen und Gemeinschaft
  • Wartung und Management

Skalierbarkeit

NoSQL-Datenbanken sind horizontal skalierbar und bewältigen höheren Datenverkehr durch Hinzufügen weiterer Server. Im Gegensatz dazu sind SQL-Datenbanken traditionell vertikal skalierbar und erfordern leistungsfähigere Hardware, um eine höhere Last zu bewältigen.

Struktur

Dank robuster Index- und Verknüpfungsfunktionen verwenden SQL Databases eine tabellenbasierte Struktur, die sich ideal für mehrzeilige Transaktionen und komplexe Abfragen über zusammengehörige Daten eignet. NoSQL bietet verschiedene Strukturen, wie z. B. Schlüsselwert-, Dokument-, Diagramm- oder spaltenorientierte Datenbanken, die unterschiedlichen Anforderungen gerecht werden und mit halbstrukturierten oder unstrukturierten Daten mehr Flexibilität ermöglichen.

Leistung

SQL-Datenbanken sind für komplexe Abfragen mit strikter Datenkonsistenz gemäß den ACID-Prinzipien optimiert. NoSQL-Datenbanken, die den BASE-Prinzipien (basically available, soft state, eventual consistency) folgen, bieten eine schnellere Leistung für bestimmte Typen von Daten, jedoch mit unterschiedlichen Konsistenzgarantien.

Anwendungsfälle

SQL-Datenbanken werden häufig für Anwendungen ausgewählt, die komplexe Transaktionen, konsistente Daten und die strikte Einhaltung von Schemas erfordern, wie beispielsweise Finanzsysteme, E-Commerce-Plattformen oder CRM-Datenbanken. NoSQL wird für sich schnell ändernde, umfangreiche oder halbstrukturierte Daten bevorzugt, z. B. in sozialen Netzwerken, Echtzeitanalysen oder Content-Management-Systemen.

Wissen und Gemeinschaft

SQL-Datenbanken verfügen aufgrund ihrer längeren Geschichte und weit verbreiteten Nutzung über umfangreichere Ressourcen, wie beispielsweise SQL-Tutorials und Community-Support. NoSQL erfordert oft weniger Vorabdesign und kann einfacher zu skalieren sein, erfordert aber öfter mehr individuelle Entwicklung für komplexe Abfragen und Datenkonsistenz.

Wartung und Management

SQL-Datenbanken erfordern ein sorgfältiges Schema-Design und sind bei Schema-Änderungen oft sehr wartungsintensiv. NoSQL-Datenbanken bieten eine einfachere Skalierbarkeit und Anpassungsfähigkeit für Schemaänderungen ohne große Ausfallzeiten oder Umstrukturierungen.

Was ist SQL-Injection?

Trotz der Sicherheitsvorteile vieler SQL-Datenbanken können andere Unternehmensanwendungen anfällig für Sicherheitsprobleme sein, beispielsweise schwache Authentifizierung, unsichere Konzeption und Fehlkonfigurationen. Aufgrund dieser Schwachstellen stellt die SQL-Injection nach wie vor eine reale Bedrohung für Unternehmen dar.

Eine SQL-Injection tritt auf, wenn Hacker SQL-Abfragen manipulieren, um auf Datenbankinformationen zuzugreifen oder diese zu beschädigen. Solche Schwachstellen zu kennen und solide Sicherheitsmaßnahmen zu implementieren, ist zum Schutz der SQL-Daten von entscheidender Bedeutung.

Weiterführende Lösungen
IBM® StreamSets

Erstellen und verwalten Sie intelligente Streaming-Datenpipelines über eine intuitive grafische Benutzeroberfläche, die eine nahtlose Datenintegration in Hybrid- und Multicloud-Umgebungen ermöglicht.

StreamSets erkunden
IBM watsonx.data

Watsonx.data ermöglicht es Ihnen, Analysen und KI mit all Ihren Daten zu skalieren, unabhängig davon, wo sie sich befinden, und zwar über einen offenen, hybriden und kontrollierten Datenspeicher.

IBM watsonx.data entdecken
Beratungsservices für Daten und Analysen

Erschließen Sie den Wert von Unternehmensdaten mit IBM Consulting® und bauen Sie ein erkenntnisgesteuertes Unternehmen auf, das Ihnen geschäftliche Vorteile verschafft.

Analyse-Services entdecken
Machen Sie den nächsten Schritt

Entwerfen Sie eine Datenstrategie, die Datensilos beseitigt, die Komplexität reduziert und die Datenqualität verbessert, um außergewöhnliche Kunden- und Mitarbeitererfahrungen zu schaffen.

Lösungen für Datenmanagement erkunden IBM watsonx.data entdecken