Herzlich willkommen,
liebe Schülerinnen und Schüler der Klasse 10d am DBG!
Aktuelles Thema (24.11.2023): AKL-Besprechung und Einfügen von Daten mit SQL
1. Rückgabe und Besprechung des AKL
2. Effektives Einfügen von Daten mit SQL
Bearbeite das Arbeitsblatt DB10_DML_Klassenzimmer.pdf (ca. 293 kB).
Bitte von zu Hause aus in phpMyAdmin einloggen und die Daten in die Datenbank importieren!
Zugriff auf Dein Home-Laufwerk in der Schule aus dem Internet ("über die Cloud"):
Datenbankschema ein-/ausblenden:
Land und Ort - Model - Sortiment - Wahlkurs - Fächer - Elektromarkt - Flüsse -
Ergebnis: 17 Datensätze
| ANr | Ergebnis |
|---|---|
| 5 | SELECT * FROM BELEGT: Es gibt 12 Wahlfach-Belegungen. Die (ehemals voreingestellte) Abfrage: SELECT s.Name, s.Vorname, s.Klasse, w.Kurs, w.Tag, w.Uhrzeit, w.LNr FROM SCHUELER s, WAHLKURS w, BELEGT b WHERE s.SNr = b.SNr AND w.Kurs = b.Kurs ORDER BY w.Kurs, s.Name, s.Vorname Die Einzelbuchstaben bei FROM dienen als Abkürzung. Man muss damit bei der Angabe der in der Ergebnistabelle gewünschten Attribute (bei SELECT ...) nicht den Tabellen-Namen einem Attribut voranstellen, es genügt der Abkürzungsbuchstabe: Also: SELECT s.Name, ... anstelle von SELECT SCHUELER.Name, ... Die Angaben nach SELECT legen fest, welche Attribute (aus welchen Tabellen) in der Ergebnistabelle angezeigt werden sollen. Die Bedingungen nach WHERE sorgen dafür, dass nur Datensätze aus SCHUELER s und WAHLKURS w miteinander kombiniert werden, für die es in BELEGT b einen entsprechenden Eintrag von SNr und Kurs gibt. |
| 6 | SQL-Abfrage, die als Ergebnis eine Tabelle liefert mit den Kürzeln und Namen aller Lehrkräfte und nur den Fächern (FNr und Fachname), die von ihnen auch tatsächlich unterrichtet werden: SELECT l.LNr, l.Name, f.FNr, f.Fach FROM LEHRER l, FACH f, LEHRT t WHERE l.LNr = t.LNr AND f.FNr = t.FNr ORDER BY l.Name, f.FNr |
| 7 | Gesucht sind die Kürzel und Namen der Lehrkräfte mit den Fächern (FNr und Fachname), die sie aktuell in der Klasse 10d unterrichten, alphabetisch sortiert nach dem Fachnamen: SELECT l.LNr, l.Name, f.FNr, f.Fach FROM LEHRER l, FACH f, LEHRT t WHERE l.LNr = t.LNr AND f.FNr = t.FNr AND in10d = 1 ORDER BY f.Fach |
| 8 | Wie ANr = 7, gesucht sind aber nur die Kernfach-Lehrkräfte mit ihrem jeweiligen Kernfach: SELECT l.LNr, l.Name, f.FNr, f.Fach FROM LEHRER l, FACH f, LEHRT t WHERE l.LNr = t.LNr AND f.FNr = t.FNr AND in10d = 1 AND f.Kernfach = 1 ORDER BY f.Fach |
| 9 | Gesucht ist eine Tabelle mit allen Fächern und der Anzahl der Lehrkräfte der 10d, die diese Fächer unterrichten (unabhängig davon, ob in der 10d oder nicht), absteigend sortiert nach der Anzahl: SELECT f.Fach, COUNT(*) AS "Anzahl der Lehrkräfte" FROM LEHRER l, FACH f, LEHRT t WHERE l.LNr = t.LNr AND f.FNr = t.FNr GROUP BY f.Fach ORDER BY COUNT(*) DESC |
| 10 | Elektromarkt a) Welche Mitarbeiter (Name, Vorname) arbeiten in Nürnberg? SELECT m.Name, m.Vorname, f.Ort FROM Mitarbeiter m, Filiale f WHERE m.Filiale = f.Nr AND f.Ort = "Nürnberg" |
| 11 | Elektromarkt b) Unter welcher Telefonnummer kann man Frau Abele in der Arbeit erreichen? SELECT m.Name, m.Vorname, f.Telefon FROM Mitarbeiter m, Filiale f WHERE m.Filiale = f.Nr AND m.Name = "Abele" |
| 12 | Elektromarkt c) Welche Großhändler beliefern die Filiale in Augsburg? SELECT g.Name, f.Ort AS "beliefert Filiale in" FROM Grosshaendler g, Filiale f, Beliefert b WHERE g.Nr = b.Haendler AND f.Nr = b.Filiale AND f.Ort = "Augsburg" |
| 13 | Elektromarkt d) Gesucht sind Ansprechpartner und Telefonnummer des Großhändlers, der Filiale 2 mit Haushaltswaren beliefert. SELECT g.Ansprechpartner, g.Tel FROM Grosshaendler g, Filiale f, Beliefert b WHERE g.Nr = b.Haendler AND f.Nr = b.Filiale AND f.Nr = 2 AND g.Branche = "Haushalt" |
| 14 | Elektromarkt e) Wie heißt der direkte Vorgesetzte von Lars Becker? SELECT m.Name, m.Vorname, CONCAT(v.Name, " ", v.Vorname) AS Vorgesetzter FROM Mitarbeiter m, Mitarbeiter v WHERE m.Name = "Becker" AND m.Vorname = "Lars" AND v.Nr = m.Vorgesetzter |
| 15 | Wdh. "Flüsse" - Aufgabe 3 Klassentabellen: "Fluss", "Stadt" und "Bundesland" Beziehungstabelle: "fliesstDurch" Klassen-Beziehungsdiagramm: n:m-Beziehung "fließt_durch >" zwischen "Fluss" und "Stadt" n:1-Beziehung "liegt_in >" zwischen "Stadt" und "Bundesland" |
| 16 | Wdh. "Flüsse" - Aufgabe 4 a) Namen der Städte und Name des Bundeslandes, in dem die Städte liegen: SELECT b.Name, s.SName FROM Bundesland b, Stadt s WHERE b.Bundesland = s.Bundesland ORDER BY b.Name, s.SName |
| 17 | Wdh. "Flüsse" - Aufgabe 4 b) Namen und Längen der Flüsse und Namen und Einwohnerzahlen der Städte, durch die sie fließen: SELECT f.FName, f.Länge, s.SName, s.Einwohner FROM Fluss f, Stadt s, fliesstDurch d WHERE f.FName = d.Flussname AND s.SName = d.Stadtname ORDER BY FName, SName |
| 18 | Wdh. "Flüsse" - Aufgabe 4 c) Was gibt die folgende SQL-Abfrage aus? SELECT b.Name AS Bundesland, f.FName, f.Länge, s.SName, s.Einwohner FROM Fluss f, Stadt s, fliesstDurch d, Bundesland b WHERE f.FName = d.Flussname AND s.SName = d.Stadtname AND b.Bundesland = s.Bundesland ORDER BY b.Name, FName, SName Die Abfrage gibt die Namen der Bundesländer aus mit den Namen und Längen der Flüsse und den Namen und Einwohnerzahlen der Städte, durch die die Flüsse fließen, sortiert nach dem Bundesland, dem Flussnamen und dem Namen der Stadt. |
| 19 | Wdh. "Flüsse" - Aufgabe 4 d) Veränderung von c) für Namen und Länge der Flüsse, die durch Bayern fließen, und Namen und Einwohnerzahlen der Städte, durch die die Flüsse fließen: SELECT FROM Fluss f, Stadt s, fliesstDurch d, Bundesland b WHERE f.FName = d.Flussname AND s.SName = d.Stadtname AND b.Bundesland = s.Bundesland AND b.Name = "Bayern" ORDER BY |
| 20 | Wdh. "Flüsse" - Aufgabe 4 e) Veränderung von c) für Namen und Länge der Flüsse und Namen der Bundesländer, durch die die Flüsse fließen: SELECT DISTINCT f.FName, f.Länge, b.Name AS Bundesland FROM Fluss f, Stadt s, fliesstDurch d, Bundesland b WHERE f.FName = d.Flussname AND s.SName = d.Stadtname AND b.Bundesland = s.Bundesland ORDER BY FName, b.Name |
| 21 | Wdh. "Flüsse" - Aufgabe 4 f) Warum wurden die Informationen zu den Längen der Flüsse und zu den Einwohnerzahlen der Städte nicht in der Tabelle "fließtDurch" abgespeichert? In die Tabelle "fließtDurch" müssten die Informationen zu den Längen der Flüsse und zu den Einwohnerzahlen der Städte mehrfach eingetragen werden, sie würde dadurch redundante Informationen enthalten. Dies könnte, z. B. bei einer Änderung der Einwohnerzahl einer Stadt, zu Inkonsistenz führen, wenn diese Änderung nicht bei allen betroffenen Datensätzen vorgenommen wird (sog. UPDATE-Anomalie). |