Funktionen, GROUP BY, HAVING Views anlegen und verwenden

Slides:



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

Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Alternativen und Muster. Alternativen Gegeben ist eine Tabelle in der ein Attribut der Tabelle Buecher Gruppe genannt wurde. So gibt es unter anderem.
SQL als Abfragesprache
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.
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.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
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 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-Datentypen INTEGER
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Datenbanken Mehr als Tabellen.
Datenbankentwicklung IV-LK
Datenbanken Mehr als Tabellen. Datenbank Abfragen mit SQL: Eine Tabelle filtern Tabellen realer Datenbanken können sehr viele Informationen speichern:
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
Einführung in Datenbankmodellierung und SQL
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.
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.
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.
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.
11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Einfache SQL-Befehle Schedule: Timing Topic 40 minutes Lecture
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
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.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Datentypen: integer, char, string, boolean
Darstellung der Relationenalgebra als Programmiersprache
Vorlesung #5 SQL (Teil 2).
Aggregatfunktionen.
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Sichten.
Constraints anlegen und löschen, Data Dictionary Tabellen
Create Table, Rechte und Rollen
Left Join, Right Join, Outer Join
Indexierung Oracle: indexes Indexierung.
Übung 01 Erstellen Sie eine neue Tabelle TBL_Lieferanten
Nutzung und Modellierung von Datenbanken
2.3 Gruppierte Datensätze
(Structured Query Language)
 Präsentation transkript:

Funktionen, GROUP BY, HAVING Views anlegen und verwenden Vertiefung DML, DDL Funktionen, GROUP BY, HAVING Views anlegen und verwenden

Funktionen

Single Row Funktionen Single Row Funktionen können auf alle Werte in einer Spalte angewendet werden. können unter anderem in der SELECT-Liste oder in der WHERE-Bedingung verwendet werden Verändern Anzeige der einzelnen Werte in dieser Spalte und nicht die gespeicherten Daten Funktionsgruppen Numerische Funktionen Character Funktionen Datumsfunktionen NULL-bezogene Funktionen usw. ( vollständige Liste)

Numerische Funktionen FLOOR(n) -- rundet n auf die nächste Ganzzahl ab CEIL(n) -- rundet n auf die nächste Ganzzahl auf ROUND(n,p) -- rundet n auf p Stellen hinter dem Komma ab

Numerische Funktionen Numerische Funktion in der SELECT-Liste Numerische Funktion in der WHERE-Bedingung EMP - Tabelle Abfrageergebnis EMPNO SAL 7782 2450.33 7839 5000.70 7369 800.99 EMPNO FLOOR(SAL) CEIL(SAL) 7782 2450 2451 7839 5000 5001 7369 800 801 SELECT empno, FLOOR(sal), CEIL(sal) FROM emp; EMP - Tabelle Abfrageergebnis EMPNO ENAME SAL 7782 CLARK 2450.33 7839 KING 5000.70 7369 SMITH 800.99 EMPNO ENAME SAL 7369 SMITH 800.99 SELECT empno, ename,sal FROM emp WHERE floor(sal) = 800;

Character-Funktionen UPPER(s) -- wandelt alle Buchstaben der Zeichenkette s in Großbuchstaben um LOWER(s) -- wandelt alle Buchstaben der Zeichenkette s in Kleinbuchstaben um LENGTH(s) -- gibt die Länge der Zeichenkette s zurück SUBSTR(s,p,l) -- Gibt einen Teil der Zeichenkette s zurück: beginnend ab dem Zeichen an Position p werden l Zeichen zurückgegeben

Character-Funktionen Character-Funktion in der SELECT-Liste Character-Funktion in der WHERE-Bedingung Abfrageergebnis EMP - Tabelle ENAME low sub len CLARK clark lar 5 KING king ing 4 SMITH smith mit EMPNO ENAME 7782 CLARK 7839 KING 7369 SMITH SELECT ename, LOWER(ename) low, SUBSTR(ename,2,3) sub, LENGTH(ename) len FROM emp; EMP - Tabelle Abfrageergebnis EMPNO ENAME 7782 CLARK 7839 KING 7369 SMITH EMPNO ENAME 7369 SMITH SELECT empno, ename FROM emp WHERE SUBSTR(ename,1,1) = 'S';

Weitere Funktionen NULL-Wert bezogene Funktionen NVL(a1, a2) -- wenn a1 NULL ist, wird a2 zurückgegeben, wenn a1 nicht NULL ist, wird a1 zurückgegeben Datumsfunktionen TO_CHAR(d, FORMAT) -- wandelt Datum d in Zeichenkette um entsprechend der Formatangabe. TO_DATE(d, FORMAT) -- wandelt String d in ein Datum um entsprechend der Formatangabe

Sonstige Funktionen Funktionen in der SELECT-Liste Funktionen in der WHERE-Clause EMP - Tabelle Abfrageergebnis ENAME dat nulld CLARK 06.81 09.06.81 KING 11.81 17.11.81 SMITH NULL 01.01.00 ENAME HIREDATE CLARK 09.06.81 KING 17.11.81 SMITH NULL SELECT ename, TO_CHAR(hiredate, 'mm.yy') dat, NVL(hiredate,'01.01.1900') nulld FROM emp; EMP - Tabelle Abfrageergebnis ENAME HIREDATE CLARK 09.06.81 KING 17.11.81 SMITH NULL SELECT ename, hiredate FROM emp WHERE TO_CHAR(hiredate,'mm')='06'; ENAME HIREDATE CLARK 09.06.81

Datumsvergleiche in der Where-Bedingung trunc() und to_date() Date in Oracle beinhaltet immer eine Uhrzeit Um diese abzuschneiden, kann die Funktion trunc() verwendet werden Beispiel: Abfrage aller Ausleihvorgänge, die am 01.01.2011 getätigt wurden TO_DATE() Je nach Sessioneinstellungen wird ein anderes Datumsformat verwendet (z.B. erst Monat, dann Tag) und das Datum wird falsch bzw. gar nicht erkannt. Funktion to_date(‘DATUM‘,‘FORMAT‘) legt das Datumsformat fest SELECT * FROM lib_rental WHERE trunc(lend) = ’01.01.2011’; SELECT * FROM lib_rental WHERE trunc(lend) = to_date(’01.01.2011’,’dd.mm.yyyy’);

Aggregatfunktionen

Aggregatfunktionen Aggregatfunktionen werden auf eine Spalte angewendet. Sie fassen mehrere Werte zusammen. Sum(spalte) Summiert alle Werte einer Spalte auf AVG(spalte) Bildet den Durchschnitt über alle Spaltenwerte COUNT(spalte) / COUNT(*) liefert Anzahl der Werte in der Spalte MIN(spalte)/MAX(spalte) gibt den kleinsten/größten Wert in der Spalte zurück

Aggregatfunktion - SUM() SUM(spalte) bildet die Summe über alle ausgewählten Werte in der Spalte Anwendungsbsp: Wie hoch ist das Gesamteinkommen aller Mitarbeiter in Abteilung 10? EMPNO ENAME SAL DEPTNO 7782 CLARK 2450 10 7839 KING 5000 7369 SMITH 800 20 Ergebnis SELECT SUM(sal) FROM emp WHERE deptno = 10; SUM(SAL) 7450 Vergabe eines Alias für die Sum-Spalte Ergebnis SELECT SUM(sal) summe FROM emp WHERE deptno = 10; summe 7450

Aggregatfunktion - AVG() AVG(spalte) bildet den Durchschnitt aller ausgewählten Werte in der Spalte Anwendungsbsp: Wie hoch ist das Durchschnittsgehalt aller Mitarbeiter? EMPNO ENAME SAL DEPTNO 7782 CLARK 2450 10 7839 KING 5000 7369 SMITH 800 20 Ergebnis SELECT AVG(sal) avgSAL FROM emp; avgSAL 2750

Aggregatfunktion - COUNT() COUNT(spalte) gibt die Anzahl aller ausgewählten Werte in der Spalte zurück COUNT(*) gibt die Anzahl aller ausgewählten Datensätze zurück Anwendungsbsp: Wie viele Mitarbeiter arbeiten in Abteilung 10? EMPNO ENAME SAL DEPTNO 7782 CLARK 2450 10 7839 NULL 5000 7369 SMITH 800 20 Anzahl Datensätze Ergebnis SELECT COUNT(*) FROM emp WHERE deptno = 10; COUNT(*) 2 Anzahl Werte für ENAME Ergebnis SELECT COUNT(ename) FROM emp WHERE deptno = 10; COUNT(ename) 1

Aggregatfunktion - MAX()/MIN() MIN(spalte)/MAX(spalte) gibt den kleinsten/größten Wert in dieser Spalte zurück EMPNO ENAME SAL DEPTNO 7782 CLARK 2450 10 7839 KING 5000 7369 SMITH 800 20 Anwendungsbsp: Zeige das höchste/niedrigste Gehalt? Ergebnis SELECT MIN(sal)minSAL, MAX(sal)maxSAL FROM emp; minSAL 800 maxSAL 5000

GROUP BY Gruppiert eine Spalte nach Spaltenwerten Gleiche Werte werden in einer Gruppe zusammengefasst Aggregatfunktion wird dann auf jede Gruppe angewendet Beispiel: Wie viele Bücher gibt es in jeder Kategorie? TITLE CAT_ID YEAR Schwarm 1 2000 Limit 2005 Erlösung 2 2006 Vergebung 2007 Verblendung 2003 Erbarmen 3 2001 SELECT cat_id, COUNT(title) anz FROM lib_book GROUP BY cat_id; COUNT CAT_ID ANZ 1 2 3 COUNT COUNT COUNT GROUP BY

Having Schränkt die Ergebniswerte des Group By ein Wird angewendet auf jede Gruppe Beispiel: In welchen Kategorien gibt es mehr als ein Buch? CAT_ID ANZ 1 2 3 CAT_ID ANZ 1 2 3 HAVING COUNT(title) > 1 SELECT cat_id, COUNT(title) anz FROM lib_book GROUP BY cat_id; SELECT cat_id, COUNT(title) anz FROM lib_book GROUP BY cat_id HAVING COUNT(title) > 1;

Views

SQL Views – Anlegen und Löschen View kann als virtuelle Tabelle angesehen werden Enthält keine Daten, sondern basiert auf einer gespeicherten SQL-Abfrage, die Daten aus einer oder mehreren Tabellen selektiert Ähnlich einer Tabelle kann eine Abfrage auf Views gemacht werden Anlegen Löschen CREATE (OR REPLACE) VIEW vname AS SELECT-STATEMENT; CREATE OR REPLACE VIEW v_book_pub AS SELECT book_id, title, year, pub_name FROM lib_book b INNER JOIN lib_publisher p ON (b.pub_id=p.pub_id); DROP VIEW viewname; DROP VIEW v_book_pub;