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:lu04:theorie:b_crows_foot [2025/09/07 19:33] – gkoch | modul:m290_guko:learningunits:lu04:theorie:b_crows_foot [2025/09/22 13:33] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 87: | Zeile 87: | ||
| * **Kunde** | * **Kunde** | ||
| * **Bestellung** | * **Bestellung** | ||
| - | * **Buch** | + | * **Produkt** |
| Beziehungen: | Beziehungen: | ||
| * Ein Kunde kann viele Bestellungen aufgeben (1: | * Ein Kunde kann viele Bestellungen aufgeben (1: | ||
| - | * Eine Bestellung kann mehrere | + | * Eine Bestellung kann mehrere |
| + | |||
| + | {{: | ||
| Darstellung in Crow’s-Foot-Notation: | Darstellung in Crow’s-Foot-Notation: | ||
| * Linie zwischen Kunde und Bestellung, mit Strich (1) auf der Kundenseite und Krähenfuss (N) auf der Bestellungsseite. | * Linie zwischen Kunde und Bestellung, mit Strich (1) auf der Kundenseite und Krähenfuss (N) auf der Bestellungsseite. | ||
| - | * Linie zwischen Bestellung und Buch mit Krähenfuss auf beiden Seiten. | + | * Linie zwischen Bestellung und Produkt |
| ===== Beispiel: Vom Schema zur Tabelle ===== | ===== Beispiel: Vom Schema zur Tabelle ===== | ||
| - | Ausgangspunkt ist ein kleines | + | Ausgangspunkt ist ein **Crow’s Foot Schema**: |
| - | {{: | + | {{: |
| * **Regisseur** (RegisseurID **PK**, Name) | * **Regisseur** (RegisseurID **PK**, Name) | ||
| Zeile 109: | Zeile 111: | ||
| - | ===== Umsetzung in SQL ===== | + | ==== Umsetzung in SQL ==== |
| **1. Datenbank anlegen** | **1. Datenbank anlegen** | ||
| Zeile 123: | Zeile 125: | ||
| <code sql> | <code sql> | ||
| CREATE TABLE regisseur ( | CREATE TABLE regisseur ( | ||
| - | regisseur_id INT AUTO_INCREMENT, | + | regisseur_id INT AUTO_INCREMENT |
| name VARCHAR(50) NOT NULL, | name VARCHAR(50) NOT NULL, | ||
| - | | + | |
| ); | ); | ||
| </ | </ | ||
| Zeile 142: | Zeile 144: | ||
| </ | </ | ||
| </ | </ | ||
| - | **4. Erste Daten einfügen** | ||
| - | <WRAP center box round 80%> | ||
| - | <code sql> | ||
| - | INSERT INTO regisseur (name) VALUES (' | ||
| - | INSERT INTO film (titel, jahr, regisseur_id) | + | <WRAP center box round 80% info> |
| - | VALUES | + | Sowohl das setzen von Foreign Keys (Fremdschlüsseln) in SQL, wie auch das gleichzeitige Abfragen von Daten aus zwei Tabellen |
| - | ('Lost in Translation' | + | |
| - | </ | + | |
| </ | </ | ||
| + | **4. Daten einfügen** | ||
| + | |||
| + | Fügen Sie mit Webstorm manuell (Tabelle anklicken und dann -> "Edit Data" (Tabellen-Icon)) ein paar Daten in die beiden Tabellen. Sie können zur Inspiration Daten aus der Tabelle // | ||
| + | |||
| **5. Daten abfragen** | **5. Daten abfragen** | ||
| + | |||
| + | Mit einem Select können wir beide Tabellen gleichzeitig abfragen: | ||
| <WRAP center box round 80%> | <WRAP center box round 80%> | ||
| <code sql> | <code sql> | ||
| Zeile 158: | Zeile 160: | ||
| FROM film f, regisseur r | FROM film f, regisseur r | ||
| WHERE f.regisseur_id = r.regisseur_id; | WHERE f.regisseur_id = r.regisseur_id; | ||
| + | |||
| </ | </ | ||
| </ | </ | ||
| - | **Ergebnis** | + | Was zu einem ähnlichen |
| <WRAP center box round 80%> | <WRAP center box round 80%> | ||
| ^ Titel ^ Jahr ^ Regisseur | ^ Titel ^ Jahr ^ Regisseur | ||
| | Inception | | Inception | ||
| | Lost in Translation | 2003 | Sofia Coppola | | Lost in Translation | 2003 | Sofia Coppola | ||
| + | |||
| </ | </ | ||
| - | Die Daten werde aus beiden Tabellen //film// und // | + | |
| ---- | ---- | ||
| [[https:// | [[https:// | ||