Schemaanweisungen

Ein Teilbereich von SQL ist die Data Definition Language (DDL). Die DDL stellt Befehle bereit, um eine Datenbank strukturell zu definieren, also das Schema einer Datenbank zu erstellen und zu verändern oder die Datenbank zu löschen.

Übersicht und Beispiele zu den Schemaanweisungen

Ähnlich zu der betrachteten Übungsaufgabe im Kapitel Normalisierung sollen auch die folgenden Beispiele an das Thema Schülerverwaltung angelehnt sein.

Bevor an die Verwaltung der Schülerdaten mittels Tabellen gedacht werden kann, muss zunächst die Datenbank selbst erstellt werden. Sowohl die Erstellung der Datenbank als auch die Erstellung der Tabellen geschieht mittels CREATE.

  • Eine Datenbank mit der Bezeichnung SchuelerVerwaltung erstellen:
    
    CREATE DATABASE SchuelerVerwaltung;
    
    
  • Eine Tabelle Schueler soll erstellt werden. Jeder Schüler bekommt dabei die Attribute S_Nr (Primärschlüssel), Nachname, Vorname und Klassenstufe. Für eine ID (in dem Fall S_Nr) typisch wird dafür ein Zahlenwert vergeben. Auch die Klassenstufe wird als Zahlenwert gespeichert und Nachname und Vorname werden als Zeichenketten abgelegt.
    
    CREATE TABLE Schueler (
        S_Nr INT,
        Nachname VARCHAR(20),
        Vorname VARCHAR(20),
        Klassenstufe INT
    );
    
    

Um an der erstellten Tabelle Schueler Änderungen vornehmen zu können (z. B. eine Spalte Geburtsdatum hinzufügen) wird der Befehl ALTER verwendet.

  • Der Tabelle Schueler soll eine Spalte Geburtsdatum vom Typ Datum hinzugefügt werden:
    
    ALTER TABLE Schueler
    ADD Geburtsdatum DATE;
    
    
  • Im Nachhinein stellt man vielleicht fest, dass auf bestimmte Daten verzichtet werden kann und entfernt die Spalte Geburtsdatum wieder:
    
    ALTER TABLE Schueler
    DROP COLUMN Geburtsdatum;
    
    
  • Die Spalte Klassenstufe soll in die Spalte Klasse umbenannt werden:
    
    ALTER TABLE Schueler
    RENAME 'Klassenstufe' TO 'Klasse';
    
    
  • Mit ALTER COLUMN und TYPE kann der Datentyp einer Spalte verändert werden:
    
    ALTER TABLE Schueler
    ALTER COLUMN 'Klassenstufe' TYPE VARCHAR(2);
    
    

Statt einer einzelnen Spalte lässt sich der Befehl DROP auch auf eine Tabelle anwenden.

  • Die Tabelle Schueler soll gelöscht werden:
    
    DROP TABLE Schueler;
    
    

Übung

Aufgabe Icon Füge der Tabelle Person der Datenbank, die im DBFiddle definiert ist, eine weitere Spalte Geburtsdatum hinzu. Welche Werte werden für die existierenden Tupel der Tabelle als Geburtsdatum hinterlegt?