Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m290_guko:learningunits:lu05:theorie:b_constraints [2025/09/14 19:03] gkochmodul:m290_guko:learningunits:lu05:theorie:b_constraints [2025/09/23 20:30] (aktuell) gkoch
Zeile 26: Zeile 26:
  
  
 +<WRAP center tip round 80%> 
 +[[ https://www.youtube.com/watch?v=NNrkJUK_euE|Constraints kurz erklärt - 0:56min ]]((Quelle: KnowledgeBits Education/YouTube)) 
 +</WRAP>
  
  
 ===== 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>
 <code sql> <code sql>
-CREATE TABLE ort +CREATE TABLE student 
-  plz CHAR(4) PRIMARY KEY, +  student_id INT PRIMARY KEY, 
-  name VARCHAR(50) NOT NULL,+  name VARCHAR(50)
 ); );
 </code> </code>
Zeile 43: Zeile 45:
  
 **Wirkung:**   **Wirkung:**  
-Keine zwei Datensätze dürfen dieselbe PLZ haben.   +Keine zwei Datensätze dürfen dieselbe //student_id// haben.   
-Die PLZ darf ausserdem nicht leer (NULL) sein.+Die //student_id// darf ausserdem nicht leer (NULL) sein.
  
  
 ===== AUTO_INCREMENT – Automatisch hochzählen ===== ===== AUTO_INCREMENT – Automatisch hochzählen =====
-Wenn es keine natürliche ID gibtkann man eine **künstliche ID** verwendendie automatisch hochzählt+Das Attribut //AUTO_INCREMENT// sorgt dafürdass bei jedem neuen Datensatz der Wert dieser Spalte automatisch um **1 erhöht** wird.   
-<WRAP box 80% round center>+Es wird fast immer zusammen mit dem **Primärschlüssel** verwendetum automatisch eine **eindeutige ID** zu vergeben – ganz ohne manuelles Eingreifen. 
 + 
 +<WRAP box center 80% round> 
 +Beispiel:  
 <code sql> <code sql>
-CREATE TABLE kunde (+CREATE TABLE kunden (
   kunden_id INT AUTO_INCREMENT PRIMARY KEY,   kunden_id INT AUTO_INCREMENT PRIMARY KEY,
-  name VARCHAR(50) NOT NULL+  name VARCHAR(50) NOT NULL
-  email VARCHAR(100),+
 ); );
 </code> </code>
 +Fügt man nun Datensätze ein, vergibt MySQL automatisch fortlaufende Nummern für //kunden_id//:  
 +1, 2, 3, …
 </WRAP> </WRAP>
  
-**Wirkung:**   
-Die Datenbank vergibt bei jedem neuen Datensatz automatisch eine neue Nummer (1, 2, 3, …) 
  
 ===== 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 69: 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
 ); );
 </code> </code>
Zeile 75: Zeile 79:
  
 **Wirkung:**   **Wirkung:**  
-Versucht jemand, ohne PLZ oder Ort einen Datensatz einzufügen, meldet die Datenbank einen Fehler.+Versucht jemand, ohne PLZ oder Name einen Datensatz einzufügen, meldet die Datenbank einen Fehler.
  
-===== 📌 Übersicht =====+===== UNIQUE – Eindeutige Werte erzwingen ===== 
 +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.   
 +So können Sie zum Beispiel sicherstellen, dass keine zwei Benutzer:innen dieselbe E-Mail-Adresse haben. 
 + 
 +Beispiel: 
 + 
 +<WRAP box 80% round center> 
 +<code sql> 
 +CREATE TABLE benutzer ( 
 +  benutzer_id INT AUTO_INCREMENT PRIMARY KEY, 
 +  email VARCHAR(100) UNIQUE, 
 +  name VARCHAR(50) 
 +); 
 +</code> 
 + 
 +In diesem Beispiel muss jede //email// **eindeutig** sein.   
 +Versucht man, eine E-Mail-Adresse zweimal einzutragen, wird ein Fehler ausgegeben. 
 +</WRAP> 
 + 
 +===== Übersicht =====
 ^ Constraint         ^ Bedeutung                                           ^ ^ Constraint         ^ Bedeutung                                           ^
 | NOT NULL            | Spalte darf nicht leer bleiben                       | | NOT NULL            | Spalte darf nicht leer bleiben                       |
 | PRIMARY KEY         | Eindeutige ID für jeden Datensatz                    | | PRIMARY KEY         | Eindeutige ID für jeden Datensatz                    |
 | AUTO_INCREMENT      | Automatische laufende Nummer für neue Datensätze    | | AUTO_INCREMENT      | Automatische laufende Nummer für neue Datensätze    |
 +| NOT NULL            | Spalte darf nicht leer bleiben                       |
 +| UNIQUE      | Wert darf in einer Spalte nur einmal vorkommen    |
  
  
  • modul/m290_guko/learningunits/lu05/theorie/b_constraints.1757869401.txt.gz
  • Zuletzt geändert: 2025/09/14 19:03
  • von gkoch