SQL Self-Join. Bei der Verbundbildung wird mehr als einmal Bezug auf eine Relation genommen Prinzip der Verbundbildung

Ähnliche Dokumente
Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin

GROUP BY, HAVING und Sichten

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. Komplexe Abfragen. SQL-Komplexe Abfragen. SQL-Komplexe Abfragen. Komplexe Abfragen verknüpfen mehrere Tabellen miteinander.

Es wird empfohlen folgendes Material anzusehen:

SQL als Zugriffssprache

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

4.5 Anfragen mit Mengenoperatoren

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Abfragen (Queries, Subqueries)

Control Questions XML Technologies Blockwoche HS13 Felix Rohrer

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

Wiederholung VU Datenmodellierung

Kapitel 5: Der SQL-Standard

Wir haben folgende Ausprägung der Relation Studenten:

Übung 6. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Wir haben folgende Ausprägung der Relation Studenten:

Wiederholung VU Datenmodellierung

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Übersicht der wichtigsten MySQL-Befehle

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Kapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Kapitel 2: Einstieg in SQL

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

SQL. Structured Query Language

Datenbanksysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2015/16.

Datenmanipulation in SQL (1): Subselect:

Entspricht dem kartesischen Produkt von zwei oder mehr selektierten Tabellen ohne Join-Bedingung.

Induktionsschluss: Sei Q RA eine Anfrage der Relationenalgebra mit n > 0 Operatoren.

Datenbanken und SQL. Kapitel 4. Die Datenbankzugriffssprache SQL. Edwin Schicker: Datenbanken und SQL (4)

Operationen auf Relationen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

Grundlagen Datenbanken Sommersemester 2008

Datenmanipulation in SQL. Select Anweisung

Grundlagen von Datenbanken

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Übungen zur Vorlesung Informationssysteme - Blatt 5

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Ergänzungen zu SQL mit Oracle

Datenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6

SQL. Abfragesprache Datenmanipulation - DML

4. SQL 4-1. Inhalt. 1. Verbunde. 2. Mehr über Vergleiche, weitere Bedingungen. 3. SELECT-Klausel, Duplikate. 4. Nullwerte. 5.

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 9. Übungsblatt 9. Für die Übungen in der Woche vom 17. Juni bis 21.

DATENBANKSYSTEME: SQL

SQL mit ORACLE. Wolf-Michael Kahler

Fortsetzung: Projektion Selektion. NULL Werte

Grundlagen von Datenbanken

Oracle 10g Einführung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

Labor 3 - Datenbank mit MySQL

SQL. Fortgeschrittene Konzepte Auszug

2.5 Structured Query Language (SQL)

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

SQL: Übersicht. SQL (Structured Query Language) ist ANSI und ISO Standard 1975 SEQUEL = Structured English Query Language für System R

3.7 Struktur der Syntax

Kapitel 2: Einstieg in SQL

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

IV. Datenbankmanagement

Datenbanken 6: Normalisierung

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Übungsblatt 5 Lösung

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Kapitel 3: Datenbanksysteme

Tabellen verknüpfen: Joins

Inhalt. Beispiel-Datenbank. Verbunde/Joins (1) Verbunde/Joins (2)

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

Mining über RDBMSe. von. Christian Widmer. Wie gut lässt sich Mining mit SQL realisieren?

Datenbanksysteme SS 2007

Datenorientierte Systemanalyse. 07/05/2013 Axel Polleres

DB-Tuning. Prof. Dr. T. Kudraß 1

Datenbanksysteme Kapitel 5: SQL - Grundlagen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Einführung in Datenbanken. Kapitel 11: Relationale Algebra in SQL

Erzeugung und Veränderung von Tabellen

Stichwortverzeichnis. Iron Werther. Business Intelligence

Die SQL-Select-Anweisung

Termin 12: Datenbanksysteme (2) - Einführung in SQL

DB-Tuning. Tuning des konzeptuellen Schemas

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Transkript:

Self-Join Bei der Verbundbildung wird mehr als einmal Bezug auf eine Relation genommen Prinzip der Verbundbildung Select * From Tabellenname T1, Tabellenname T2; -- T1=T2 Anwendungsbeispiel: Finde die Namen aller Studenten, die an zwei Kursen teilnehmen, die zur gleichen Zeit 1. Schritt: Finde die SID aller Studenten, die an mehr als einem Kurs teilnehmen Select Distinct B1.SNummer From Besucht B1, Besucht B2 WHERE B1.SNummer=B2.SNummer AND B1.VName <> B2.VName; 2. Schritt: Finde die SID aller Studenten, die unterschiedliche Kurse besuchen, die zur gleichen Zeit Select Distinct B1.SNummer From Besucht B1, Besucht B2, Veranstaltung V1, Veranstaltung V2 Where B1.SNummer=B2.SNummer AND B1.VName <> B2.VName AND B1.VName = V1.VName AND B2.VName = V2.VName AND V1.Beginnt_um=V2.Beginnt_um; 3. Schritt: Finde die Namen aller Studenten, die an zwei Kursen teilnehmen, die zur gleichen Zeit Select Distinct S.SName From Student S Where S.SNummer IN (Select B1.SNummer From Besucht B1, Besucht B2, Veranstaltung V1, Veranstaltung V2 Where B1.SNummer=B2.SNummer AND B1.VName <> B2.VName AND B1.Vname = V1.VName AND B2.Vname = V2.VName AND V1.Beginnt_um=V2.Beginnt_um); Seite 1

IN Auswahloperator Spaltenname IN (SFW-Anweisung) Vergleichsbedingung ist erfüllt, sobald der Wert von Spaltenname mit mindestens einem der Werte aus der Subauswahl übereinstimmt Liefert die Subauswahl eine leere Menge zurück, so ist die Auswahlbedingung nicht zutreffend ANY Auswahloperator Spaltenname Vergleichsoperation ANY (SFW-Anweisung) Ist die Vergleichsbedingung bei mindestens einem Wert aus der Subauswahl erfüllt, so wird aktueller Datensatz Bestandteil des Ergebnisses Liefert die Subauswahl eine leere Menge zurück, so ist die Auswahlbedingung nicht zutreffend Seite 2

ALL Auswahloperator Spaltenname Vergleichsoperation ALL (SFW-Anweisung) Ist die Vergleichsbedingung bei allen Werten aus der Subauswahl erfüllt, so wird aktueller Datensatz Bestandteil des Ergebnisses Liefert die Subauswahl keinen Wert zurück, so triff die Auswahlbedingung zu EXISTS EXISTS (SFW-Anweisung) Liefert die Subauswahl ein Ergebnis, so triff die Auswahlbedingung zu (korrelierte Subquery Subauswahl wird für jede Tabellenzeile isoliert ausgewertet) Liefert die Subauswahl keinen Wert zurück, so ist die Auswahlbedingung nicht erfüllt Seite 3

Division von Relationen Anwendung von NOT EXISTS Anwendungsbeispiel: Gesucht werden die Namen aller Studenten, die alle angebotenen Kurse/Veranstaltungen besuchen Gegeben: Gesucht: E / V Relation S Student Relation V Veranstaltung Relation B besucht Relation E - S Natural Join B Effiziente Umsetzung in SQL: 1. Schritt: Finde die SID aller Studenten, die mindestens eine Veranstaltung besuchen Select B.SNummer From Veranstaltung V, Besucht B Where V.VName = B.VName; 2. Schritt: Finde die SID aller Studenten, die mindestens eine Veranstaltung nicht besuchen Select B.SNummer From Besucht B Where not exists ( Select * From Veranstaltung V Where V.VName = B.VName); 3. Schritt: Berechnung aller Studenten, die alle Veranstaltungen besuchen Select Distinct S.SName from Student S Where not exists (Select B.SNummer From Besucht B Where not exists (Select * From Veranstaltung V Where V.VName = B.VName)); Seite 4

Studenten-Datenbank Student SNUMMER SNAME HAUPTFACH SEMESTER SALTER ------------------------------------------------------------------------------------------------------- 101 Karl Biologie 5 25 102 Mayer Mathematik 1 20 103 Schenk Deutsch 14 30 104 Grust Informatik 10 34 105 Mainberger Biologie 4 22 106 Conrad Sport 1 18 Veranstaltung VNAME BEGINNT_U RAUM FID ------------------------------------------------------------------------------------------------------- Grundlagen der Mathematik 10:00 R201 1 Informatik I 12:00 D301 1 Biologie fuer Quereinsteiger 08:00 F345 2 Biologie fuer Fortgeschrittene 08:00 F346 2 Fakultaet FID FNAME ---------------------------------------------- 1 Informatik 2 Biologie 3 Sport besucht SNUMMER VNAME ---------------------------------------------------------- 101 Informatik I 101 Biologie fuer Quereinsteiger 102 Grundlagen der Mathematik 104 Informatik I 104 Grundlagen der Mathematik 104 Biologie fuer Quereinsteiger 105 Biologie fuer Quereinsteiger 105 Grundlagen der Mathematik 105 Biologie fuer Fortgeschrittene 105 Informatik I Seite 5