====== LU05a – SQL-DDL: Datenbanken & Tabellen anlegen und löschen ======
===== Lernziele =====
Sie lernen in dieser Lektion:
* wie Sie **Datenbanken** anlegen und löschen
* wie Sie darin **Tabellen** mit Spalten erstellen
* wie Sie Tabellen auch wieder **löschen**
Diese Befehle gehören zur **Data Definition Language (DDL)** von SQL.
===== Datenbanken erstellen und löschen =====
Mit einer **Datenbank** schaffen Sie einen „Ordner“, in dem Sie Tabellen anlegen können.
Hinweis: In **MySQL** sind *Database* und *Schema* Synonyme. In WebStorm (Database-Plugin) lautet der Menüpunkt **New → Schema**, er erstellt damit eine MySQL-Datenbank.
**Datenbank erstellen:**
CREATE DATABASE mydb_perfect;
//Bisher haben wir das in WebStorm per Rechtsklick auf die Verbindung → **New → Schema** gemacht (siehe Screenshot).//
{{:modul:m290_guko:learningunits:lu05:theorie:screenshot_2025-09-14_at_14.29.02.png?direct&400|}}
**Mit Datenbanken arbeiten (USE)**
In einem Datenbanksystem (z. B. MySQL) können mehrere **Datenbanken (Schemas)** nebeneinander existieren.
Beispiel: Auf demselben MySQL-Server laufen z. B. die Datenbanken //digitech_ch// und //galaxus_ch// – sie liegen im gleichen System, verwalten ihre Daten aber **getrennt**.
Damit man weiss, **in welcher Datenbank man arbeitet**, muss man diese zuerst auswählen.
Das geschieht mit dem SQL-Befehl **USE**:
**Auf eine Datenbank umschalten (Standard-Datenbank für SQL-Befehle aktiv setzen):**
USE mydb_perfect;
In WebStorm haben wir bisher die Datenbank über das **Drop-Down-Feld ** oben im Datenbank-Fenster ausgewählt.
Der Befehl //USE// macht dasselbe – nur in SQL-Code-Form.
{{:modul:m290_guko:learningunits:lu05:theorie:screenshot_2025-09-14_at_14.28.46.png?direct&400|}}
Ab diesem Moment werden alle folgenden SQL-Befehle (z. B. //CREATE TABLE//, //SELECT//, //DROP TABLE//) in dieser Datenbank ausgeführt.
**Datenbank löschen:**
DROP DATABASE mydb_perfect;
**Achtung:** //DROP DATABASE// löscht die **gesamte** Datenbank inkl. **aller** Tabellen und Daten. In produktiven Systemen nur nach Backup verwenden.
===== Tabellen erstellen =====
Wie wird nun in eine Datenbank eine Tabelle angelegt?
Dazu gibt es in SQL die Anweisung //CREATE TABLE//, die eine Tabelle mit den dazugehörigen Spalten und deren Datentypen erzeugt.
Mit dem Befehl **CREATE TABLE** legen Sie eine Tabelle in der aktuell gewählten Datenbank an.
**Allgemeine Syntax:**
CREATE TABLE tabellenname (
spaltenname1 DATENTYP,
spaltenname2 DATENTYP,
...
);
//**Wichtig**: nach der letzten Spalte wird __kein Kommma__ mehr geschrieben. Die drei Punkte (...) hier im Beispiel stehen für weitere Spalten.//
**Wichtige Namensregeln:**
* Keine Leerzeichen, Umlaute oder Sonderzeichen
* Nur Kleinbuchstaben
* Tabellennamen müssen eindeutig sein
===== Beispiel: Tabelle Student =====
Wir wollen eine Tabelle **student** (Lernende:r) erstellen, die eine ID, den Vornamen, den Nachnamen und das Geburtsdatum speichert:
CREATE TABLE student (
stundent_id INT,
name VARCHAR(50),
surname VARCHAR(50),
birthdate DATE
);
Nach Ausführung dieses DDL-Befehls würde das Ergebnis ähnlich wie in der folgenden Abbildung dargestellt aussehen.
{{:modul:m290:learningunits:lu05:theorie:m290_lu06b.abb2.png?600|}}
**Erklärung:**
* //INT// → ganze Zahl (1..50 etc)
* //VARCHAR(50)// → Zeichenkette variabler Länge (max. 50)
* //DATE// → Datum in YYYY-MM-DD
===== Tabellen löschen =====
Mit dem Befehl **DROP TABLE** löschen Sie eine komplette Tabelle (inklusive aller Daten):
DROP TABLE student;
**Achtung:** Dieser Befehl kann **nicht rückgängig gemacht** werden und dieser Befehl löscht auch alle Daten aus der Tabelle!
===== Merksatz =====
^ SQL-Befehl ^ Bedeutung ^
| CREATE DATABASE | Neue Datenbank erstellen |
| USE DATABASE | Datenbank "aktiv" schalten|
| DROP DATABASE | Datenbank löschen |
| CREATE TABLE | Neue Tabelle in der aktiven Datenbank erstellen|
| DROP TABLE | Tabelle aus der aktiven Datenbank löschen |
----
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]]