SQL Schnellstart- Create Table
Wie du sicherlich weißt, speicherst du deine Daten in Datenbanken. Die Daten werden aber nicht einfach kreuz und quer in dieser gespeichert, stattdessen kann eine Datenbank mehrere Tabellen besitzen und in diesen Tabellen kannst du dann deine Daten ablegen. Doch diese Tabellen fallen natürlich nicht vom heiteren Himmel, sondern muss man vorher erstellen. In diesem Artikel erfährst du, wie du mit SQL Tabellen in Datenbanken erstellen kannst.
Tabellen erstellen mit SQL
SQL stellt dir "CREATE TABLE" zur Verfügung, womit du Tabellen schnell und unkompliziert erstellen kannst. Der allgemeine Aufbau sieht folgendermaßen aus:
CREATE TABLE tabellenname (
name_spalte1 datentyp,
name_spalte2 datentyp,
name_spalte3 datentyp,
...
);
Schauen wir uns das ganze nun genauer an. "name_spalte1" oder "name_spalte2" sind die Namen unserer Tabellenspalten. Häufig bezeichnet man die Spalten auch als Attribute. Wenn du noch keine Erfahrung im Bereich der Programmierung hast, dann fragst du dich jetzt wahrscheinlich, was "datentyp" sein soll.
Im Grunde sagt es schon der Name. Damit gibst du einfach an, von was für einen "Typ" die "Daten" dieser Spalte sein sollen, also ob es sich bei dieser Spalte um einfachen Text handelt, um eine Zahl, ein Datum, ein Bild und so weiter handelt. In der folgenden Tabelle werden dir wichtige Datentypen aufgelistet:
Datentyp | Beschreibung |
---|---|
VARCHAR(Zeichenlänge) | Text mit einer festgelegten maximalen Zeichenlänge |
BOOL | Kann Falsch (=0) oder Wahr (=1) speichern |
INT | Zahl von -2147483648 bis 2147483647 (keine Kommazahlen) |
TEXT | Einfacher Text |
FLOAT und DOUBLE |
Speichern von Kommazahlen möglich: FLOAT ist auf 7 Nachkommastellen beschränkt, DOUBLE auf 15 |
DATE | Speichern eines Datums bzw. der Zeit |
Die Datentypen können sich bei den jeweiligen Datenbankmanagementsystemen unterscheiden und natürlich gibt es weit mehr Datentypen als oben aufgelistet.
SQL: CREATE TABLE Beispiel
Schauen wir uns ein Beispiel an: Du bist Doktor einer Arztpraxis und deine Patientendaten sollen in einer Datenbank "Praxis" in einer Tabelle "Patientendaten" gespeichert werden. Die Datenbank hast du bereits erstellt, es fehlt dir nur noch die Tabelle. Folgendermaßen könntest du nun diese Tabelle erstellen:
CREATE TABLE Patienten (
Vorname VARCHAR(24),
Nachname VARCHAR(24),
Geburtsdatum DATE,
Vorerkrankungen BOOL
);
Einschränkungen für Daten aufstellen
SQL bietet dir die Möglichkeit, neben den Datentypen noch weitere Einschränkungen für deine Daten zu definieren. Diese Einschränkungen kannst du einfach direkt hinter die Datentypen der einzelnen Spalten schreiben. Folgende Einschränkungen kannst du beispielsweise verwenden:
Einschränkung | Beschreibung |
---|---|
NOT NULL | Es muss immer ein gültiger Wert übergeben werden d.h. die Spalte darf nicht "NULL" gesetzt werden(NULL bedeutet hier nicht die Zahl 0, sondern NULL bedeutet wirklich "Kein Wert") |
UNIQUE | Der Wert darf nur genau einmal in dieser Tabelle in genau dieser Spalte vorkommen |
DEFAULT | Initialisiert einen Standardwert, falls keiner übergeben wird |
Dein SQL-Befehl könnte dann beispielsweise folgendermaßen aussehen:
CREATE TABLE Patienten (
Vorname VARCHAR(24) NOT NULL,
Nachname VARCHAR(24) NOT NULL UNIQUE,
Geburtsdatum DATE,
Vorerkrankungen BOOL DEFAULT false
);
Beim Hinzufügen eines neuen Patienten müsstest du nun zwingend einen Vornamen und einen Nachnamen übergeben, wobei der Wert nicht NULL sein darf. Zusätzlich darf bisher kein anderer Patient denselben Nachnamen haben, denn dieser muss UNIQUE sein. Übergibst du bei Vorerkrankung keinen Wert (auch nicht NULL), so ist Vorerkrankung automatisch "false". Versuchst du nun einen Patienten, ohne Vornamen = NULL dieser Tabelle hinzuzufügen, dann erhältst du einen Fehler.
SQL-Aufgabe: Erstelle eine Datenbank für Medikamente
Deine Praxis besitzt ein großes Vorkommen an Medikamenten, um da noch den Überblick zu behalten, wäre eine eigene Tabelle keine schlechte Idee. Erstelle mit SQL eine Tabelle "Medikamente" mit den Attributen Medikamentenname (Muss einen Wert haben), Medikamentenbeschreibung und Anzahl (Standard = 1). Füge Testdaten zu dieser Tabelle mit INSERT INTO hinzu und mache im Anschluss eine SELECT * Abfrage.
Deinen SQL-Code kannst du in die blaue Konsole eingeben. Vorher solltest du noch auf die grüne Schaltfläche drücken.
Lösung:
- Erstellen der Tabelle
CREATE TABLE Medikamente ( Medikamentennamen VARCHAR(24) NOT NULL, Medikamentenbeschreibung VARCHAR(255), Anzahl INT DEFAULT 1 );
- Hinzufügen von Testdaten
INSERT INTO Medikamente VALUES ("Paracetamol", "Gegen Fieber und Kopfschmerzen", 3), ("Dimenhydrinat", NULL, NULL);
und
INSERT INTO Medikamente(Medikamentennamen, Medikamentenbeschreibung) VALUES ("Palonosetron", "Gegen Übelkeit");
- Abfrage mit SELECT
SELECT * FROM Medikamente;
Fazit
Wenn du neue Tabellen erstellen möchtest, dann kann man das häufig auch über eine grafische Benutzeroberfläche machen. Manchmal benötigt man aber trotzdem die Hilfe von "CREATE TABLE" beispielsweise, wenn man eine Tabelle erstellen möchte, wenn ein Programm das erste Mal startet, dann kann man das mit der Hilfe von "CREATE TABLE" einprogrammieren.
Außerdem ist ein SQL-Befehl zum Erstellen von Tabellen zwar nicht einfacher als mit einer grafischen Benutzeroberfläche, aber dennoch übersichtlicher, man kann direkt alle wichtigen Bestandteile der Tabelle ablesen. Das ist besonders hilfreich, wenn du Einschränkungen für deine Daten verwendest.