|
|
Mit CREATE TABLE kann in einer Datenbank eine neue Tabelle erstellt werden.
Der Befehl hat folgende Grundstruktur:CREATE TABLE <Tabellenname> (<Attributdefinitionen und Beschränkungen>);
Der Tabellenname muss innerhalb der aktuellen Datendank oder des aktuellen Schemas
eindeutig sein.
Attribute werden mit einem Namen und einem Datentyp definiert, wobei der Namen
innerhalb der Tabelle eindeutig sein muss.
Diese Angaben sind für alle Attribute zwingend notwendig.
Die Reihenfolge der Attribute bei der Definition entspricht der Reihenfolge der
Spalten in der erstellten Tabelle.
Wird eine bestimmte Ordnung angestrebt ist diese bereits bei der Erstellung der
Tabelle zu definieren. Danach bleibt sie,
sofern keine Änderungen an der Struktur der Tabelle vorgenommen werden (siehe
Tabellenstruktur ändern) bestehen.
Es gibt zwei Arten von Beschränkungen: Tabellenbeschränkungen und Attributbeschränkungen.
Der Unterschied liegt darin,
dass Attributbeschränkungen sich auf nur ein Attribut beziehen und Tabellenbeschränkungen
sich auf meherere Attribute beziehen können, dies aber nicht müssen.
Mit diesen Beschränkungen kann der Wertebereich der Attribute eingeschränkt werden
oder es wird verhindert,
dass Werte eingegeben werden, die nicht erlaubt sind. Ein Datensatz kann nicht
erfasst werden, wenn er eine Beschränkung verletzt.
Es gibt vier Arten von Beschränkungen, welche in der Folge kurz beschrieben werden:
UNIQUE - das Attribut oder die Attributkombination muss innerhalb der Tabelle eindeutig
sein
PRIMARY KEY - das Attribut oder die Attributkombination ist Primärschlüssel der Tabelle
FOREIGN KEY - das Attribut ist ein Fremdschlüssel
CHECK - Bedingung die für ein Attribut oder eine Attributkombination erfüllt sein muss
Die Beschränkugen können benannt werden. Dies ist jedoch nicht notwendig.
In diesem Beispiel wird einer Datenbank eine Tabelle hinzugefügt, weche mit einer
bereits bestehenden Tabelle verknüpft ist.
Im SQL Befehl kommt der Unterschied zwischen Attribut- und Tabellenbeschränkung
zum Ausdruck. projekt_ID und leiter_ID haben eine Attributbeschränkung
(Beschränkung wird direkt hinter die Attributdefiniton geschrieben). projekt_ID
hat die Beschränkung PRIMARY KEY, ist also Primärschlüssel dieser Tabelle,
d.h. das Attribut muss eindeutig und nicht NULL sein. leiter_ID hat die Beschränkung
NOT NULL (Spezialfall einer CHECK Beschränkung),
muss also immer einen Wert enthalten.
Der Verknüpfung mit der bestehenden Tabelle ist als Tabellenbeschränkung definiert
(FOREIGN KEY) und hat einen Namen (projektleiter).
Diese Beschränkung könnte jedoch auch als Attributbeschränkung definiert werden,
da sie nur ein Attribut beinhaltet.
Das Beispiel zeigt, dass grundsätzlich kein Unterschied zwischen Attribut- und
Tabellenbeschränkungen besteht, sofern nur ein Attribut betroffen ist.
Es handelt sich dabei um zwei verschiedene Möglichkeiten Beschränkungen zu erfassen.