====== Tabellen erstellen ====== ===== Syntax ===== CREATE Table Tabellenname ( --Folgende Constraintart nennt man "Spaltenconstraints" Spaltenname1 Spaltentyp [[Constraintname1] Constrainttyp [ON DELETE | ON UPDATE], Spaltenname2 Spaltentyp [Constraintname2] Constrainttyp [ON DELETE | ON UPDATE], ...] --Diese Constraints nennt man Tabellenconstraints [CONSTRAINT Constraintname Constrainttyp (Spaltenname) [ON DELETE | ON UPDATE] ); --Strichpunkt zum Schluss ist wichtig, --da oft mehrere Tabellen hintereinander gleichzeitig erzeugt werden Beim Anlegen einer Tabelle können optional Constraints (Bedingungen) angegeben werden. Diese werden beim Erzeugen/Ändern/Löschen von Tabelleneinträgen überprüft. Bei Verletzungen der Constraintbedingung wird die Operation nicht durchgeführt. ===== Spaltentypen/Datentypen ===== {{:dbs:sql:datentypen.png?direct&|}} ===== Constrainttypen ===== {{:dbs:sql:constraint.png?direct&|}} ===== Beispiele ===== In den folgenden Beispielen erzeugen wir unsere Mitgliedertabelle. {{:dbs:sql:mitarbeitertabelle_violett.png?direct&|}} ==== Beispiel Spaltenconstraints ==== CREATE TABLE Mitarbeiter ( Mitarbeiternummer INTEGER PRIMARY KEY, Name VARCHAR2(30) NOT NULL, Vorgesetzter INTEGER NOT NULL, Gehalt NUMBER(10,2) NOT NULL, --NUMBER weil wir ja 2 Nachkommastellen beim Gehalt haben können Abteilungsnummer INTEGER REFERENCES Abteilung(Abteilungsnummer) ); ==== Beispiel Tabellenconstraints ==== CREATE TABLE Mitarbeiter ( Mitarbeiternummer INTEGER, Name VARCHAR2(30) NOT NULL, Vorgesetzter INTEGER NOT NULL, Gehalt NUMBER(10,2), --NUMBER weil wir ja 2 Nachkommastellen beim Gehalt haben können Abteilungsnummer INTEGER, CONSTRAINT pk_mitarbeiter_mitarbeiternummer PRIMARY KEY (Mitarbeiternummer), CONSTRAINT fk_mitarbeiter_abteilungsnummer FOREIGN KEY Abteilungsnummer REFERENCES Abteilung(Abteilungsnummer) );