SQL CREATE TABLE wird genutzt, um eine neue Tabelle zu erstellen. Diese muss innerhalb einer Datenbank ein­zig­ar­tig sein. Beim Anlegen werden bereits wichtige Parameter fest­ge­legt und es ist möglich, eine bereits exis­tie­ren­de Tabelle als Basis zu nutzen.

Was ist SQL CREATE TABLE?

Nachdem Sie mit der Struc­tu­red Query Language eine SQL-Datenbank erstellt haben, können Sie eine neue Tabelle er­schaf­fen. Diese wird genutzt, um Ihre Da­ten­sät­ze zu speichern und gibt die Struktur vor, in der diese Daten auf­be­rei­tet werden sollen. Tabellen bestehen zum einen aus Feldern oder Spalten, die bestimmte Da­ten­ty­pen enthalten dürfen, und zum anderen aus Zeilen, in denen diese Daten gelistet werden. Um eine neue Tabelle anzulegen, nutzen Sie die Anweisung SQL CREATE TABLE. Mit dieser hin­ter­le­gen Sie nicht nur die neue Tabelle, sondern bestimmen auch bereits, wie sie struk­tu­riert werden soll. Im Anschluss füllen Sie sie mit den ent­spre­chen­den Daten.

vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Syntax und Funk­ti­ons­wei­se

Bereits mit einem Blick auf die Syntax von SQL CREATE TABLE können Sie fest­stel­len, dass Da­ten­ty­pen und Be­zeich­nun­gen von Beginn an ob­li­ga­to­risch für die korrekte Er­stel­lung einer neuen Tabelle sind. Die Syntax sieht grund­sätz­lich aus wie folgt:

CREATE TABLE name_der_tabelle (
spalte1 datentyp,
spalte2 datentyp,
spalte3 datentyp,
…
);
sql

Mit dem SQL-Befehl CREATE TABLE erstellen Sie eine neue Tabelle, deren Namen Sie bereits ebenfalls in der ersten Zeile anlegen. Innerhalb der Klammern wird diese Tabelle dann spe­zi­fi­ziert. So wählen Sie jeweils eine Be­zeich­nung für spalte1, spalte2 usw. und geben dazu an, welche Da­ten­ty­pen in dieser Spalte hin­ter­legt werden können. Häufig genutzte Da­ten­ty­pen sind zum Beispiel VARCHAR (ein String, der Buch­sta­ben, Zahlen oder Son­der­zei­chen enthalten kann), BOOLEAN (für die boole­schen Werte true oder false), INT (für Zah­len­wer­te) oder DATE (für Da­tums­an­ga­ben).

Beispiel für eine neue Tabelle

Um die Funk­ti­ons­wei­se von SQL CREATE TABLE zu ver­an­schau­li­chen, zeigen wir Ihnen an dieser Stelle anhand eines einfachen Beispiels, wie eine solche Tabelle aussehen kann. Dafür legen wir ein Mit­ar­bei­ter­ver­zeich­nis an, das eine Mit­ar­bei­ter-ID, den Nachnamen, den Vornamen, die Adresse, die Stadt und das Alter enthält. Wir benötigen also insgesamt sechs Spalten, die un­ter­schied­li­che Da­ten­ty­pen speichern können. So sieht der passende Code aus:

CREATE TABLE Mitarbeiter (
ID INT NOT NULL,
Nachname VARCHAR(50),
Vorname VARCHAR(50),
Adresse VARCHAR(50),
Stadt VARCHAR(50),
Alter INT NOT NULL
);
sql

Für ID und Alter wählen wir den Datentyp INT, der Zahlen enthält. Der Zusatz NOT NULL legt fest, dass diese Felder nicht frei­blei­ben dürfen. Die rest­li­chen Spalten Nachname, Vorname, Adresse und Stadt dürfen Buch­sta­ben, Zahlen und Son­der­zei­chen enthalten.

Kom­bi­na­ti­on mit dem Befehl IF NOT EXISTS

Jede Tabelle muss innerhalb einer Datenbank ein­zig­ar­tig sein, damit das System auch darauf zugreifen kann. Wenn Sie also versuchen, eine neue Tabelle mit SQL CREATE TABLE anzulegen und dabei einen Namen wählen, der bereits vergeben ist, erhalten Sie eine Feh­ler­mel­dung wie Error: table already exists. Um dies zu vermeiden, können Sie den op­tio­na­len Befehl IF NOT EXISTS hin­zu­fü­gen. Dieser überprüft zunächst, ob es bereits eine Tabelle mit demselben Namen gibt. Nur wenn dies nicht der Fall ist, erstellt er eine neue Tabelle mit den hin­ter­leg­ten Pa­ra­me­tern. Für unser Beispiel von oben sieht er fol­gen­der­ma­ßen aus:

CREATE TABLE IF NOT EXISTS Mitarbeiter (
ID INT NOT NULL,
Nachname VARCHAR(50),
Vorname VARCHAR(50),
Adresse VARCHAR(50),
Stadt VARCHAR(50),
Alter INT NOT NULL
);
sql

Eine neue Tabelle auf Basis einer vor­han­de­nen Tabelle erstellen

Auch wenn die Anweisung recht einfach funk­tio­niert, kann es mühselig sein, falls Sie mehrere ähnliche Tabellen erstellen müssen. SQL CREATE DATABASE gibt Ihnen daher auch die Mög­lich­keit, für die Er­stel­lung einer neuen Tabelle auf eine bereits exis­tie­ren­de zu­rück­zu­grei­fen. Dabei haben Sie die Wahl, ob Sie eine exakte Kopie erstellen oder nur bestimmte Parameter be­rück­sich­ti­gen möchten. Wir zeigen Ihnen beide Ver­fah­rens­wei­sen. Im ersten Fall erstellen wir eine Mit­ar­bei­ter­lis­te für eine andere Nie­der­las­sung. Diese soll also identisch aufgebaut werden, benötigt aber einen neuen Namen. Dies ist der Code:

CREATE TABLE Neue_Mitarbeiterliste
AS
SELECT *
FROM Mitarbeiter;
sql

Durch das Sternchen zeigen wir dem System an, dass es alle Spalten über­neh­men soll.

Im nächsten Beispiel erstellen wir eine Kun­den­lis­te. Diese soll zwar ebenfalls die Spalten für ID, Nachname, Vorname, Adresse und Stadt enthalten; das Ge­burts­da­tum soll hingegen nicht angelegt werden. Daher legen wir genau fest, welche Spalten kopiert werden sollen:

CREATE TABLE Kundenliste
AS
SELECT ID, Nachname, Vorname, Adresse, Stadt
FROM Mitarbeiter;
sql

Ähnliche Befehle wie SQL CREATE TABLE

Neben dem bereits an­ge­spro­che­nen CREATE DATABASE gibt es weitere An­wei­sun­gen, die wichtig für die Arbeit mit SQL CREATE TABLE sind. Dazu gehören ins­be­son­de­re SQL DELETE, mit der Sie Einträge aus einer Tabelle löschen, und die SQL Aliases, mit denen Sie Tabellen oder Spalten zeitweise um­be­nen­nen.

Tipp

Ihr ganz per­sön­li­cher Server: Mit SQL-Server-Hosting von IONOS wählen Sie nicht nur zwischen MSSQL, MySQL und MariaDB, sondern pro­fi­tie­ren auch von zahl­rei­chen nütz­li­chen Features. Finden Sie die passende Lösung für Ihre Ansprüche!

Zum Hauptmenü