Zurück zur Hauptseite
Impressum
< Date Inhalt Einfügen >

Tabellen anlegen

Tabellen legt man mit create table Tabellenname( Spalte1 Typ, Spalte2 Typ, ... , Constraints ); an.
Als Typ kann verwendet werden: Bsp.: Eine Tabelle mit 3 Spalten: id als ganze Zahl und vorname, nachname als Text mit maximal 255 Buchstaben.
create table Person( id int, vorname varchar(255), name varchar(255) );

Primärschlüssel

Um Spalten als Primär- bzw. Fremdschlüssel anzugeben verwendet man sogenannte Constraints (Festlegungen/Vereinbarungen).
Mit primary key(spalten) gibt man den Primärschlüssel an. Diese Spalten müssen dann eindeutige (unterschiedliche) Daten beinhalten.

Bsp. 1: Die Spalte id wird als Primärschlüssel festgelegt.
create table Person( id int, vorname varchar(255), name varchar(255),
  primary key(id)
);
Bsp. 2: Die beiden Spalte pid und tid bilden zusammen den Primärschlüssel.
create table Person( pid int, tid int, primary key(pid, tid) );

Fremdschlüssel

Fremdschlüssel-Constraints haben die Form: foreign key(Spalten) references AndereTabelle(Spalten)
Hinter foreign key werden die Spalten in der aktuellen Tabelle aufgelistet.
Hinter references wird die Tabelle angegeben auf die verwiesen wird und in Klammern die Spalten dieser Tabelle.
Die Anzahl der Spalten im Fremdschlüssel und der referenzierten Tabelle müssen übereinstimmen.

Bsp. 1: Bei einer 1:n-Beziehung zwischen Klasse und Schüler sieht die Tabellenerzeugung so aus:
create table Klasse( id int, name varchar(255),
  primary key(id)
);
create table Schüler( id int, vorname varchar(255), ..., kid int,
  primary key(id),
  foreign key(kid) references Klasse(id)
)

Bsp. 2: Die beiden Spalte pid und tid bilden zusammen den Primärschlüssel.
create table Person( pid int, tid int,
  primary key(pid, tid),
  foreign key(pid) references Person(id),
  foreign key(tid) references Telefon(id)
);

Diese Tabelle ist eine typische Zwischentabelle wie sie bei einer n:m-Relation verwendet wird.
Der Primärschlüssel besteht aus den zwei Spalten, wobei jede Spalte als Fremdschlüssel auf eine andere Tabelle verweißt.
Hier verweißt die Spalte pid auf die Spalte id der Tabelle Person und
die Spalte tid auf die Spalte id der Tabelle Telefon.

Weitere Constraints

Manche Constraints kann man direkt bei der Spaltendefinition angeben. Ein häufig verwendetes Constraint ist not null, welches festlegt, dass die Spalte einen Wert haben muss, also nicht null sein darf.
Bsp.: Der Name und Vorname dürfen hier nicht leer gelassen werden.
create table Person( id int,
  name varchar(255) not null,
  vorname varchar(255) not null,
  geb date
);
Das Constraint unique legt fest, dass jeder Wert in dieser Spalte nur einmal vorkommen darf. Dies gilt über alle Datensätze der Tabelle hinweg.
Primärschlüssel sind automatisch not null und unique. Bsp.: Bücher haben eine unterschiedliche ISBN. Daher ist sie nicht null und eindeutig.
create table Buch( id int,
  isbn varchar(13) not null unique,
  titel varchar(255) not null,
  primary key(id)
);
Mit default=Wert kann ein Standartwert für die Spalte festgelegt werden. Wird ein Datensatz eingefügt ohne einen Wert für diese Spalte anzugeben, so erhält sie diesen Default-Wert. Bsp.: Wenn kein Land angegeben wird ist es Deutschland.
create table Person( id int,
  name varchar(255) not null,
  land varchar(255) default='Deutschland', ...,
  primary key(id)
);