SQL - Structured Query Language AIFB SS 2001 1 (1/9) 2.3.7 Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Bauinformatik II Softwareanwendungen 1
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Kapitel 3: Das Relationenmodell
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Inner Joins.
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Das Relationenmodell 1.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Übung Datenbanksysteme SQL-Anfragen (2)
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Einführung Dateisystem <-> Datenbanksystem
© Katharina Brachmann Einfache Datenbankabfragen Buch S81ff (Informatik I, Oldenbourg-Verlag)
Univariate Statistik M. Kresken.
Rel-Modell Relationenspezifische Operationen (3|21) (B) Selektion: Auswahl von Tupeln sei b = geeignete Bedingung (Selektionsbedingung):
SQL - Structured Query Language AIFB SS (2/9) Anfragen mit Bedingungen ( )(2/9) angestellte ANG-NRNAMEWOHNORTABT-NR 3115 MeyerKarlsruhe35.
2.2 Definition eines Datenbankschemas (SQL-DDL)
SQL - Structured Query Language AIFB SS (1/7) Verknüpfung von Relationen mit Subqueries (1/7) 32. Namen aller Angestellten, die mit 100 %
SQL - Structured Query Language AIFB SS (1/3) Bildung von Gruppen (Group)(1/3) Zusammenfassung von Zeilen mit demselben Wert in einer vorgegebenen.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
SQL Überblick Abfragen aus einer Tabelle
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Datenbanksysteme für hörer anderer Fachrichtungen
7.3.1 Ein Modellierungsbeispiel (1|9)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Mengenoperationen (1/3)
Großer Altersunterschied bei Paaren fällt nicht auf!
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Analyseprodukte numerischer Modelle
Semantische Integritätsbedingungen AIFB SS assert-Klausel (2/6) Beispiel 3-2: Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez).
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Structured Query Language
Erste Einführung in SQL
Structured Query Language
Der Erotik Kalender 2005.
Grundlagen des Relationenmodells
Wiederholung Der wichtigste Befehl zur Datenmanipulation lautet:
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Rel-Modell Schema (3|8) Beispiel 8-12: Rel. Datenbank-Schema (beispielhaft) für eine rel. DB mit den Relationen angestellte1, projekt1.
Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).
1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert.
Tupelkalkül: Notation (1)
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Einführung Dateisystem <-> Datenbanksystem
Relationentheorie  AIFB SS Semantische Integritätsbedingungen (1|7) Eine „semantische Integritätsbedingung“ (sIB)  über der Attributmenge.
SQL - Structured Query Language  AIFB SS (1/3) Verknüpfung von Relationen (Join)(1/3) Anfragen mit Join („Natural Join“) 22. „Alle Projekte.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Rel-Modell Modellierung der Realwelt im relationalen Datenmodell (1|5) Beispiel 8-5: Objekte:Angestellte, Projekte Beziehungen:Angestellte.
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
SQL - Structured Query Language  AIFB SS (1/6) Spezielle Anfragen an eine Relation(1/6) projekt P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
Vorlesung #6 SQL (Teil 3).
SQL Join.
Left Join, Right Join, Outer Join
SQL Join.
 Präsentation transkript:

SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN | [NATURAL] [INNER] JOIN | UNION JOIN SQL-92 bietet Operatoren zur direkten Darstellung von Joins an. Es können sowohl mit SELECT hergeleitete Tabellen in der Form: (SELECT … FROM … WHERE …) join-op (SELECT … FROM … WHERE …) [join-spec]; als auch Basis-Tabellen in der Form: SELECT … FROM table join-op table [join-spec] WHERE … miteinander verbunden werden.

SQL - Structured Query Language AIFB SS (2/9) Join-Operationen in SQL-92(2/9) table1 CROSS JOIN table2 berechnet das Kartesische Produkt und entspricht SELECT * FROM table1, table2 Natural Join: Die Verwendung des Schlüsselworts NATURAL führt zur Berechnung des Natural Join. Wenn nicht alle Attribute mit gleichem Namen in die Join-Bedingung eingehen sollen, kann dies mit join-spec := USING (column-list) auf die angegebenen Attribute eingeschränkt werden. Kartesisches Produkt:

SQL - Structured Query Language AIFB SS (3/9) Join-Operationen in SQL-92(3/9) Ein Theta-Join wird mit INNER JOIN (oder nur JOIN) durchgeführt, wobei die Join-Bedingung mit join-spec := ON predicate angegeben wird (predicate entspricht der Klausel, die nach WHERE in einer SELECT-Anfrage angegeben werden kann) Outer-Join: Sämtliche Variationen des Outer-Join (FULL, LEFT, RIGHT) können formuliert werden. Dabei kann entweder ein – Natural-Join (NATURAL, opt. USING-Klausel) oder ein – Theta-Join (ON-Klausel) durchgeführt werden. Das Schlüsselwort OUTER ist optional, sollte aber aus Gründen der Leserlichkeit benutzt werden. Theta-Join:

SQL - Structured Query Language AIFB SS (4/9) Join-Operationen in SQL-92(4/9) Der Union-Join kann mit Hilfe des Schlüsselworts UNION JOIN durchgeführt werden. Bemerkung: Die Join-Operationen in SQL-92 können zwar auch mit früheren SQL- Versionen formuliert werden, allerdings z.T. nur sehr umständlich. Die neuen Schlüsselworte dienen der verbesserten Lesbarkeit; insbesondere die WHERE-Klausel wird dadurch von Join-Bedingungen entlastet. Union-Join:

SQL - Structured Query Language AIFB SS (5/9) Join-Operationen in SQL-92(5/9) 27. (Beispiel 22, S.41, Natural Join) Alle Projekt mit den Informationen der zugehörigen Angestellten. SELECT P-NR, a.ANG-NR, NAME, WOHNORT, ABT-NR, PROZ-ARBZEIT FROM angestellte a, ang-pro ap WHERE a.ANG-NR=ap.ANG-NR; In SQL-92: SELECT P-NR, NAME FROM angestellte NATURAL JOIN ang-pro; Beispiel 2-3 (Umformulierung der Bsp )

SQL - Structured Query Language AIFB SS (6/9) Join-Operationen in SQL-92(6/9) 28. (Beispiel 23, S.41, Join mit Auswahlbedingung)Alle Projekt-Nummern mit den Namen derjenigen Angestellten, die zu 50% mitarbeiten. SELECT P-NR, NAME FROM angestellte a, ang-pro ap WHERE a.ANG-NR=ap.ANG-NR AND PROZ-ARBZEIT=50; In SQL-92: SELECT P-NR, NAME FROM angestellte NATURAL JOIN ang-pro WHERE PROZ-ARBZEIT = 50; oder SELECT P-NR, NAME FROM angestellte INNER JOIN ang-pro ON (angestellte.ANG-NR=ang-pro.ANG-NR AND PROZ-ARBZEIT=50); Beispiel 2-3 (Umformulierung der Bsp )

SQL - Structured Query Language AIFB SS (7/9) Join-Operationen in SQL-92(7/9) 29. (Beispiel 24, S.42, allgemein -Join)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 P-NR, NAME FROM angestellte, projekt WHERE ANG-NR <> P-LEITER; In SQL-92: SELECT P-NR, NAME FROM angestellte JOIN projekt ON (ANG-NR <> P-LEITER); Beispiel 2-3 (Umformulierung der Bsp )

SQL - Structured Query Language AIFB SS (8/9) Join-Operationen in SQL-92(8/9) 30. (Beispiel 25, S.42, Join mit 3 Relationen)Gib für jeden Angestellten seinen Namen, sowie die Projekt-Filialen der Projekte an, an denen er mitarbeitet. SELECT NAME, P-FILIALE FROM angestellte a, ang-pro ap, projekt p WHERE a.ANG-NR=ap.ANG-NR AND ap.P-NR=p.P-NR; In SQL-92: SELECT NAME, P-FILIALE FROM angestellte NATURAL JOIN ang-pro NATURAL JOIN projekt; Beispiel 2-3 (Umformulierung der Bsp )

SQL - Structured Query Language AIFB SS (9/9) Join-Operationen in SQL-92(9/9) 31. (Beispiel 26, S.43, Join mit derselben Relation)Suche Paare von (unterschiedlichen) Angestellten, die in der selben Stadt wohnen. (Das Ergebnis sollte keine redundanten Angaben enthalten) SELECT a.NAME A-NAME, b.NAME B-BNAME FROM angestellte a,angestellte b WHERE a.WOHNORT=b.WOHNORT AND a.NAME<b.NAME; In SQL-92 SELECT a.NAME, b.NAME FROM (angestellte a) NATURAL JOIN (angestellte b) USING (WOHNORT) WHERE a.NAME < b.NAME; Beispiel 2-3 (Umformulierung der Bsp )