Benutzer-Werkzeuge

Webseiten-Werkzeuge


neuerlehrplan:klasse09:mehreretabellen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
neuerlehrplan:klasse09:mehreretabellen [2024/11/15 11:31] lutzneuerlehrplan:klasse09:mehreretabellen [2024/12/02 07:39] (aktuell) lutz
Zeile 78: Zeile 78:
 Übertragen wir nun das Ganze auf die Instahub-Datenbank. Dazu betrachten wir die Tabellen users und photos: Übertragen wir nun das Ganze auf die Instahub-Datenbank. Dazu betrachten wir die Tabellen users und photos:
  
-$\text{users(} \underline{\text{id}}\text{, username, email, password, name, bio, gender, birthday, city, country, centimeters, avatar, role, is\_activeremember\_tokencreated\_atupdated\_at)}$+**users** (__id__, username, email, email_verified_at, password, name, bio, gender, birthday, city, country, centimeters, avatar, role, is_activeremember_tokencreated_atupdated_at)
  
 +**photos**( __id__, user_id, description, url, created_at, updated_at)
  
 +In der Tabelle **photos** ist user_id Fremdschlüssel und bezieht sich auf den Primärschlüssel (id) in der Tablle **users**.
 +
 +
 +Nun sollen einige Abfragen über die beiden Tabellen durchgeführt werden:
 +
 +<code sql>
 +SELECT *
 +FROM users, photos;
 +</code>
 +
 +Bei dieser Abfrage würde jede Zeile der Tabelle users mit jeder Zeile der Tabelle photos kombiniert werden. Das wären in der Ausgabe, bei Füllen der Tabellen mit Standarddaten, 207x1524=315468 Zeilen. In Instahub kommt es dabei zu einer Fehlermeldung, aber mit einer entsprechenden Einstellung wäre die Ausgabe trotzdem möglich.
 +
 +Uns interessieren aber die Fotos, die jeder Nutzer veröffentlicht hat. Dazu kann man den folgenden Befehl verwenden:
 +
 +<code sql>
 +SELECT *
 +FROM users, photos
 +WHERE users.id = photos.user_id 
 +</code>
 +
 +mit der Zeile ''%%WHERE users.id = photos.user_id%%'' werden hier jeden Nutzer seine Fotos zugeordnet.
 +
 +Auch möglich wäre:
 +
 +<code sql>
 +SELECT *
 +FROM users JOIN photos
 +ON users.id = photos.user_id 
 +</code>
 +
 +Wenn man die Abfrage noch mehr verfeinern will, z.B. alle Fotos des Nutzers mit der id 1, kann man weitere Bedingungen hinzufügen:
 +
 +<code sql>
 +SELECT *
 +FROM users, photos
 +WHERE users.id = photos.user_id 
 +AND users.id = 1
 +</code>
 +
 +===Aufgabe===
 +Lass von deinem Lehrer alle Tabellen in Instahub eintragen und teste die Abfragen.
  
neuerlehrplan/klasse09/mehreretabellen.1731666707.txt.gz · Zuletzt geändert: 2024/11/15 11:31 von lutz