Grundlagen von SQL

In dieser interaktiven Lerneinheit eignest du dir die wichtigsten Grundlagen der Datenbanksprache SQL an und lernst, wie du Daten gezielt abfragen, einfügen, aktualisieren und löschen kannst. Du übst anhand praktischer Beispiele die Syntax von SELECT-Anweisungen mit WHERE-Bedingungen, JOINs und Aggregatfunktionen. Durch zahlreiche Übungen entwickelst du Routine im Umgang mit SQL-Befehlen, wie sie täglich in der Entwicklung und Wartung von Datenbankanwendungen benötigt werden.

Einführung

Du hast eine sauber modellierte relationale Datenbank – Tabellen, Beziehungen, Primär- und Fremdschlüssel.

Aber wie holst du jetzt alle Bestellungen eines bestimmten Kunden? Wie fügst du einen neuen Artikel hinzu oder änderst den Lagerbestand? Genau hier hilft uns SQL – die Sprache, mit der du der Datenbank konkrete Anweisungen gibst.

Lernziele

Nach dieser Lerneinheit kannst du:

  • SQL als standardisierte Abfragesprache für relationale Datenbanken beschreiben und deren Vorteile benennen
  • einfache SQL-Befehle aus den Kategorien DDL, DML, DQL und DCL erkennen und erklären
  • grundlegende SQL-Befehle wie CREATE, SELECT, INSERT, UPDATE und DELETE selbst formulieren und anwenden
  • aus einer gegebenen Anforderung (z. B. „Zeige alle Kunden mit Bestellungen“) eine passende SQL-Abfrage ableiten
  • beurteilen, welcher SQL-Befehl in einer bestimmten Situation geeignet ist, um Daten strukturiert zu verändern oder abzufragen

Überleitung

Bevor wir mit den ersten Befehlen arbeiten, klären wir zunächst: Was genau ist SQL – und warum ist es für den Umgang mit relationalen Datenbanken so wichtig?

Was ist SQL

SQL steht für Structured Query Language und ist eine standardisierte Sprache zur Verwaltung und Abfrage relationaler Datenbanken. Sie ermöglicht es, Daten effizient zu manipulieren, zu durchsuchen und die Struktur der Datenbanken selbst zu definieren.

Warum SQL?

SQL wird aus verschiedenen Gründen genutzt:

  • Einfachheit: SQL ist leicht zu erlernen und ermöglicht auch Nicht-Programmierern den Zugriff auf Datenbanken.
  • Effektivität: Unterstützt sowohl einfache als auch komplexe Datenoperationen.
  • Standardisierung: Als internationaler Standard wird SQL von den meisten relationalen Datenbanksystemen unterstützt.
  • Flexibilität: Ermöglicht das Abrufen, Einfügen, Aktualisieren und Löschen von Daten sowie das Definieren von Datenbankstrukturen.

Beispiel: Ein IT-Auszubildender muss regelmäßig Berichte über Benutzeraktivitäten erstellen. Mit SQL kann er präzise Abfragen formulieren, um genau die benötigten Daten aus der Datenbank zu extrahieren.

Welche Hauptbefehlsgruppen gibt es in SQL?

SQL-Befehle lassen sich in vier Hauptkategorien unterteilen, die jeweils spezifische Aufgaben erfüllen:

  • Data Definition Language (DDL): Befehle zur Definition und Änderung der Datenbankstruktur.
  • Data Manipulation Language (DML): Befehle zur Bearbeitung und Verwaltung der in der Datenbank gespeicherten Daten.
  • Data Query Language (DQL): Befehle zur Abfrage und Anzeige von Daten.
  • Data Control Language (DCL): Befehle zur Steuerung der Zugriffsrechte und Sicherheit der Datenbank.

Was sind DDL-Befehle und wofür werden sie genutzt?

Data Definition Language (DDL): DDL-Befehle werden verwendet, um die Struktur der Datenbank zu definieren und zu ändern. Sie ermöglichen das Erstellen, Ändern und Löschen von Datenbankobjekten wie Tabellen und Indizes.

  • CREATE: Erstellen neuer Datenbankobjekte.

    Syntax:

    CREATE TABLE Tabellenname (
        Spaltenname Datentyp [Constraints],
        ...
    );

    Beispiel:

    CREATE TABLE Mitarbeiter (
        MitarbeiterID INT PRIMARY KEY,
        Name VARCHAR(100),
        Abteilung VARCHAR(50)
    );

    Dieser Befehl erstellt eine neue Tabelle mit drei Spalten. MitarbeiterID ist der Primärschlüssel, Name und Abteilung sind Textfelder mit definierter Länge.

  • ALTER: Ändern der Struktur bestehender Datenbankobjekte.

    Syntax:

    ALTER TABLE Tabellenname
    ADD COLUMN Spaltenname Datentyp;

    Beispiel:

    ALTER TABLE Mitarbeiter
    ADD COLUMN Geburtsdatum DATE;

    Mit diesem Befehl fügst du der bestehenden Tabelle Mitarbeiter eine neue Spalte Geburtsdatum vom Typ DATE hinzu.

  • DROP: Löschen von Datenbankobjekten.

    Syntax:

    DROP TABLE Tabellenname;

    Beispiel:

    DROP TABLE Mitarbeiter;

    Dieser Befehl löscht die Tabelle Mitarbeiter inklusive aller gespeicherten Daten unwiderruflich aus der Datenbank.

Was sind DQL-Befehle und wofür werden sie genutzt?

Data Query Language (DQL): DQL umfasst Befehle zur Abfrage und Anzeige von Daten aus der Datenbank. Der wichtigste DQL-Befehl ist SELECT, mit dem du gezielt Informationen aus einer oder mehreren Tabellen abfragen kannst.

  • SELECT: Abfragen von Daten aus einer oder mehreren Tabellen

    Syntax:

    SELECT Spalte1, Spalte2, ...
    FROM Tabellenname
    WHERE Bedingung;

    Beispiel:

    SELECT Name, Abteilung
    FROM Mitarbeiter
    WHERE Abteilung = 'IT';

    Mit diesem Befehl rufst du alle Datensätze aus der Tabelle Mitarbeiter ab, bei denen in der Spalte Abteilung der Wert ‘IT’ steht. Es werden nur die Spalten Name und Abteilung angezeigt.

⏳ Lädt Dataview-Inhalt...

Was sind DML-Befehle und wofür werden sie genutzt?

Data Manipulation Language (DML): DML-Befehle dienen zur Bearbeitung und Verwaltung der in der Datenbank gespeicherten Daten. Sie ermöglichen das Einfügen, Aktualisieren und Löschen von Datensätzen.

  • INSERT: Einfügen neuer Datensätze in eine Tabelle

    Syntax:

    INSERT INTO Tabellenname (Spalte1, Spalte2, ...)
    VALUES (Wert1, Wert2, ...);

    Beispiel:

    INSERT INTO Mitarbeiter (MitarbeiterID, Name, Abteilung)
    VALUES (1, 'Max Mustermann', 'IT');

    Dieser Befehl fügt einen neuen Datensatz in die Tabelle Mitarbeiter ein. Die Werte werden in der angegebenen Reihenfolge den Spalten zugewiesen.

  • UPDATE: Aktualisieren bestehender Datensätze

    Syntax:

    UPDATE Tabellenname
    SET Spalte1 = neuerWert1, Spalte2 = neuerWert2, ...
    WHERE Bedingung;

    Beispiel:

    UPDATE Mitarbeiter
    SET Abteilung = 'Vertrieb'
    WHERE MitarbeiterID = 1;

    Hier wird der Eintrag mit der MitarbeiterID 1 aktualisiert: Die Abteilung wird auf ‘Vertrieb’ gesetzt.

  • DELETE: Löschen von Datensätzen

    Syntax:

    DELETE FROM Tabellenname
    WHERE Bedingung;

    Beispiel:

    DELETE FROM Mitarbeiter
    WHERE MitarbeiterID = 1;

    Dieser Befehl löscht den Datensatz mit der MitarbeiterID 1 aus der Tabelle Mitarbeiter.

Was sind DCL-Befehle und wofür werden sie genutzt?

Data Control Language (DCL): DCL-Befehle regeln die Zugriffsrechte und Sicherheitsaspekte der Datenbank. Sie ermöglichen das Verwalten von Benutzerrechten und die Kontrolle des Datenzugriffs.

  • GRANT: Gewähren von Zugriffsrechten

    Syntax:

    GRANT Berechtigung(en) ON Objekt TO Benutzer;

    Beispiel:

    GRANT SELECT ON Mitarbeiter TO max;

    Dieser Befehl erlaubt dem Benutzer max, die Daten aus der Tabelle Mitarbeiter abzufragen.

  • REVOKE: Entziehen von Zugriffsrechten

    Syntax:

    REVOKE Berechtigung(en) ON Objekt FROM Benutzer;

    Beispiel:

    REVOKE SELECT ON Mitarbeiter FROM Benutzer1;

    Mit diesem Befehl wird dem Benutzer Benutzer1 das Zugriffsrecht SELECT auf die Tabelle Mitarbeiter entzogen.

Vorteile von SQL

Welche Vorteile bietet SQL?

SQL bietet zahlreiche Vorteile, die es zu einem unverzichtbaren Werkzeug in der Datenbankverwaltung machen:

  1. Einheitliche Abfragesprache: SQL ist der internationale Standard, was die Zusammenarbeit und den Austausch von Wissen erleichtert.

  2. Leistungsfähigkeit: Ermöglicht komplexe Abfragen und Datenmanipulationen mit wenigen Befehlen.

  3. Flexibilität: Relationale Datenbanken sind leicht erweiterbar. Neue Tabellen und Beziehungen können ohne große Änderungen hinzugefügt werden.

  4. Datenintegrität: Durch die Einhaltung von Integritätsbedingungen und die Unterstützung von Transaktionen sorgt SQL für konsistente und zuverlässige Daten.

  5. Breite Unterstützung: SQL wird von den meisten relationalen Datenbanksystemen unterstützt, wie Oracle, MySQL, PostgreSQL und Microsoft SQL Server.

⏳ Lädt Dataview-Inhalt...

Zusammenfassung

SQL (Structured Query Language) ist die zentrale Sprache zur Arbeit mit relationalen Datenbanken. Sie ermöglicht es, Daten zu definieren, zu bearbeiten, abzufragen und den Zugriff darauf zu steuern. Dank ihrer Standardisierung ist sie systemübergreifend einsetzbar und auch für Einsteiger gut erlernbar.

Ein wesentliches Merkmal von SQL ist die Einteilung in vier Hauptbefehlskategorien:

  • Data Definition Language (DDL) umfasst Befehle wie CREATE, ALTER und DROP, mit denen du Tabellen und andere Datenbankobjekte erstellen, verändern oder löschen kannst. Damit legst du die Struktur deiner Datenbank fest.

  • Data Manipulation Language (DML) beinhaltet Befehle wie INSERT, UPDATE und DELETE. Sie dienen der konkreten Arbeit mit Daten – also dem Einfügen neuer Einträge, dem Aktualisieren bestehender Werte oder dem gezielten Löschen von Datensätzen.

  • Data Query Language (DQL) besteht im Wesentlichen aus dem Befehl SELECT. Mit ihm kannst du gezielt Daten aus einer oder mehreren Tabellen abfragen, filtern und anzeigen lassen.

  • Data Control Language (DCL) regelt den Zugriff auf Datenbankobjekte. Mit Befehlen wie GRANT und REVOKE kannst du Nutzerberechtigungen vergeben oder entziehen und damit die Sicherheit und Kontrolle der Datenbank gewährleisten.

Die Syntax der SQL-Befehle ist klar strukturiert und ermöglicht sowohl einfache als auch komplexe Operationen. Zum Beispiel kann ein Auszubildender mit einem einfachen SELECT-Statement gezielt Informationen zu Benutzeraktivitäten abfragen und so Berichte erstellen – ohne aufwändige Programmierung.

SQL bietet mehrere Vorteile:

  • Sie ist durch ihre einfache Struktur leicht verständlich.
  • Sie ermöglicht leistungsfähige Datenabfragen mit wenigen Befehlen.
  • Sie ist flexibel und erlaubt das dynamische Anpassen von Daten und Strukturen.
  • Sie stellt durch definierte Regeln für Datenintegrität sicher, dass die Daten korrekt und konsistent bleiben.
  • Sie wird von nahezu allen verbreiteten relationalen Datenbanksystemen unterstützt, darunter MySQL, PostgreSQL, Oracle und SQL Server.

Insgesamt ist SQL ein unverzichtbares Werkzeug in der Datenbankverwaltung – leistungsstark, verständlich und vielseitig einsetzbar.

Datentypen und NULL-Werte

Datentypen - Die Bausteine deiner Tabellen

Wenn du eine Tabelle erstellst, musst du für jede Spalte einen Datentyp festlegen. Der Datentyp bestimmt, welche Art von Informationen in einer Spalte gespeichert werden darf.

INTEGER (oder kurz: INT)

  • Speichert ganze Zahlen ohne Nachkommastellen
  • Beispiele: 1, 42, -15, 1000
  • Verwendung: IDs, Anzahlen, Altersangaben

VARCHAR(n)

  • Speichert Text variabler Länge
  • Die Zahl in Klammern gibt die maximale Zeichenanzahl an
  • VARCHAR(50) kann bis zu 50 Zeichen speichern
  • Verwendung: Namen, E-Mail-Adressen, Beschreibungen

DATE

  • Speichert Datumsangaben im Format YYYY-MM-DD (Jahr-Monat-Tag)
  • Beispiele: 2024-03-15, 1990-12-31
  • Verwendung: Geburtsdaten, Bestelldaten, Fristen

Praktisches Beispiel:

CREATE TABLE Mitarbeiter (
    MitarbeiterID INT,
    Name VARCHAR(100),
    Geburtsdatum DATE
);

In diesem Beispiel:

  • MitarbeiterID ist eine ganze Zahl (z.B. 1, 2, 3)
  • Name kann bis zu 100 Zeichen lang sein (z.B. “Anna Müller”)
  • Geburtsdatum wird als Datum gespeichert (z.B. 1995-06-20)

NULL-Werte - Wenn Daten fehlen

Manchmal ist ein Wert unbekannt oder noch nicht vorhanden. Genau dafür gibt es NULL.

Was ist NULL?

  • NULL bedeutet “kein Wert” oder “unbekannter Wert
  • NULL ist nicht die Zahl 0
  • NULL ist nicht ein leerer Text ""
  • NULL bedeutet: “Hier gibt es aktuell keine Information”

Beispiel: Ein neuer Mitarbeiter wird angelegt, aber die Abteilung steht noch nicht fest:

INSERT INTO Mitarbeiter (MitarbeiterID, Name, Abteilung)
VALUES (5, 'Lisa Schmidt', NULL);

NOT NULL - Pflichtfelder festlegen

Mit dem NOT NULL Constraint legst du fest, dass eine Spalte immer einen Wert haben muss.

CREATE TABLE Mitarbeiter (
    MitarbeiterID INT NOT NULL,
    Name VARCHAR(100) NOT NULL,
    Abteilung VARCHAR(50)
);

In diesem Fall:

  • MitarbeiterID und Name müssen immer ausgefüllt werden
  • Abteilung darf NULL sein (optional)

Warum ist NOT NULL wichtig?

  • Verhindert unvollständige Daten
  • Stellt sicher, dass wichtige Informationen nicht fehlen
  • Erhöht die Datenqualität