Inhaltsverzeichnis
Tabellen erstellen
Beispielaufgabe 1
Eine Bibliothek möchte eine Datenbank zur Speicherung ihrer Bücher verwenden. Sie benötigt dazu eine Tabelle Buch mit Spalten zum Speichern von
- Titel,
- Autor,
- Erscheinungsjahr,
- Verlag,
- Anschaffungsdatum und
- der Information darüber, ob es sich um ein Kinderbuch handelt.
a) Erstelle das Tabellenschema. Füge zu den obigen Spalten noch eine Primärschlüsselspalte id vom Datentyp int hinzu.
b) Gib eine CREATE TABLE-Anweisung zur Erstellung der Tabelle in der Sprache SQL an.
Primärschlüssel
In einer relationalen Datenbank benötigt jede Tabelle einen Primärschlüssel. Dies ist eine Spalte1), in der lauter verschiedene Werte stehen, d.h. die Datenbank stellt sicher, dass es keine zwei Datensätze in der Tabelle gibt, die denselben Wert in dieser Spalte haben.
In der Regel verwendet man als Primärschlüssel eine Spalte id vom Datentyp int. Im Tabellenschema kennzeichnen wir die Primärschlüsselspalte, indem wir sie unterstreichen.
Wozu wird der Primärschlüssel benötigt?
In Jahrgangsstufe 10 werden wir Daten auf mehrere Tabellen verteilen, die miteinander in Beziehung stehen. Ein Datensatz einer Tabelle kann dann auf einen Datensatz einer anderen Tabelle verweisen. Stell' dir folgende zwei Tabellen in der Datenbank einer Schule vor:
Klasse(id: int; name: varchar(5))
Schüler(id: int; rufname: varchar(30); familienname: varchar(30); klasse_id int)
Die Spalte klasse_id nennt man Fremdschlüssel. Ist dir klar, wozu sie dient und welche Werte darin gespeichert werden? Das funktioniert natürlich nur dann, wenn die Werte in der Primärschlüsselspalte id der Tabelle Klasse eindeutig sind. Freu' dich auf Jahrgangsstufe 10, da werden wir Fremdschlüssel ganz langsam und ausführlich kennenlernen!
Lösung
Tabellenschema:
Buch(id: int; Titel: varchar(200); Autor: varchar(200); Erscheinungsjahr: int; Verlag: varchar(150), anschaffungsdatum: date; ist_kinderbuch: boolean)
SQL
CREATE TABLE Buch ( id INT PRIMARY KEY, Titel VARCHAR(200), Autor VARCHAR(200), Erscheinungsjahr INT, Verlag VARCHAR(150), anschaffungsdatum DATE, ist_kinderbuch BOOLEAN );
Aufgabe 2
In der Tabelle Staat sollen die Daten aller Staaten der Erde gespeichert werden. Sie soll Spalten für
- Name
- Bevölkerungsanzahl
- Fläche (in $km^2$) und
- das Gründungsdatum
besitzen. Zudem wird eine Primärschlüsselspalte benötigt.
a) Erstelle das Tabellenschema.
b) Gib eine CREATE TABLE-Anweisung zur Erstellung der Tabelle in der Sprache SQL an.
Aufgabe 3
Die Firma "Fahrradhandel fit & schnell" möchte alle Waren in einer Datenbanktabelle speichern. Die Tabelle soll Spalten für
- Die Bezeichnung der Ware,
- ihren Preis je Stück und
- den Lagerbestand
enthalten, sowie eine Primärschlüsselspalte.
a) Erstelle das Tabellenschema.
b) Gib eine CREATE TABLE-Anweisung zur Erstellung der Tabelle in der Sprache SQL an.