Abfragesprache SQL in ORACLE

Slides:



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

Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SQL als Abfragesprache
Auswertung im GTDS fixe Abläufe für Standard-Aufgaben Mamma-Auswertung
Datensicherheit in DBMS
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],
Übung Datenbanksysteme SQL-Anfragen (2)
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
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.
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
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 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
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.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
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.
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.
1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert.
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)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Einfache SQL-Befehle Schedule: Timing Topic 40 minutes Lecture
Datenbank für Skriptenverkauf
PHPmyadmin Maya Kindler 6c.
Datenbanken abfragen mit SQL
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
SQL Basics Schulung –
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Darstellung der Relationenalgebra als Programmiersprache
Aggregatfunktionen.
Vorlesung #6 SQL (Teil 3).
SQL Join.
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Constraints anlegen und löschen, Data Dictionary Tabellen
Create Table, Rechte und Rollen
Left Join, Right Join, Outer Join
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Templates
Datenbank WI WAHB12 Carolin & Sarah.
Übung 01 Erstellen Sie eine neue Tabelle mit dem Namen: TBL_Lieferanten Diese Felder soll die Tabelle erhalten: Lieferanten Nummer Name Adresse PLZ Ort.
Übung 01 Erstellen Sie eine neue Tabelle TBL_Lieferanten
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
Nutzung und Modellierung von Datenbanken
2.3 Gruppierte Datensätze
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
(Structured Query Language)
 Präsentation transkript:

Abfragesprache SQL in ORACLE Vertiefung Abfragesprache SQL in ORACLE

Literatur Oracle Online-Dokumentation – Database Administration http://docs.oracle.com/database/121/nav/portal_4.htm Database SQL Language Reference Database SQL Language Quick Reference

AGENDA Wiederholung Transaktionen in SQL DML – Vertiefung 2.1 Join und Union 2.2 Unterabfragen 2.3. Funktionen

Wiederholungs-Übungen Im folgenden Skript werden die Beispiel-Tabellen Vertreter, Verkauf und Artikel verwendet. Führe das SQL-Skript dbVertreter.sql in SQLPlus aus, um die Tabellen anzulegen und mit Beispieldaten zu füllen. Mache dich mit den Tabellen vertraut bzgl.: - Spalten und Datentypen - Beziehung der Tabellen zueinander - Datensätzen in den Tabellen und was diese bedeuten Zeige alle Vertreter mit Namen und VNR an, die eine Provision von weniger als 7% erhalten. Bei welchen Artikeln (Name und Artikelnummer) liegt der Preis über 100?

Wiederholungs-Übung Zeige alle Vertreter an, die vor dem 01.01.1980 geboren sind und deren Name ein i beinhaltet. Füge dich als Vertreter in die Tabelle Vertreter ein mit einer Provision von 6% und der Mitarbeiternummer 7777. Füge für deinen Vertreter einen Verkauf mit UNR 1014 hinzu. Der neue Datensatz soll abbilden, dass heute 22 Wintermäntel vom Vertreter mit VNR 7777 verkauft wurden. Ändere den Preis eines Stiefels auf 88,90. Füge der Tabelle Vertreter eine Spalte bonus hinzu, in die ein bis zu vierstelliger, ganzzahliger Wert eingetragen werden soll. Setze den Bonus für alle Vertreter auf 500. Ändere den Datentyp für die Spalte vname in der Tabelle vertreter auf VARCHAR2(20); An welchen Tagen wurden Verkäufe getätigt? Erzeuge folgende Ausgabe: DATUM ------------- 27.06.15 28.06.15

1. Transaktionen

Transaktion Eine Transaktion umfasst eine Reihe von SQL-Statements (Update, Insert..), die als Einheit ausgeführt werden (ganz oder gar nicht) Transaktion besitzt ACID-Eigenschaften A Atomicity  alles oder nichts C Consistency  Transaktion überführt einen konsistenten DB- Zustand in einen ebenfalls konsistenten DB-Zustand I Isolation  Transaktion läuft isoliert ab D Durability  Ergebnisse einer Transaktion werden dauerhaft in DB gespeichert

Transaktionssteuerung Transaktionen können in SQL mit einem COMMIT/ROLLBACK-Befehl gesteuert werden COMMIT Alle Operationen (Update, Insert..) werden in der Datenbank dauerhaft gespeichert ROLLBACK Alle Operationen werden rückgängig gemacht und nicht in der Datenbank gespeichert

Join, Union und Aggregatfunktionen 2. DML-Vertiefung Join, Union und Aggregatfunktionen

2.1 JOIN und UNION

Tabellen-Join Daten werden oft auf mehrere Tabellen verteilt, um Redundanzen zu vermeiden (siehe Normalisierung) Um diese verteilten Daten in einer SELECT-Abfrage wieder vereinigt anzuzeigen, werden die Tabellen über einen so genannten JOIN-Befehl verbunden Man unterscheidet unter anderem zwischen INNER JOIN OUTER JOIN LEFT JOIN RIGHT JOIN

Tabellen-Join Bisher wurden aus den Select-Statements in der Übung nur Daten aus der Tabelle Emp ausgewählt. Ziel ist es jetzt, zu einem Mitarbeiter Namen, Empno, Dname und Loc anzuzeigen Die Verbindung der Tabelle EMP zur Tabelle DEPT kann über DEPTNO hergestellt werden. DEPTNO DNAME LOC 20 RESEARCH DALLAS 30 SALES CHICAGO EMPNO ENAME …. DEPTNO 7369 SMITH ..- 20 7499 ALLEN … 30

INNER JOIN EMP DEPT JOIN Ergebnis SELECT * FROM emp INNER JOIN dept ON emp.deptno = dept.deptno; EMP DEPT EMPNO ENAME …. DEPTNO 7782 CLARK … 10 7839 KING 7369 SMITH ..- 20 7499 ALLEN 30 7902 FORD NULL DEPTNO DNAME LOC 10 ACCOUNTING DALLAS 20 RESEARCH 30 SALES CHICAGO 40 OPERATIONS BOSTON JOIN Ergebnis EMPNO ENAME …. DEPTNO DNAME LOC 7782 CLARK … 10 ACCOUNTING DALLAS 7839 KING 7369 SMITH ..- 20 RESEARCH 7499 ALLEN 30 SALES CHICAGO INNER JOIN liefert nur Datensätze, bei denen Deptno links einer Deptno rechts zugeordnet werden kann und fügt diese zusammen.

LEFT JOIN EMP DEPT JOIN Ergebnis SELECT * FROM emp LEFT OUTER JOIN dept ON emp.deptno = dept.deptno; EMP DEPT EMPNO ENAME …. DEPTNO 7782 CLARK … 10 7839 KING 7369 SMITH ..- 20 7499 ALLEN 30 7902 FORD NULL DEPTNO DNAME LOC 10 ACCOUNTING DALLAS 20 RESEARCH 30 SALES CHICAGO 40 OPERATIONS BOSTON JOIN Ergebnis EMPNO ENAME …. DEPTNO DNAME LOC 7782 CLARK … 10 ACCOUNTING DALLAS 7839 KING 7369 SMITH ..- 20 RESEARCH 7499 ALLEN 30 SALES CHICAGO 7902 FORD NULL LEFT JOIN liefert alle Datensätze der linken Tabelle und nur Datensätze der rechten Tabelle, wenn eine DEPTNO links einer DEPTNO rechts entspricht.

RIGHT JOIN EMP DEPT JOIN Ergebnis SELECT * FROM emp RIGHT OUTER JOIN dept ON emp.deptno = dept.deptno; EMP DEPT EMPNO ENAME …. DEPTNO 7782 CLARK … 10 7839 KING 7369 SMITH ..- 20 7499 ALLEN 30 7902 FORD NULL DEPTNO DNAME LOC 10 ACCOUNTING DALLAS 20 RESEARCH 30 SALES CHICAGO 40 OPERATIONS BOSTON JOIN Ergebnis EMPNO ENAME …. DEPTNO DNAME LOC 7782 CLARK … 10 ACCOUNTING DALLAS 7839 KING 7369 SMITH ..- 20 RESEARCH 7499 ALLEN 30 SALES CHICAGO NULL 40 OPERATIONS BOSTON RIGHT JOIN liefert alle Datensätze der rechten Tabelle und nur Datensätze der linken Tabelle, wenn eine DEPTNO rechts einer DEPTNO links entspricht.

OUTER JOIN EMP DEPT JOIN Ergebnis SELECT * FROM emp FULL OUTER JOIN dept ON emp.deptno = dept.deptno; EMP DEPT EMPNO ENAME …. DEPTNO 7782 CLARK … 10 7839 KING 7369 SMITH ..- 20 7499 ALLEN 30 7902 FORD NULL DEPTNO DNAME LOC 10 ACCOUNTING DALLAS 20 RESEARCH 30 SALES CHICAGO 40 OPERATIONS BOSTON JOIN Ergebnis EMPNO ENAME … DEPTNO DNAME LOC 7782 CLARK 10 ACCOUNTING DALLAS 7839 KING 7369 SMITH 20 RESEARCH 7499 ALLEN 30 SALES CHICAGO 7902 FORD NULL 40 OPERATIONS BOSTON Outer JOIN liefert alle Datensätze beider Tabellen und verbindet Datensätze, wenn Deptno links einer Deptno rechts zugeordnet werden kann.

Tabellenalias Enthalten zwei verbundene Tabellen gleiche Spaltennamen, muss bei der Auswahl der Spalten im SELECT-Statement die Tabelle angegeben werden, in der sich die Spalte befindet Beispiel: Spalten NAME und DEPTNO sind in beiden Tabellen vorhanden JOIN ÜBER DEPTNO EMPNO NAME …. DEPTNO 7782 CLARK … 10 7839 KING EMPNO NAME DEPTNO LOC 7782 CLARK 10 ACCOUNTING DALLAS 7839 KING EMP DEPTNO NAME LOC 10 ACCOUNTING DALLAS DEPT SELECT emp.name, dept.name FROM emp INNER JOIN dept ON emp.deptno = dept.deptno; Angabe des Tabellennamens vor der Spalte SELECT e.name, d.name FROM emp e INNER JOIN dept d ON e.deptno=d.deptno; Alternativ kann für die Tabellen ein Alias vergeben werden

UNION Über den UNION-Befehl können Datensätze mehrerer Abfragen in einem Ergebnis zusammengefasst werden Dabei werden mehrfach vorhandene Datensätze entfernt (alternativ UNION ALL: ohne Unterdrückung mehrfach vorkommender Datensätze) Dazu müssen Datentypen und Anzahl der Spalten beider Abfragen gleich sein Beispiel: Es liegen zwei Tabellen EMPA und EMPB vor, in denen Mitarbeiterdaten für zwei Unternehmensbereiche separat erfasst werden EMPA Ergebnis EMPNO ENAME HIREDATE SAL 7782 CLARK 03.03.1980 2300 7839 KING 01.01.1980 1500 7369 SMITH 02.02.1981 1700 ENAME SAL CLARK 2300 KING 1500 SMITH 1700 ALLEN 3500 FORD 2800 SELECT ename, sal FROM empa UNION SELECT name, salary FROM empb EMPB EMPNO NAME HDATE SALARY 7499 ALLEN 15.03.1983 3500 7902 FORD 01.05.1991 2800

Übung Löse folgende Aufgaben durch JOIN der Tabellen Erzeuge eine Ausgabe, in der jeder Vertreter (VNr und VName) mit all seinen Verkäufen (Datum, Anzahl und ANR) gelistet wird. Reduziere die Ausgabe aus Aufgabe 1 auf Vertreter und ihre Verkäufe, bei denen mehr als 10 Artikel verkauft wurden Ergänze die Ausgabe aus Aufgabe um den Namen und den Preis der jeweils verkaufen Artikel. Verwende dazu zwei JOIN-Befehle wie unten dargestellt SELECT … FROM tabA INNER JOIN tabB ON (JOIN-Bedingung) INNER JOIN tabC ON (JOIN-Bedingung); Zeige für den Verkäufer mit VNR 1010 alle Verkäufe (Anzahl, Datum) an, die sich auf Stiefel oder Wintermäntel beziehen und am 27.06.2015 getätigt wurden.

2.2 Unterabfragen

Unterabfragen – Rückgabe eines Wertes In einer Abfrage kann eine weitere Abfrage geschachtelt werden  Unterabfrage Anwendungsbsp: Ausgabe aller Mitarbeiter, die in CLARKS Abteilung sind EMPNO ENAME …. DEPTNO 7782 CLARK … 10 7839 KING Option A In welcher Abteilung ist CLARK? SELECT DEPTNO FROM emp WHERE ENAME = ‘CLARK‘;  DEPTNO 10 Welche Mitarbeiter sind in Abteilung 10? SELECT EMPNO, ENAME FROM emp WHERE deptno = 10; Option B Welche Mitarbeiter sind in CLARKS Abteilung? Im WHERE-Bereich wird 10 durch eine Abfrage ersetzt, die die DEPTNO für CLARK zurückliefert SELECT empno, ename FROM emp WHERE deptno= ( SELECT DEPTNO FROM emp WHERE ename = ‘CLARK‘ ); 1 Unterabfrage muss wie hier genau einen Wert zurückliefern, dann können Vergleichsoperatoren =, <, >, <=, >= verwendet werden

Unterabfragen – Rückgabe mehrerer Werte Liefert die Unterabfrage eine Liste von Werten zurück, kann mit dem IN-Operator die Gleichheit mit einem Wert aus der Liste geprüft werden EMPNO ENAME … DEPTNO 7782 CLARK 10 7839 KING 7369 SMITH 20 7788 SCOTT Anwendungsbsp: Ausgabe aller Mitarbeiter, die in SMITHS oder CLARKS Abteilung sind Option A In welcher Abteilung sind Smith und CLARK? SELECT DEPTNO FROM emp WHERE ENAME IN (‘CLARK‘,‘SMITH‘);  DEPTNO 10, 20 Welche Mitarbeiter sind in Abteilung 10? SELECT EMPNO, ENAME FROM emp WHERE deptno IN (10,20); Option B Welche Mitarbeiter sind in SCOTTS Abteilung? SELECT empno, ename FROM emp WHERE deptno IN ( SELECT DEPTNO FROM emp WHERE ename IN (‘CLARK‘,‘SMITH‘));

Übung Löse folgende Aufgaben mit Hilfe von Unterabfragen. Zeige alle Vertreter (VNR, VNAME) an, die bereits Artikel mit der ANR 13 verkauft haben. Zeige alle Artikel (ANR, ANAME) an, die der Vertreter mit der VNR 4321 am 27.06.2015 verkauft hat. Zeige alle Vertreter (VNR, VNAME) an, die bereits Artikel verkauft haben, deren Preis über 100 € liegt. Zeige alle Vertreter, die noch nie den Artikel mit der ANR 22 verkauft haben Welche Vertreter (vnr) haben am 27.06.2015 mehr Artikel mit ANR 12 verkauft als der Vertreter mit VNR 4321?

2.3 Funktionen

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(*) 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

Übung Für folgende Aufgaben werden die Tabellen Vertreter, Verkauf und Artikel verwendet. Wie viel kostet der teuerste Artikel? Wie hoch ist die durchschnittliche Provision aller Vertreter? Wie viele Artikel hat der Vertreter Mueller insgesamt verkauft? Wie viele Wintermäntel hat der Vertreter Jahred insgesamt verkauft? Wessen Provision liegt über der durchschnittlichen Provision aller Vertreter? Tipp: Nutze hier eine Unterabfrage, um den Durchschnitt aller Vertreter zu ermitteln

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 SQRT(n) -- gibt die Quadratwurzel aus n zurück

Numerische Funktionen Numerische Funktion in der SELECT-Liste Numerische Funktion in der WHERE-Clause 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-Clause 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 LAST_DAY(d) -- gibt das Datum für den letzten Tag des Monats zurück der das Datum d beinhaltet TO_CHAR(d, FORMAT) -- wandelt Datum d in Zeichenkette um entsprechend der Formatangabe.

Sonstige Funktionen Funktionen in der SELECT-Liste Funktionen in der WHERE-Clause EMP - Tabelle Abfrageergebnis ENAME dat last nulld CLARK 06.81 30.06.81 09.06.81 KING 11.81 30.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, LAST_DAY(hiredate) last, NVL(hiredate,'01.01.1900') nulld FROM emp; EMP - Tabelle Abfrageergebnis ENAME HIREDATE CLARK 09.06.81 KING 17.11.81 7369 SMITH SELECT ename, hiredate FROM emp WHERE TO_CHAR(hiredate,'mm')='06'; ENAME HIREDATE CLARK 09.06.81

Übung Zeige alle Vertreter mit Namen und VNR an, deren Name länger als 6 Zeichen ist Zeige alle Vertreter, die im Juli oder im Mai geboren sind Erzeuge folgende Ausgabe.: VNR VNAME_UP PROV_GRD ----- -------------------- ------------------ 1010 MUELLER ,1 3401 SCHMITZ ,1 5337 RITSCH ,1 4321 JAHRED 0 Zeige alle Artikel an, die mit ‘Wi‘ beginnen. Löse diese Aufgabe mit der substr()-Funktion.

Übung 5. Erzeuge folgende Ausgabe: VNR VNAME DAT ------- -------------------- ----------- 1010 Mueller 03-05 3401 Schmitz 15-08 5337 Ritsch 23-07 4321 Jahred 27-12 6. Zeige alle Vertreter (VNR, Vname) an, die im selben Jahr geboren sind wie der Vertreter Jahred. 7. Erhöhe bei den Vertretern den Bonus um 300, die in einem Monat geboren sind, der 31 Tage hat.