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:b_constraints [2025/09/14 19:13] – gkoch | modul:m290_guko:learningunits:lu05:theorie:b_constraints [2025/09/23 20:30] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 26: | Zeile 26: | ||
| + | <WRAP center tip round 80%> | ||
| + | [[ https:// | ||
| + | </ | ||
| ===== PRIMARY KEY – Eindeutige ID ===== | ===== PRIMARY KEY – Eindeutige ID ===== | ||
| - | Der **Primärschlüssel (PRIMARY KEY)** identifiziert jeden Datensatz eindeutig. | + | Der Primärschlüssel (//PRIMARY KEY//) identifiziert jeden Datensatz eindeutig. |
| Jede Tabelle kann **nur einen Primärschlüssel** haben. | Jede Tabelle kann **nur einen Primärschlüssel** haben. | ||
| <WRAP box 80% round center> | <WRAP box 80% round center> | ||
| Zeile 36: | Zeile 38: | ||
| CREATE TABLE student ( | CREATE TABLE student ( | ||
| student_id INT PRIMARY KEY, | student_id INT PRIMARY KEY, | ||
| - | name VARCHAR(50), | + | name VARCHAR(50) |
| ); | ); | ||
| </ | </ | ||
| Zeile 43: | Zeile 45: | ||
| **Wirkung: | **Wirkung: | ||
| - | Keine zwei Datensätze dürfen dieselbe | + | Keine zwei Datensätze dürfen dieselbe |
| - | Die PLZ darf ausserdem nicht leer (NULL) sein. | + | Die // |
| ===== AUTO_INCREMENT – Automatisch hochzählen ===== | ===== AUTO_INCREMENT – Automatisch hochzählen ===== | ||
| - | Das Attribut | + | Das Attribut |
| Es wird fast immer zusammen mit dem **Primärschlüssel** verwendet, um automatisch eine **eindeutige ID** zu vergeben – ganz ohne manuelles Eingreifen. | Es wird fast immer zusammen mit dem **Primärschlüssel** verwendet, um automatisch eine **eindeutige ID** zu vergeben – ganz ohne manuelles Eingreifen. | ||
| Zeile 59: | Zeile 61: | ||
| ); | ); | ||
| </ | </ | ||
| - | Fügt man nun Datensätze ein, vergibt MySQL automatisch fortlaufende Nummern für `kunden_id`: | + | Fügt man nun Datensätze ein, vergibt MySQL automatisch fortlaufende Nummern für //kunden_id//: |
| 1, 2, 3, … | 1, 2, 3, … | ||
| </ | </ | ||
| Zeile 65: | Zeile 67: | ||
| ===== NOT NULL ===== | ===== NOT NULL ===== | ||
| - | Mit **NOT NULL** legen Sie fest, dass ein Feld **nicht leer** bleiben darf. | + | Mit //NOT NULL// legen Sie fest, dass ein Feld **nicht leer** bleiben darf. |
| <WRAP box 80% round center> | <WRAP box 80% round center> | ||
| Zeile 71: | Zeile 73: | ||
| CREATE TABLE ort ( | CREATE TABLE ort ( | ||
| plz CHAR(4) NOT NULL, | plz CHAR(4) NOT NULL, | ||
| - | name VARCHAR(50) NOT NULL, | + | name VARCHAR(50) NOT NULL |
| ); | ); | ||
| </ | </ | ||
| Zeile 80: | Zeile 82: | ||
| ===== UNIQUE – Eindeutige Werte erzwingen ===== | ===== UNIQUE – Eindeutige Werte erzwingen ===== | ||
| - | Mit dem **UNIQUE**-Constraint stellen Sie sicher, dass in einer Spalte **kein Wert doppelt vorkommen** darf. | + | Mit dem UNIQUE-Constraint stellen Sie sicher, dass in einer Spalte **kein Wert doppelt vorkommen** darf. |
| - | Im Gegensatz zum **Primärschlüssel (PRIMARY KEY)** kann es in einer Tabelle **mehrere UNIQUE-Spalten** geben. | + | Im Gegensatz zum Primärschlüssel (PRIMARY KEY) kann es in einer Tabelle **mehrere UNIQUE-Spalten** geben. |
| So können Sie zum Beispiel sicherstellen, | So können Sie zum Beispiel sicherstellen, | ||
| Zeile 96: | Zeile 98: | ||
| </ | </ | ||
| - | * In diesem Beispiel muss jede `email` **eindeutig** sein. | + | In diesem Beispiel muss jede //email// **eindeutig** sein. |
| - | * Versucht man, eine E-Mail-Adresse zweimal einzutragen, | + | Versucht man, eine E-Mail-Adresse zweimal einzutragen, |
| </ | </ | ||
| - | ===== 📌 Übersicht ===== | + | ===== Übersicht ===== |
| ^ Constraint | ^ Constraint | ||
| | NOT NULL | Spalte darf nicht leer bleiben | | NOT NULL | Spalte darf nicht leer bleiben | ||