Informatik

Tabellen anlegen

Dieses Kapitel gehört zum Leistungskurs.

CREATE TABLE

Führe die Anweisung aus. Sieh dir danach den Datenbankbaum links an.

a) Was hat sich dort verändert?

b) Führe die Anweisung ein zweites Mal aus. Was passiert?

c) Drücke Datenbank Reset. Ist die Tabelle noch da?

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Datentypen wählen

Datentyp wofür Beispiel
INTEGER ganze Zahlen, auch für Schlüssel und Wahrheitswerte kapazitaet INTEGER
REAL Kommazahlen gewicht REAL
DECIMAL(p,s) Kommazahlen mit fester Stellenzahl – für Geldbeträge preis DECIMAL(6,2)
TEXT Text beliebiger Länge beschreibung TEXT
VARCHAR(n) Text bis n Zeichen name VARCHAR(80)
CHAR(n) Text mit genau n Zeichen laendercode CHAR(2)
DATE Datum gruendungstag DATE
DATETIME Datum mit Uhrzeit gekauft_am DATETIME
BOOLEAN Wahrheitswert ueberdacht BOOLEAN

SQLite nimmt es mit Datentypen ungewöhnlich locker: Es speichert in einer INTEGER-Spalte klaglos einen Text. Andere Systeme weisen das zurück.

Verlass dich also nicht darauf, dass die Datenbank dich vor falschen Werten schützt – aber schreibe trotzdem den richtigen Typ hin. Er dokumentiert deine Absicht, er wird auf anderen Systemen durchgesetzt, und er entscheidet darüber, wie sortiert wird: '10' steht als Text vor '9', als Zahl dahinter.

Welchen Datentyp würdest du wählen? Begründe kurz.

a) eine Postleitzahl

b) ein Geldbetrag in Euro

c) eine Telefonnummer

d) die Angabe, ob ein Kurs ausgebucht ist

e) eine ISBN

f) die Zahl der Teilnehmenden

Tipp

Die Prüffrage lautet nicht „sind das Ziffern?", sondern: Rechnet man damit? Was man nicht addiert und nicht sortiert wie eine Zahl, ist Text.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Ein vollständiges Schema umsetzen

Der Fahrradverleih aus Kapitel 5:

station(station_id, name, adresse, stellplaetze)
fahrrad(rahmennummer, typ, anschaffungsjahr, station_id→station)
kundin(kundin_id, name, geburtsdatum, email)
ausleihe(ausleih_id, rahmennummer→fahrrad, kundin_id→kundin, start, ende, preis)

Die Reihenfolge ist wichtig: Eine Tabelle kann nur auf eine Tabelle verweisen, die es schon gibt. Also erst station, dann fahrrad.

Die IDE prüft deinen Text gegen die Tabellen, die es im Moment gibt. Solange station noch nicht angelegt ist, markiert sie die FOREIGN KEY-Zeile in fahrrad als Fehler.

Führe die Anweisungen der Reihe nach aus – nach dem ersten CREATE TABLE verschwindet die Meldung von selbst.

a) Führe beide Anweisungen nacheinander aus.

b) Ergänze die beiden fehlenden Tabellen kundin und ausleihe. Wähle für jedes Attribut einen passenden Datentyp.

c) Warum muss ausleihe als Letztes angelegt werden?

Tipp 1: Gerüst für kundin
CREATE TABLE kundin (
    kundin_id    INTEGER PRIMARY KEY,
    name         VARCHAR(80) NOT NULL,
    geburtsdatum DATE,
    email        VARCHAR(120)
);
Tipp 2: Zwei Fremdschlüssel in einer Tabelle

Es dürfen mehrere FOREIGN KEY-Zeilen untereinander stehen. Jede bekommt ihre eigene Zeile am Ende der Tabellendefinition.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Von der Kardinalität zur Tabellendefinition

Die Angaben aus dem ER-Diagramm landen an ganz bestimmten Stellen:

im Modell in CREATE TABLE
Entitätstyp eine CREATE TABLE-Anweisung
Schlüsselattribut PRIMARY KEY
1:n-Beziehung FOREIGN KEY auf der n-Seite
n:m-Beziehung eigene Tabelle mit zusammengesetztem PRIMARY KEY
Minimalangabe 1 NOT NULL auf dem Fremdschlüssel
Minimalangabe 0 kein NOT NULL
Attribut mit eindeutigen Werten UNIQUE (spalte)

Selbsttest

Tabellen anlegen

Teilbare URL erstellen

Abschnitte auswählen