Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m290_guko:learningunits:lu05:theorie:a_ddl [2025/09/14 18:36] – gkoch | modul:m290_guko:learningunits:lu05:theorie:a_ddl [2025/09/18 11:51] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| ===== Lernziele ===== | ===== Lernziele ===== | ||
| Zeile 18: | Zeile 18: | ||
| **Datenbank erstellen: | **Datenbank erstellen: | ||
| <code sql> | <code sql> | ||
| - | CREATE DATABASE | + | CREATE DATABASE |
| </ | </ | ||
| //Bisher haben wir das in WebStorm per Rechtsklick auf die Verbindung → **New → Schema** gemacht (siehe Screenshot).// | //Bisher haben wir das in WebStorm per Rechtsklick auf die Verbindung → **New → Schema** gemacht (siehe Screenshot).// | ||
| Zeile 24: | Zeile 24: | ||
| </ | </ | ||
| + | **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 // | ||
| + | Damit man weiss, **in welcher Datenbank man arbeitet**, muss man diese zuerst auswählen. | ||
| + | Das geschieht mit dem SQL-Befehl **USE**: | ||
| <WRAP box center 80% round> | <WRAP box center 80% round> | ||
| - | **Datenbank | + | **Auf eine Datenbank |
| <code sql> | <code sql> | ||
| - | DROP DATABASE meine_datenbank; | + | USE mydb_perfect; |
| </ | </ | ||
| + | In WebStorm haben wir bisher die Datenbank über das **Drop-Down-Feld < | ||
| + | Der Befehl //USE// macht dasselbe – nur in SQL-Code-Form. | ||
| + | {{: | ||
| </ | </ | ||
| - | <WRAP box center 80% round important> | + | Ab diesem Moment werden alle folgenden SQL-Befehle (z. B. //CREATE TABLE//, // |
| - | **Achtung: | + | |
| - | </ | + | |
| <WRAP box center 80% round> | <WRAP box center 80% round> | ||
| - | **Auf eine Datenbank | + | **Datenbank |
| <code sql> | <code sql> | ||
| - | USE meine_datenbank; | + | DROP DATABASE mydb_perfect; |
| </ | </ | ||
| - | //In WebStorm können Sie alternativ oben rechts im Query-Editor das **Schema-Dropdown** verwenden (siehe Screenshot).// | ||
| - | {{: | ||
| </ | </ | ||
| - | < | + | < |
| - | **Tipp:** Für alle Befehle benötigen Sie passende Rechte (z. B. `CREATE`, `DROP`). In Schul-/ | + | **Achtung:** //DROP DATABASE// löscht die **gesamte** Datenbank inkl. **aller** Tabellen und Daten. In produktiven Systemen nur nach Backup verwenden. |
| </ | </ | ||
| - | ===== 📋 Tabellen erstellen ===== | ||
| + | |||
| + | ===== 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. | Mit dem Befehl **CREATE TABLE** legen Sie eine Tabelle in der aktuell gewählten Datenbank an. | ||
| **Allgemeine Syntax:** | **Allgemeine Syntax:** | ||
| + | <WRAP box center 80% round> | ||
| <code sql> | <code sql> | ||
| CREATE TABLE tabellenname ( | CREATE TABLE tabellenname ( | ||
| Zeile 62: | Zeile 73: | ||
| ); | ); | ||
| </ | </ | ||
| + | // | ||
| + | </ | ||
| + | |||
| + | |||
| **Wichtige Namensregeln: | **Wichtige Namensregeln: | ||
| Zeile 68: | Zeile 83: | ||
| * Tabellennamen müssen eindeutig sein | * Tabellennamen müssen eindeutig sein | ||
| - | ---- | ||
| - | |||
| - | ===== 📝 Beispiel: Tabelle ort ===== | ||
| - | Wir wollen eine Tabelle **ort** erstellen, die PLZ, Ort und Vorwahl speichert: | + | ===== Beispiel: Tabelle Student ===== |
| + | Wir wollen eine Tabelle **student** (Lernende: | ||
| + | <WRAP box center 80% round> | ||
| <code sql> | <code sql> | ||
| - | CREATE TABLE ort ( | + | CREATE TABLE student |
| - | | + | |
| - | | + | |
| - | | + | |
| + | birthdate DATE | ||
| ); | ); | ||
| </ | </ | ||
| + | Nach Ausführung dieses DDL-Befehls würde das Ergebnis ähnlich wie in der folgenden Abbildung dargestellt aussehen. | ||
| + | {{: | ||
| + | </ | ||
| **Erklärung: | **Erklärung: | ||
| - | * `CHAR(5)` | + | * // |
| - | * `VARCHAR(50)` → Zeichenkette variabler Länge (max. 50) | + | * //VARCHAR(50)// → Zeichenkette variabler Länge (max. 50) |
| - | * `VARCHAR(12)` | + | * // |
| - | ---- | ||
| - | ===== 🗑️ | + | ===== Tabellen löschen ===== |
| Mit dem Befehl **DROP TABLE** löschen Sie eine komplette Tabelle (inklusive aller Daten): | Mit dem Befehl **DROP TABLE** löschen Sie eine komplette Tabelle (inklusive aller Daten): | ||
| + | <WRAP box center 80% round> | ||
| <code sql> | <code sql> | ||
| - | DROP TABLE ort; | + | DROP TABLE student; |
| </ | </ | ||
| + | </ | ||
| - | **⚠️ | + | <WRAP box center 80% round important> |
| + | **Achtung: | ||
| + | </ | ||
| - | ---- | ||
| - | ===== 📌 Merksatz ===== | + | ===== Merksatz ===== |
| ^ SQL-Befehl | ^ SQL-Befehl | ||
| | CREATE DATABASE | | CREATE DATABASE | ||
| + | | USE DATABASE | ||
| | DROP DATABASE | | DROP DATABASE | ||
| | CREATE TABLE | Neue Tabelle in der aktiven Datenbank erstellen| | | CREATE TABLE | Neue Tabelle in der aktiven Datenbank erstellen| | ||
| | DROP TABLE | Tabelle aus der aktiven Datenbank löschen | | DROP TABLE | Tabelle aus der aktiven Datenbank löschen | ||
| - | ---- | ||
| - | |||
| - | [[https:// | ||
| - | [[https:// | ||
| - | [[https:// | ||
| ---- | ---- | ||
| [[https:// | [[https:// | ||