Copyright Oracle Corporation, 1998. All rights reserved. 6 Unteranfragen (Subqueries)

Slides:



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

PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Inner Joins.
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 Übungen SQL.
IS: Datenbanken, © Till Hänisch 2000 Tabellen In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information,
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
IS: Datenbanken, © Till Hänisch 2000 Übungen SQL.
Entwicklung von XML-Anwendungen mit ORACLE XSU Oberseminar Datenbanken Andreas Rebs, 01INM.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Übung Datenbanksysteme SQL-Anfragen (2)
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
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.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Datenbankentwicklung IV-LK
Wir bauen uns eine Webapplikation!
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)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
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)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
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.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Am Beispiel der Tabelle Crew des Raumschiffes Enterprise
Verdichten von Daten mit Gruppenfunktionen
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Vorlesung #5 SQL (Teil 2).
3 Einzelzeilen-Funktionen. 3-2 Ziele Verschiedene Typen von Funktionen, die in SQL verfügbar sind Verwendung von numerischen, Zeichen- und Datumsfunktionen.
2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT.
Einführung Schedule: Timing Topic 60 minutes Lecture 60 minutes Total.
Integritätsbedingungen (Constraints)
10 Sichten (Views) Ziele Verständnis einer View Erzeugen einer View Lesen von Daten durch eine Sicht Ändern der Definition von Views Einfügen, Ändern.
7 Verändern von Daten. 9-2 Ziele Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen.
11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Einfache SQL-Befehle Schedule: Timing Topic 40 minutes Lecture
Datenbanken abfragen mit SQL
Exotisches SQL Author: Sven Weller.
DOAG Regionaltreffen NRW 10. Juni 2003 TDS Deutschland AG & Co. oHG PIPELINED FUNCTIONS Autor: Karl-Otto Spiecker Vortrag: Bernd Löschner.
IS: Datenbanken, © Till Hänisch 2000 SQL Structured Query Language.
2015 © Trivadis BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 2015 © Trivadis Analytische Funktionen.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Darstellung der Relationenalgebra als Programmiersprache
Vorlesung #5 SQL (Teil 2).
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Left Join, Right Join, Outer Join
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Indexierung Oracle: indexes Indexierung.
Nutzung und Modellierung von Datenbanken
(Structured Query Language)
 Präsentation transkript:

Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)

6-2 Ziele Welche Probleme können mit Sub- queries gelöst werden Definition von Subqueries Typen von Subqueries kennenlernen Schreiben von Subqueries Welche Probleme können mit Sub- queries gelöst werden Definition von Subqueries Typen von Subqueries kennenlernen Schreiben von Subqueries

6-3 Anwendung einer Subquery zur Lösug eines Problems Wer hat ein Gehalt, das größer ist als das von Jones? Welche Angestellte hat ein Gehalt, das größer ist als das von Jones? Hauptanfrage ? Wie hoch ist das Gehalt von Jones? ? Unteranfrage

6-4 Subqueries Die Unteranfrage (innere Query) wird einmal vor der Haupt-Query ausgeführt. Das Ergebnis der Subquery wird genutzt durch die Hauptanfrage (äußere Query). Die Unteranfrage (innere Query) wird einmal vor der Haupt-Query ausgeführt. Das Ergebnis der Subquery wird genutzt durch die Hauptanfrage (äußere Query). SELECTselect_list FROMtable WHEREexpr operator (SELECTselect_list FROMtable);

SQL> SELECT ename 2 FROM emp 3 WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); Anwendung Subquery ENAME KING FORD SCOTT ENAME KING FORD SCOTT

6-6 Regeln für den Gebrauch von Subqueries Subqueries in Klammern einschließen. Subqueries auf der rechten Seite des Vergleichsoperators. Keine ORDER BY-Klausel einer Subquery hinzufügen. Single-Row-Operatoren zu Single-Row Subqueries (Vergleich Wert - Wert). Multiple-Row-Operatoren mit Multiple-Row Subqueries (Vergleich Menge-Menge) Subqueries in Klammern einschließen. Subqueries auf der rechten Seite des Vergleichsoperators. Keine ORDER BY-Klausel einer Subquery hinzufügen. Single-Row-Operatoren zu Single-Row Subqueries (Vergleich Wert - Wert). Multiple-Row-Operatoren mit Multiple-Row Subqueries (Vergleich Menge-Menge)

6-7 Typen von Subqueries Single-Row Subquery Main query Subquery liefert CLERK Multiple-Row Subquery CLERKMANAGER Main query Subquery liefert Multiple-Column Subquery CLERK 7900 MANAGER 7698 Main query Subquery liefert

6-8 Single-Row Subqueries Liefern nur eine Zeile (einen Wert) Nutze die passenden Vergleichsoperatoren Liefern nur eine Zeile (einen Wert) Nutze die passenden Vergleichsoperatoren Operator = > >= < <= <> Bedeutung Gleich Größer als Größer gleich Kleiner Kleiner gleich Ungleich

6-9 Single-Row Subqueries ausführen CLERK 1100 ENAME JOB MILLER CLERK ENAME JOB MILLER CLERK SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4(SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8(SELECT sal 9FROMemp 10WHEREempno = 7876);

6-10 Gruppen-Funktionen in einer Subquery 800 ENAME JOB SAL SMITH CLERK 800 ENAME JOB SAL SMITH CLERK 800 SQL> SELECTename, job, sal 2 FROMemp 3 WHEREsal = 4(SELECTMIN(sal) 5FROMemp);

6-11 HAVING Klausel mit Subqueries Der Oracle Server führt zuerst Subqueries aus. Der Oracle Server gibt Ergebnisse in die HAVING Klausel der Haupt-Query zurück. Der Oracle Server führt zuerst Subqueries aus. Der Oracle Server gibt Ergebnisse in die HAVING Klausel der Haupt-Query zurück. 800 SQL> SELECTdeptno, MIN(sal) 2 FROMemp 3 GROUP BYdeptno 4 HAVINGMIN(sal) > 5(SELECTMIN(sal) 6FROMemp 7WHEREdeptno = 20);

6-12 Was geht schief bei diesem Befehl? ERROR: ORA-01427: single-row subquery returns more than one row no rows selected ERROR: ORA-01427: single-row subquery returns more than one row no rows selected SQL> SELECT empno, ename 2 FROM emp 3 WHERE sal = 4(SELECT MIN(sal) 5FROM emp 6GROUP BY deptno); Single-row operator with multiple-row subquery

6-13 Funktioniert dieser Befehl? no rows selected Subquery returns no values SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4(SELECTjob 5FROMemp 6WHEREename='SMYTHE');

6-14 Multiple-Row Subqueries Liefern mehr als eine Zeile Nutzen multiple-row Vergleichsoperatoren: Liefern mehr als eine Zeile Nutzen multiple-row Vergleichsoperatoren: Operator IN ANY ALL Bedeutung Entspricht einem Mitglied der Liste. Vergleiche Wert mit jedem Wert aus der Subquery Vergleiche Wert mit jedem Wert, den die Subquery liefert

6-15 Anwendung des IN-Operators SQL> SELECT ename, sal, deptno 2 FROM emp 3 WHERE sal IN 4(SELECTMIN(sal) 5FROMemp 6GROUP BY deptno); ENAME SAL DEPTNO ADAMS JAMES MILLER ENAME SAL DEPTNO ADAMS JAMES MILLER

6-16 Anwendung des ANY Operator in Multiple-Row Subqueries EMPNO ENAME JOB MARTIN SALESMAN 7521 WARD SALESMAN EMPNO ENAME JOB MARTIN SALESMAN 7521 WARD SALESMAN SQL> SELECT empno, ename, job 2 FROM emp 3 WHERE sal < ANY 4(SELECTsal 5 FROMemp 6WHEREjob = 'CLERK') 7 AND job <> 'CLERK';

6-17 Anwendung des ALL Operator in Multiple-Row Subqueries EMPNO ENAME JOB KING PRESIDENT 7566 JONES MANAGER 7902 FORD ANALYST 7788 SCOTT ANALYST EMPNO ENAME JOB KING PRESIDENT 7566 JONES MANAGER 7902 FORD ANALYST 7788 SCOTT ANALYST SQL> SELECT empno, ename, job 2 FROM emp 3 WHERE sal > ALL 4 (SELECTavg(sal) 5 FROMemp 6GROUP BYdeptno);

6-18 Zusammenfassung Subqueries sind sinnvoll, wenn eine Anfrage auf unbekannten Werten basiert. SELECTselect_list FROMtable WHEREexpr operator (SELECT select_list FROM table);