3 Einzelzeilen-Funktionen
3-2 Ziele Verschiedene Typen von Funktionen, die in SQL verfügbar sind Verwendung von numerischen, Zeichen- und Datumsfunktionen in SQL-Befehlen Verwendung von Konvertierungs- funktionen Verschiedene Typen von Funktionen, die in SQL verfügbar sind Verwendung von numerischen, Zeichen- und Datumsfunktionen in SQL-Befehlen Verwendung von Konvertierungs- funktionen
3-3 SQL Funktionen FunktionInput arg 1 arg 2 arg n Funktion führt Aktion aus OutputErgebnis-wert
3-4 Zwei Typen von SQL-Funktionen Funktionen Einzelzeilen-Funktion Mehrfachzeilen-Funktion
3-5 Einzelzeilen-Funktionen Manipulieren von Datenfelder Akzeptieren Argumente und liefern einen Wert zurück Liefern ein Ergebnis pro Zeile Können Datentyp modifizieren Können geschachtelt werden Manipulieren von Datenfelder Akzeptieren Argumente und liefern einen Wert zurück Liefern ein Ergebnis pro Zeile Können Datentyp modifizieren Können geschachtelt werden function_name (column|expression, [arg1, arg2,...])
3-6 Einzelzeilen-Funktionen Conversion Character Number Date Allgemein Single Row Function
3-7 Zeichen-Funktionen CharacterFunction LOWERUPPERINITCAPCONCATSUBSTRLENGTHINSTRLPAD Groß-/Kleinschreibung (Case Conversion) Zeichenmanipulation
3-8 FunctionResult Groß-/Kleinschreibung Konvertieren von Zeichenketten LOWER( ' SQL Course ' ) UPPER( ' SQL Course ' ) INITCAP( ' SQL Course ' ) sql course SQL COURSE Sql Course
3-9 Anwendung Case Conversion Zeige Nummer, Name und Abteilungs-Nr. des Angestellten Blake. SQL> SELECTempno, ename, deptno 2 FROMemp 3 WHEREename = 'blake'; no rows selected SQL> SELECTempno, ename, deptno 2 FROMemp 3 WHEREename = 'blake'; no rows selected EMPNO ENAME DEPTNO BLAKE 30 EMPNO ENAME DEPTNO BLAKE 30 SQL> SELECTempno, ename, deptno 2 FROMemp 3 WHERE LOWER(ename) = 'blake';
3-10 CONCAT( ' Good ', ' String ' ) SUBSTR( ' String ',1,3) LENGTH( ' String ' ) INSTR( ' String ', ' r ' ) LPAD(sal,10, ' * ' ) GoodString Str 6 3 ******5000 FunktionErgebnis Zeichenmanipulation Manipulation von Zeichenketten
3-11 Anwendung von Zeichenfunktionen SQL> SELECT ename, CONCAT (ename, job), LENGTH(ename), 2 INSTR(ename, 'A') 3 FROM emp 4 WHERE SUBSTR(job,1,5) = 'SALES'; ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A') MARTIN MARTINSALESMAN 6 2 ALLEN ALLENSALESMAN 5 1 TURNER TURNERSALESMAN 6 0 WARD WARDSALESMAN 4 2
3-12 Numerische Funktionen ROUND:Rundet Wert auf bestimmte Anzahl von Dezimalstellen ROUND(45.926, 2)45.93 TRUNC:Schneidet Wert ab auf best. Anzahl von Dezimalstellen TRUNC(45.926, 2) MOD:Liefert Divisionsrest MOD(1600, 300) 100 ROUND:Rundet Wert auf bestimmte Anzahl von Dezimalstellen ROUND(45.926, 2)45.93 TRUNC:Schneidet Wert ab auf best. Anzahl von Dezimalstellen TRUNC(45.926, 2) MOD:Liefert Divisionsrest MOD(1600, 300) 100
3-13 Anwendung der ROUND Funktion SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), 2 ROUND(45.923,-1) 3 FROM DUAL; ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)
3-14 SQL> SELECT TRUNC(45.923,2), TRUNC(45.923), 2 TRUNC(45.923,-1) 3 FROM DUAL; TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1) Anwendung der TRUNC Funktion
3-15 Anwendung der MOD Funktion Berechnet den Rest der Division von Gehalt und Kommission für alle Angestell- ten, die als Verkäufer eingestellt sind. SQL> SELECTename, sal, comm, MOD(sal, comm) 2 FROMemp 3 WHEREjob = 'SALESMAN'; ENAME SAL COMM MOD(SAL,COMM) MARTIN ALLEN TURNER WARD
3-16 Arbeit mit Datumswerten Oracle speichert das Datum in einem internen numerischen Format: Jahrhundert, Jahr, Monat, Tag, Stunde, Minute, Sekunde. Standarddatenformat ist DD-MON-YY. SYSDATE ist eine Funktionn, die aktuelles Datum und Zeit liefert. DUAL ist eine Dummy-Table für die Ausgabe von SYSDATE. Oracle speichert das Datum in einem internen numerischen Format: Jahrhundert, Jahr, Monat, Tag, Stunde, Minute, Sekunde. Standarddatenformat ist DD-MON-YY. SYSDATE ist eine Funktionn, die aktuelles Datum und Zeit liefert. DUAL ist eine Dummy-Table für die Ausgabe von SYSDATE.
3-17 Rechnen mit Datumswerten Addition oder Subtraktion einer Zahl zu / von einem Datum ergibt ein resultie- rendes Datum. Subtrahiere zwei Daten um die Anzahl der Tage zwischen diesen Daten zu ermitteln. Addiere Stunden zu einem Datum durch Division der Anzahl Stunden durch 24. Addition oder Subtraktion einer Zahl zu / von einem Datum ergibt ein resultie- rendes Datum. Subtrahiere zwei Daten um die Anzahl der Tage zwischen diesen Daten zu ermitteln. Addiere Stunden zu einem Datum durch Division der Anzahl Stunden durch 24.
3-18 Arithmetische Operatoren mit Datum SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS 2 FROM emp 3 WHERE deptno = 10; ENAME WEEKS KING CLARK MILLER
3-19 Datumsfunktionen Anzahl Monate zwischen zwei Daten MONTHS_BETWEEN ADD_MONTHS NEXT_DAY LAST_DAY ROUND TRUNC Addiere Kalendermonate zum Datum Nachfolgendes Datum Letzter Tag des Monats Runde Datum Abschneiden Datum FunctionDescription
3-20 MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') Anwendung Datumsfunktionen ADD_MONTHS ('11-JAN-94',6)ADD_MONTHS ('11-JAN-94',6) NEXT_DAY ('01-SEP-95','FRIDAY')NEXT_DAY ('01-SEP-95','FRIDAY') LAST_DAY('01-SEP-95')LAST_DAY('01-SEP-95') '11-JUL-94' '08-SEP-95' '30-SEP-95'
3-21 Anwendung Datumsfunktionen ROUND('25-JUL-95','MONTH') 01-AUG-95ROUND('25-JUL-95','MONTH') 01-AUG-95 ROUND('25-JUL-95','YEAR') 01-JAN-96ROUND('25-JUL-95','YEAR') 01-JAN-96 TRUNC('25-JUL-95','MONTH') 01-JUL-95TRUNC('25-JUL-95','MONTH') 01-JUL-95 TRUNC('25-JUL-95','YEAR') 01-JAN-95TRUNC('25-JUL-95','YEAR') 01-JAN-95
3-22 Konvertierungsfunktionen Implizite Datentyp- Konvertierung Explizite Datentyp- Konvertierung Datentyp-Konvertierung
3-23 Explizite Datentyp-Konvertierung NUMBERCHARACTER TO_CHARTO_NUMBER DATETO_CHAR TO_DATE
3-24 Anwendung TO_CHAR Funktion auf Datum (Beispiel) SQL> SELECTename, 2 TO_CHAR(hiredate, 'fmDD Month YYYY') HIREDATE 3 FROM emp; ENAME HIREDATE KING 17 November 1981 BLAKE 1 May 1981 CLARK 9 June 1981 JONES 2 April 1981 MARTIN 28 September 1981 ALLEN 20 February rows selected.
3-25 Anwendung TO_CHAR Funktion auf Zahlen SQL> SELECTTO_CHAR(sal,'$99,999') SALARY 2 FROMemp 3 WHEREename = 'SCOTT'; SALARY $3,000
3-26 NVL Funktion Konvertiere Null in einen Ersatzwert Mögliche Datentypen: Date, Character, Number. Datatypen müssen passen – NVL(comm,0) – NVL(hiredate,'01-JAN-97') – NVL(job,'No Job Yet') Konvertiere Null in einen Ersatzwert Mögliche Datentypen: Date, Character, Number. Datatypen müssen passen – NVL(comm,0) – NVL(hiredate,'01-JAN-97') – NVL(job,'No Job Yet')
3-27 SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0) 2 FROM emp; Anwendung der NVL Funktion ENAME SAL COMM (SAL*12)+NVL(COMM,0) KING BLAKE CLARK JONES MARTIN ALLEN rows selected.
3-28 Zusammenfassung Funktionen werden genutzt für: Berechnungen auf Daten Änderungen einzelner Daten Veränderung der Ausgabe für mehrere Zeilen Ändern Datumsformat bei Anzeige Konvertierung von Spaltentypen Funktionen werden genutzt für: Berechnungen auf Daten Änderungen einzelner Daten Veränderung der Ausgabe für mehrere Zeilen Ändern Datumsformat bei Anzeige Konvertierung von Spaltentypen
3-29 Übungen Anfragen, die numerische, Zeichen- und Datumsfunktionen anwenden Verkettung mit Funktionen Berechnungen mit Jahren / Monaten (z.B. zur Ermittlung Dienstalter). Anfragen, die numerische, Zeichen- und Datumsfunktionen anwenden Verkettung mit Funktionen Berechnungen mit Jahren / Monaten (z.B. zur Ermittlung Dienstalter).