|
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.