CREATE TABLE wird in MariaDB für die Er­stel­lung neuer Tabellen genutzt. Da diese innerhalb der Datenbank ein­zig­ar­tig sein müssen, gibt es die Optionen OR REPLACE und IF NOT EXISTS, mit denen Dopp­lun­gen und Feh­ler­mel­dun­gen ver­hin­dert werden.

Was ist CREATE TABLE für MariaDB?

Die Anweisung CREATE TABLE wird in MariaDB verwendet, um eine neue Tabelle zu erstellen, die du im Anschluss mit Daten füllen kannst. Da MariaDB ein re­la­tio­na­les Da­ten­bank­ma­nage­ment­sys­tem (DBMS) ist, dienen diese Tabellen als Basis für sämtliche Spei­cher­vor­gän­ge. Bereits während der Er­stel­lung werden die einzelnen Spalten definiert. Dabei legst du fest, für welche Da­ten­ty­pen diese vor­ge­se­hen sind. Innerhalb einer neu an­ge­leg­ten Datenbank – MariaDB CREATE DATABASE – müssen Ta­bel­len­na­men ein­zig­ar­tig sein. Existiert bereits eine Tabelle mit demselben Namen, erscheint eine Feh­ler­mel­dung. In den folgenden Ab­schnit­ten erfährst du, wie du CREATE TABLE in MariaDB anwendest und welche Spe­zi­fi­ka­tio­nen dir zur Verfügung stehen.

Syntax und Funk­ti­ons­wei­se

Die generelle Syntax von CREATE TABLE in MariaDB folgt immer diesem Prinzip:

CREATE TABLE Name_der_Tabelle(
	Name_der_ersten_Spalte Datentyp_der_ersten_Spalte,
	Name_der_zweiten_Spalte Datentyp_der_zweiten_Spalte,
	…
);
sql

Dabei erstellst du zunächst eine neue Tabelle und vergibst einen eigenen Namen anstelle des Platz­hal­ters „Name_der_Tabelle“. Erlaubt sind alle Zeichen des ASCII-Codes. An­schlie­ßend de­fi­nierst du die einzelnen Spalten. Jede dieser Spalten erhält einen eigenen Namen sowie den Datentyp, der darin ge­spei­chert werden darf. Die Spalten werden durch Kommata getrennt.

OR REPLACE und IF NOT EXISTS

Da Ta­bel­len­na­men eindeutig sein müssen, erhältst du eine Feh­ler­mel­dung, falls eine gleich­na­mi­ge Tabelle bereits existiert. Um das zu vermeiden, hast du zwei Mög­lich­kei­ten: Die Option OR REPLACE prüft, ob der Name bereits vergeben ist. Falls ja, wird die alte Tabelle durch die neue ersetzt. An­dern­falls wird die Tabelle einfach neu angelegt. Die Syntax dieser Anweisung sieht so aus:

CREATE OR REPLACE TABLE Name_der_Tabelle(
	Name_der_ersten_Spalte Datentyp_der_ersten_Spalte,
	Name_der_zweiten_Spalte Datentyp_der_zweiten_Spalte,
	…
);
sql

Bedenke dabei, dass die alte Tabelle über­schrie­ben wird und vor­han­de­ne Daten verloren gehen. Die Option dient als Abkürzung für diesen Code:

DROP TABLE IF EXISTS Name_der_Tabelle;
CREATE TABLE Name_der_Tabelle(
	Name_der_ersten_Spalte Datentyp_der_ersten_Spalte,
	Name_der_zweiten_Spalte Datentyp_der_zweiten_Spalte,
	…
);
sql

Eine weitere Mög­lich­keit, um Dopp­lun­gen oder Feh­ler­mel­dun­gen zu umgehen, ist die Option IF NOT EXISTS. Diese prüft ebenfalls, ob eine na­mens­glei­che Tabelle vorhanden ist. Ist dies der Fall, erhältst du lediglich einen Hinweis und es wird keine Tabelle über­schrie­ben. Existiert noch keine Tabelle unter diesem Namen, wird sie neu erstellt. Die ent­spre­chen­de Syntax lautet:

CREATE TABLE IF NOT EXISTS Name_der_Tabelle(
	Name_der_ersten_Spalte Datentyp_der_ersten_Spalte,
	Name_der_zweiten_Spalte Datentyp_der_zweiten_Spalte,
	…
);
sql

Beispiel für CREATE TABLE in MariaDB

Die Funk­ti­ons­wei­se von CREATE TABLE in MariaDB lässt sich am besten an einem Beispiel zeigen. Wir erstellen eine Tabelle für eine fiktive Pro­jekt­lis­te mit insgesamt 8 Spalten:

CREATE TABLE Projekte(
	projektnummer INT AUTO_INCREMENT,
	nachname VARCHAR(50) NOT NULL,
	vorname VARCHAR(50),
	anfang DATE,
	ende DATE,
	kosten DOUBLE,
	aufgaben VARCHAR(255) NOT NULL,
	created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (projektnummer)
);
sql

Im ersten Schritt legen wir die neue Tabelle mit dem Namen „Projekte“ an. Danach de­fi­nie­ren wir die einzelnen Spalten:

  • pro­jekt­num­mer: Hier bekommt jedes Projekt eine in­di­vi­du­el­le Nummer. Sie fungiert als Pri­mär­schlüs­sel zur ein­deu­ti­gen Zuordnung jeder Zeile. Mit AUTO_INCREMENT weisen wir das System an, die Nummern au­to­ma­tisch fort­zu­füh­ren, damit alles glatt läuft.
  • nachname: Hier wird der Nachname der Kund­schaft ein­ge­tra­gen (bis zu 50 Zeichen). Durch NOT NULL legen wir fest, dass dieses Feld ein Pflicht­feld ist.
  • vorname: Diese Spalte funk­tio­niert ähnlich wie der Nachname. Da der Vorname für die Ab­rech­nung optional ist, darf dieses Feld auch leer bleiben.
  • anfang: Hier wird der Start­ter­min des Projekts hin­ter­legt. Zulässig sind ein Datum im vor­de­fi­nier­ten Format oder ein Nullwert.
  • ende: Be­schreibt die Deadline oder den Pro­jekt­ab­schluss. Auch hier sind die Formate DATE oder NULL möglich.
  • kosten: In dieser Spalte wird der Rech­nungs­be­trag im Format DOUBLE gelistet.
  • aufgaben: Platz für eine kurze Leis­tungs­be­schrei­bung (bis zu 255 Zeichen). Diese Spalte darf nicht leer bleiben.
  • created_at: Hier wird au­to­ma­tisch das Datum der Pro­jekter­stel­lung basierend auf der Sys­tem­zeit ge­spei­chert.
Zum Hauptmenü