Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SQL - Structured Query Language  AIFB SS 2001 1 (1/3) 2.3.6 Verknüpfung von Relationen (Join)(1/3) Anfragen mit Join („Natural Join“) 22. „Alle Projekte.

Ähnliche Präsentationen


Präsentation zum Thema: "SQL - Structured Query Language  AIFB SS 2001 1 (1/3) 2.3.6 Verknüpfung von Relationen (Join)(1/3) Anfragen mit Join („Natural Join“) 22. „Alle Projekte."—  Präsentation transkript:

1 SQL - Structured Query Language  AIFB SS 2001 1 (1/3) 2.3.6 Verknüpfung von Relationen (Join)(1/3) Anfragen mit Join („Natural Join“) 22. „Alle Projekte mit den Informationen der zugehörigen Angestellten.“ SELECT FROM WHERE P-NR, a.ANG-NR, NAME, WOHNORT, ABT-NR, PROZ-ARBZEIT angestellte a, ang-pro ap a.ANG-NR=ap.ANG-NR; Qualifikation mit Aliasnamen Animation und Ergebnis dieses Beispiels (siehe Seite 68) Animation vom Projekt Vikar Kartesisches Produkt Kartesisches Produkt „Natural Join“ Join mit Auswahlbedingung 23. „Alle Projekt-Nummern mit den Namen derjenigen Angestellten, die zu 50% mitarbeiten.“ SELECT FROM WHERE P-NR, NAME angestellte a, ang-pro ap a.ANG-NR=ap.ANG-NR AND PROZ-ARBZEIT=50; Animation und Ergebnis dieses Beispiels (siehe Seite 69)

2 SQL - Structured Query Language  AIFB SS 2001 2 (2/3) 2.3.6 Verknüpfung von Relationen (Join)(2/3) Anfragen mit Join (allgemein  -Join) 24. „Gib für jedes Projekt die Projektnummer und die Namen aller Angestellten an, die dort nicht Projektleiter sind.“ (Angestellter muß nicht an Projekt mitarbeiten) SELECT FROM WHERE P-NR, NAME angestellte, projekt ANG-NR <> P-LEITER; Join mit 3 Relationen 25. „Gib für jeden Angestellten seinen Namen, sowie die Projekt-Filialen der Projekte an, an denen er mitarbeitet.“ SELECT FROM WHERE angestellte a, ang-pro ap, projekt p a.ANG-NR=ap.ANG-NR AND ap.P-NR=p.P-NR; NAME, P-FILIALE Animation und Ergebnis dieses Beispiels (siehe Seite 71) Animation und Ergebnis dieses Beispiels (siehe Seite 70)

3 SQL - Structured Query Language  AIFB SS 2001 3 (3/3) 2.3.6 Verknüpfung von Relationen (Join)(3/3) Join mit derselben Relation Verwendung von Alias-Namen & Qualifikation 26. „Suche Paare von (unterschiedlichen) Angestellten(Ang-Nr,Name), die in der selben Stadt wohnen.“ (Das Ergebnis sollte keine redundanten Angaben enthalten) SELECT FROM WHERE a.NAME A-NAME, b.NAME B-BNAME angestellte a, angestellte b a.WOHNORT=b.WOHNORT AND a.NAME < b.NAME; ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe35 3207MüllerMannheim30 2814 KleinMannheim32 ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe35 3207MüllerMannheim30 2814 KleinMannheim32 (kartesisches Produkt) ANG-NRNAMEWOHNORTABT-NRANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe353115MeyerKarlsruhe35 3115MeyerKarlsruhe353207MüllerMannheim30 3115 MeyerKarlsruhe352814KleinMannheim32 3207 MüllerMannheim303115MeyerKarlsruhe35 3207 MüllerMannheim303207MüllerMannheim30 3207 MüllerMannheim302814KleinMannheim32 2814 KleinMannheim323115MeyerKarlsruhe35 2814 KleinMannheim323207MüllerMannheim30 2814 KleinMannheim322814KleinMannheim32 Ergebnis: A-NAMEB-NAME KleinMüller a b

4 SQL - Structured Query Language  AIFB SS 2001 4 ANG-NRNAMEWOHNORTABT-NRP-NRANG-NRPROZ-ARBZEIT 3115MeyerKarlsruhe35761235311550 3115MeyerKarlsruhe35770008281470 3115 MeyerKarlsruhe35 770114281430 3115 MeyerKarlsruhe35 770231311550 3115MeyerKarlsruhe357702311324100 2814KleinMannheim32761235311550 2814KleinMannheim32770008281470 2814KleinMannheim32770114281430 2814KleinMannheim32770231311550 2814KleinMannheim327702311324100 1324SchmittHeidelberg35761235311550 1324SchmittHeidelberg35770008281470 1324SchmittHeidelberg35770114281430 1324SchmittHeidelberg35770231311550 1324SchmittHeidelberg357702311324100 Beispiel für „Natural Join“ SELECT FROM WHERE P-NR, a.ANG-NR, NAME, WOHNORT, ABT-NR,PROZ-ARBZEIT angestellte a, ang-pro ap a.ANG-NR=ap.ANG-NR; ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe35 2814 KleinMannheim32 1324SchmittHeidelberg35 P-NRANG-NRPROZ-ARBZEIT 761235311550 770008281470 770114281430 770231311550 7702311324100 kartesisches Produkt Ergebnis: P-NR ANG- NR NAMEWOHNORT ABT- NR PROZ- ARBZEIT 7612353115MeyerKarlsruhe3550 7702313115MeyerKarlsruhe3550 7700082814KleinMannheim3270 7701142814KleinMannheim3230 7702311324SchmittHeidelberg35100

5 SQL - Structured Query Language  AIFB SS 2001 5 Beispiel für Join mit Auswahlbedingung ANG-NRNAMEWOHNORTABT-NRP-NRANG-NRPROZ-ARBZEIT 3115MeyerKarlsruhe35761235311550 3115MeyerKarlsruhe35770008281470 3115 MeyerKarlsruhe35 770114281430 3115 MeyerKarlsruhe35 770231311550 3115MeyerKarlsruhe357702311324100 2814KleinMannheim32761235311550 2814KleinMannheim32770008281470 2814 KleinMannheim32770114281430 2814KleinMannheim32770231311550 2814KleinMannheim327702311324100 1324SchmittHeidelberg35761235311550 1324SchmittHeidelberg35770008281470 1324SchmittHeidelberg35770114281430 1324SchmittHeidelberg35770231311550 1324SchmittHeidelberg357702311324100 SELECT FROM WHERE P-NR, NAME angestellte a, ang-pro ap a.ANG-NR=ap.ANG-NR AND PROZ-ARBZEIT=50; ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe35 2814 KleinMannheim32 1324SchmittHeidelberg35 P-NRANG-NRPROZ-ARBZEIT 761235311550 770008281470 770114281430 770231311550 7702311324100 (kartesisches Produkt) Ergebnis: P-NRNAME 761235Meyer 770231Meyer

6 SQL - Structured Query Language  AIFB SS 2001 6 Beispiel für Abfragen mit Join (allgemein  -Join) SELECT FROM WHERE P-NR, NAME angestellte, projekt ANG-NR <> P-LEITER; ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe35 2814 KleinMannheim32 1324SchmittHeidelberg35 (kartesisches Produkt) P-NAMEP-NRP-FILIALEP-LEITER p-1761235Karlsruhe3115 p-2770008Karlsruhe3115 p-3770114Heidelberg1324 P-4770231Mannheim2814 ANG-NRNAMEWOHNORTABT-NRP-NAMEP-NRP-FILIALEP-LEITER 3115MeyerKarlsruhe35p-1761235Karlsruhe3115 MeyerKarlsruhe35p-2770008Karlsruhe3115 MeyerKarlsruhe35p-3770114Heidelberg1324 3115MeyerKarlsruhe35P-4770231Mannheim2814 KleinMannheim32p-1761235Karlsruhe3115 2814KleinMannheim32p-2770008Karlsruhe3115 2814KleinMannheim32p-3770114Heidelberg1324 2814KleinMannheim32P-4770231Mannheim2814 1324SchmittHeidelberg35p-1761235Karlsruhe3115 1324SchmittHeidelberg35p-2770008Karlsruhe3115 1324SchmittHeidelberg35p-3770114Heidelberg1324 SchmittHeidelberg35P-4770231Mannheim2814 Ergebnis: P-NRNAME 770114Meyer 770231Meyer 761235Klein 770008Klein 770114Klein 761235Schmitt 770008Schmitt 770231Schmitt

7 SQL - Structured Query Language  AIFB SS 2001 7 Beispiel für Join mit 3 Relationen SELECT FROM WHERE angestellte a, ang-pro ap, projekt p a.ANG-NR=ap.ANG-NR AND ap.P-NR=p.P-NR; P- NAME P-NR P- FILIALE P- LEITER p-1761235Karlsruhe3115 p-2770008Karlsruhe3115 P-NRANG-NRPROZ-ARBZEIT 761235311550 770008281470 ANG-NRNAMEWOHNORT ABT- NR P-NRANG-NR PROZ- ARBZEIT P- NAME P-NR P- FILIALE P- LEITER 3115MeyerKarlsruhe35761235311550p-1761235Karlsruhe3115 MeyerKarlsruhe35761235311550p-2770008Karlsruhe3115 MeyerKarlsruhe35770008281470p-1761235Karlsruhe3115 MeyerKarlsruhe35770008281470p-2770008Karlsruhe3115 2814KleinMannheim32761235311550p-1761235Karlsruhe3115 2814KleinMannheim32761235311550p-2770008Karlsruhe3115 2814KleinMannheim32770008281470p-1761235Karlsruhe3115 2814KleinMannheim32770008281470p-2770008Karlsruhe3115 NAME, P-FILIALE ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe35 2814 KleinMannheim32 ANG-NRNAMEWOHNORT ABT- NR P-NRANG-NR PROZ- ARBZEIT 3115MeyerKarlsruhe35761235311550 3115MeyerKarlsruhe35770008281470 2814KleinMannheim32761235311550 2814KleinMannheim32770008281470 (kartesisches Produkt) (kartesische Produkt) Ergebnis: NAMEP-FILIALE MeyerKarlsruhe KleinKarlsruhe


Herunterladen ppt "SQL - Structured Query Language  AIFB SS 2001 1 (1/3) 2.3.6 Verknüpfung von Relationen (Join)(1/3) Anfragen mit Join („Natural Join“) 22. „Alle Projekte."

Ähnliche Präsentationen


Google-Anzeigen