| Home - SQL Befehle - Datenmanipulation - Objekt erzeugen | www.sqldocu.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| zurück | vor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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).
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
Syntax vollständig
Syntax SpaltenNamenAusdruck
Syntax ConstraintsBedingung
Syntax ReferenzBedingung
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) )
CREATE TABLE meineTabelle ( PersonalNummer INTEGER, Vorname VARCHAR(255) )
Es wird eine Tabelle mit dem Namen meineTabelle erzeugt die aus 2 Spalten besteht.
PHP Syntax
PERL Syntax
Die erste Spalte hat den Namen PersonalNummer und besitzt den Datentyp INTEGER . Die zweite Spalte hat den Namen Vorname und besitzt den Datentyp VARCHAR.
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
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
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
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
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
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.
PHP Syntax
PERL Syntax
Hinweis: Check wird von einigen RDBMS nicht unterstützt.
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
CREATE TABLE meineTabelle ( PersonalNummer INTEGER REFERENCES meineElternTabelle (spalte1) ON DELETE CASCADE )
REFERENCES wird benutzt um Datenintegrietät zu erhöhen.
PHP Syntax
PERL Syntax
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||