Home - SQL Befehle - Datenmanipulation - Objekt erzeugen www.sqldocu.com
zurück vor



TABELLEN erstellen


Beschreibung
top
Tabellen sind immer Bestandteil einer Datenbank (DB) (siehe Datenbank Aufbau). Um eine Tabelle erzeugen zu können muss zuvor eine DB vorhanden sein (siehe Syntax mit Beispiel und Datenbank erstellen). In Tabellen werden Informationen eines RDBMS gespeichert. Sie bestehen aus Spalten. Jede Spalte besitzt einen Datentyp. Nicht jeder Benutzer eines RDBMS hat das Recht Tabellen in einer DB anzulegen (siehe Datenbank Administration).



Syntax
top
Tabellen können mit einer Vielzahl von Optionen erzeugt werden. Diese Vielzahl macht den eigentlich einfachen Syntax unübersichtlich. Sobald du dir ein einige Abfrage Beispiele mit CREATE TABLE angesehen hast, ist dir sicher alles klar.

Syntax vereinfacht einfacher Syntax um Tabelle zu erzeugen
Syntax vollständig weitgehend vollständiger Syntax
Syntax SpaltenNamenAusdruck siehe Syntax vollständig
Syntax ConstraintsBedingung siehe Syntax vollständig

Syntax vereinfacht
Syntax vollständig
Syntax SpaltenNamenAusdruck
Syntax ConstraintsBedingung
Syntax ReferenzBedingung
REFERENCES
TabellenName
( SpaltenName [,..] )   optional  
ON DELETE Aktion|UPDATE Aktion   optional  
| ... trennt Syntaxmöglichkeiten (entweder oder)
[] ... Syntax innerhalb dieser Klammern ist optional
optional ... Syntax in dieser Zeile ist optional
Hinweis:
Alle oben angeführten Optionen entsprechen dem ANSI Standard. Im Moment wird der beschriebene Syntax nicht vollständig von RDBMS unterstützt. Dies wird sich in Zukunft sicher ändern. Wir gehen auf diejenigen Optionen ein, die von nahezu allen RDBMS interpretiert werden.

Beispiele:
CREATE TABLE meineTabelle1 (Spalte1 VARCHAR(255), Spalte2 INTEGER)
CREATE TABLE root.meineTabelle1 (Spalte1 INTEGER)
CREATE TABLE meineTabelle1 (
  Spalte1 INTEGER NOT NULL,
  Spalte2 DECIMAL(7,2),
  CONSTRAINT meinConstraint1 PRIMARY KEY (Spalte2,Spalte4),
  CONSTRAINT meinConstraint2 FOREIGN KEY REFERENCES meineTabelle2(Spalte3)
  )


Einfache Tabellen erstellen
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER,
Vorname VARCHAR(255)
)

Es wird eine Tabelle mit dem Namen meineTabelle erzeugt die aus 2 Spalten besteht.
Die erste Spalte hat den Namen PersonalNummer und besitzt den Datentyp INTEGER .
Die zweite Spalte hat den Namen Vorname und besitzt den Datentyp VARCHAR.

PHP Syntax     PERL Syntax


Spaltenfelder mit DEFAULT Werten füllen
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER,
Vorname VARCHAR(255) DEFAULT 'Unbekannt'
)

Die Option DEFAULT kommt kommt nur dann zum tragen, wenn beim Einfügen die entsprechende Spalte keinen Wert besitzt. Nehmen wir an es wird versucht in die Tabelle meineTabelle eine Reihe eingefügen ohne den Vornamen anzugeben. Durch die Klausel DEFAULT wird in die Spalte Vorname automatisch ’Unbekannt’ eingefügt.

PHP Syntax     PERL Syntax


Spaltenfeld darf leer sein
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER,
Vorname VARCHAR(255) NULL
)

Die Option NULL legt fest, dass die entsprechende Spalte leer sein darf. Diese ist die Standardeinstellung in RDBMS. Wird die Option weggelassen so setzt das RDBMS die entsprechende Spalte automatisch auf NULL. Wer faul ist und sich sicher ist, dass NULL die Standarteintellung ist kann diese Option weglassen.

PHP Syntax     PERL Syntax


Spaltenfeld darf nicht leer sein
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER,
Vorname VARCHAR(255) NOT NULL
)

Die Option NOT NULL legt fest, dass die entsprechende Spalte nicht leer sein darf. Wird versucht eine Reihe einzufügen und einer Spalte mit der Option NOT NULL wird kein Wert zugewiesen, so reagiert das RDBMS mit einer Fehlermeldung.

PHP Syntax     PERL Syntax


Spaltenfeld muss eindeutig sein
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER UNIQUE,
Vorname VARCHAR(255)
)

Die Option UNIQUE legt fest dass jedes Feld innerhalb der betroffenen Spalte eindeutig zu sein hat. Wird versucht in die Tabelle meineTabelle einen Reihe einzufügen, deren PersonalNummer bereits vorkommt, so erzeugt das RDBMS eine Fehlermeldung.

PHP Syntax     PERL Syntax


Spaltenfeld muss eindeutig sein und darf nicht leer sein
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER PRIMARY KEY,
Vorname VARCHAR(255)
)

Die Option PRIMARY KEY legt fest dass jedes Feld innerhalb der betroffenen Spalte eindeutig zu sein hat (siehe UNIQUE). Zusätzlich darf kein Feld der Spalte leer sein.

PHP Syntax     PERL Syntax


Wertebereich einer Spalte einschränken (CHECK)
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER CHECK (PersonalNummer>0),
Vorname VARCHAR(255)
)

Mit CHECK kann der Wertebereich einer Spalte eingeschränkt werden. Bedingungen können beliebig mit AND,OR,.. erweitert werden.

Hinweis: Check wird von einigen RDBMS nicht unterstützt.
PHP Syntax     PERL Syntax


Tabelle unter anderem Benutzer erstellen
top
CREATE TABLE user4.meineTabelle (
PersonalNummer INTEGER
)

Die Tabelle wird unter dem Benutzernamen user4 angelegt. Somit gehört die Tabelle mit den entsprechenden Rechten (siehe Datenbank Administration) dem Benutzer user4.

PHP Syntax     PERL Syntax

Tabelle erstellen und Elterntabelle festlegen (REFERENCES)
top
CREATE TABLE meineTabelle (
PersonalNummer INTEGER REFERENCES meineElternTabelle (spalte1)
ON DELETE CASCADE
)

REFERENCES wird benutzt um Datenintegrietät zu erhöhen.

PHP Syntax     PERL Syntax


top