PL/SQL

download PL/SQL

If you can't read please download the document

description

PL/SQL. Opis funkcji SQL. Funkcje wbudowane. Funkcje wbudowane mają za zadanie umożliwić bardziej zaawansowane operowanie danymi. Funkcje operacji na znakach Funkcje operacji na liczbach Funkcje operacji na datach Funkcje konwersji Funkcje niezależne od typu danych Funkcje grupowe. - PowerPoint PPT Presentation

Transcript of PL/SQL

  • PL/SQLOpis funkcji SQL

    M. Rakowski - WSISiZ

  • Funkcje wbudowaneFunkcje wbudowane maj za zadanie umoliwi bardziej zaawansowane operowanie danymi. Funkcje operacji na znakachFunkcje operacji na liczbachFunkcje operacji na datachFunkcje konwersjiFunkcje niezalene od typu danychFunkcje grupowe

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachASCII( cig znakw ) - Zwraca kod ASCII pierwszej litery w podanym cigu znakw

    Przykad:SELECT ename, ASCII(ename) FROM emp;

    CHR( kod ) - Zwraca znak o podanym kodzie

    Przykady:SELECT CHR( ASCII(ename) ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachINITCAP( cig znakw ) Zwraca cig znakw, w ktrym kade sowo ma du pierwsz liter, a pozostae s mae.Przykad:SELECT ename, INITCAP( ename ) FROM emp;

    INSTR( cig_znakw1, cig_znakw2 [, n [, m]]) Zwraca pozycj m-tego wystpienia cigu_znakw2 w cigu_znakw1, jeli szukanie rozpoczto od pozycji n. Jeeli m jest pominite, to przyjmowana jest warto 1. Jeli n jest pominite, przyjmowana jest warto 1.

    Przykad:SELECT ename, INSTR( ename, LL) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachLENGTH( cig_znakw ) - Zwraca dugo podanego cigu znakw.

    Przykad:SELECT job, LENGTH( job ) FROM emp;

    LOWER( cig_znakw ) - Zamienia wszystkie litery w podanym cigu znakw na mae.

    Przykad:SELECT job, LOWER( job) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachLPAD(cigu znakw 1, n [,cigu znakw 2]) Zwraca cigu znakw 1 uzupeniony do dugoci n lewostronnie cigami znakw ze cigu znakw 2. Jeli cig znakw 2 nie jest podany to przyjmowana jest spacja. Jeli n jest mniejsze od dugoci string1, to zwracane jest n pierwszych znakw z tekstu string1.Przykad:SELECT LPAD( ename, 40 ), LPAD( sal, 20, . ) FROM emp;

    LTRIM(cig znakw [, zbir]) Usuwa litery z tekstu cig znakw od lewej strony a do napotkania litery nie nalecej do tekstu zbir. Jeli zbir nie jest podany to przyjmowany jest cig pusty.Przykad:SELECT LTRIM(LPAD( ename, 40 )), LPAD( sal, 20, . ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachREPLACE(cig znakw, szukany cig znakw [,nowy cig znakw]) Zwraca cig znakw z zamienionym kadym wystpieniem szukanego cigu znakw na tekst nowy cig znakw.

    Przykad:SELECT job, REPLACE( job, MAN, WOMAN ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachRPAD( cig_znakw1,n [, cig_znakw2]) Zwraca cig_znakw1 uzupeniony prawostronnie do dugoci n cigami cig_znakw2. Jeli cig_znakw2 nie jest podany, to przyjmuje si spacj, Jeli n jest mniejsze od dugoci cigu_znakw1, to zwracane jest n pierwszych znakw z tekstu cig_znakw1.

    Przykad:SELECT RPAD( ename, 40, . ), LPAD( sal, 20, . ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachRTRIM(cig_znakw1 [, zbir]) Zwraca cig_znakw1 z usunitymi ostatnimi literami, ktre znajduj si w cigu_znakw zbir. Jeli zbir nie jest podany to przyjmowany jest cig pusty

    Przykad:SELECT RTRIM(RPAD( ename, 40, . ), .)||

  • Funkcje operacji na znakachSUBSTR(cig_znakw , m [, n]) Zwraca podcig z cigu znakw zaczynajcy si na znaku m i o dugoci n. Jeli n nie jest podane, to zwracany jest podcig od znaku m do ostatniego w cigu_znakw. Pierwszy znak w cigu ma numer 1.

    Przykad:SELECT ename, SUBSTR( ename, 1, 3) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje operacji na znakachUPPER( cig_znakw ) Zamienia wszystkie znaki z cigu cig_znakw na due litery.

    Przykad:SELECT Abc, UPPER(Abc ) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na liczbachABS(n) Zwraca warto absolutn liczby n

    Przykad:SELECT hiredate - sysdate, ABS (hiredate - sysdate) FROM emp;

    CEIL(n) Zwraca najmniejsz liczb cakowit wiksz lub rwn n

    Przykad:SELECT CEIL(-1.5), CEIL(1.5) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na liczbachFLOOR(n) Zwraca najwiksz liczb cakowit mniejsz lub rwn n

    Przykad:SELECT FLOOR (-1.5), FLOOR (1.5) FROM dual;

    MOD(m, n) Zwraca reszt z dzielenia liczby m przez n

    Przykad:SELECT MOD( 4/3, 1 ) jedna trzecia FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na liczbachROUND(n[, m]) Zwraca liczb n zaokrglon do m miejsc po przecinku. Jeli m jest pominite, to przyjmuje si 0. Liczba m moe by dodatnia lub ujemna (zaokrglenie do odpowiedniej liczby cyfr przed przecinkiem).

    Przykad:SELECT ROUND (-1.5), ROUND (1.5), ROUND (15, -1) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na liczbachSIGN(n) Zwraca 0, jeli n jest rwne 0, -1 jeli n jest mniejsze od 0, 1 jeli n jest wiksze od 0

    Przykad:SELECT SIGN (-1.5), SIGN (1.5) FROM dual;

    TRUNC(m[, n]) Zwraca m obcite do n miejsc po przecinku. Jeli n nie jest podane, to przyjmuje si 0. Jeli n jest ujemne to obcinane s cyfry przed przecinkiem.

    Przykad:SELECT TRUNC (-1.5), TRUNC(1.5), 15, TRUNC (15, -1) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na datachADD_MONTHS (data, n) - Zwraca podan dat powikszon o podan liczb miesicy n. Liczba ta moe by ujemna

    Przykad:SELECT ADD_MONTHS( SYSDATE, 2) FROM dual;

    LAST_DAY(data) - Zwraca dat bdc ostatnim dniem w miesicu zawartym w podanej dacie.

    Przykad:SELECT LAST_DAY ( SYSDATE ) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na datachMONTHS_BETWEEN (date1, date2) - Zwraca liczb miesicy pomidzy datami data1 i date2. Wynik moe by dodatni lub ujemny. Cz uamkowa jest czci miesica zawierajcego 31 dni.

    Przykad:SELECT MONTHS_BETWEEN( SYSDATE, SYSDATE - 61 ) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na datachNEXT_DAY(data, cig_znakw) Zwraca dat pierwszego dnia tygodnia podanego w cig_znakw, ktry jest pniejszy ni data. Parametr cig_znakw musi by poprawn nazw dnia.

    Przykad:SELECT NEXT_DAY ( SYSDATE, Wtorek ) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na datachROUND(data [, fmt]) Zwraca dat zaokrglon do jednostki zaokrglania podanej w fmt. Domylnie jest to najbliszy dzie. Notacja fmt wsplny dla konwersji / przedstawiania na daty:YYYY, YYY, YY, Y rok (zaokrglenie w wzwy od 1 lipca) MONTH, MON, MM miesic (zaokrglenie w gr od 16 dnia) DD,D dzienp. data 23-11-1999 odpowiada uyciu formatu DD-MM-YYYYPrzykad:SELECT ROUND( SYSDATE, MONTH ) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje operacji na datachSYSDATE Zwraca aktualny czas i dat. Nie wymaga podania argumentw.

    TRUNC(data [, fmt]) Zwraca dat obcit do jednostki podanej w fmt. Domylnie jest to dzie, tzn. usuwana jest informacja o czasie.

    Przykad:SELECT SYSDATE, TRUNC( SYSDATE, 'MONTH' ), TRUNC( SYSDATE ) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje konwersji

    TO_CHAR(n [, fmt]) (konwersja numeryczna) Konwertuje warto numeryczn na znakow uywajc opcjonalnego cigu formatujcego. Jeli cig formatujcy nie jest podany, to warto jest konwertowana tak, by zawrze wszystkie cyfry znaczce.

    9 Liczba '9' okrela wywietlanie cyfry 0 Pokazuje wiodce zera B Wywietla zera jako spacje (nie jako zera) , (przecinek) Wywietla przecinek na podanej pozycji . (kropka) Wywietla kropk na podanej pozycji DWywietla kropk lub przecinek na podanej pozycji

    Przykad:SELECT TO_CHAR(1/3, 0D999999999999999) FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje konwersjiTO_CHAR(d [, fmt]) (konwersja daty) Konwertuje dat na tekst, uywajc podanego formatu.

    M. Rakowski - WSISiZ

  • Funkcje konwersjiTO_DATE(cig_znakw [, fmt]) Przeksztaca cig znakw w dat. Uywa danych aktualnych, jeli nie mog by one odczytane z podanego tekstu. Do konwersji uywany jest podany cig formatujcy lub warto domylna w ramach sesji

    Przykad:SELECT TO_CHAR( SYSDATE, DDMMYYYY) FROM dual;

    TO_NUMBER (cig_znakw) Przeksztaca tekst zawierajcy zapis liczby na liczb

    M. Rakowski - WSISiZ

  • Funkcje niezalene od typu danych

    NVL (wyraenie1/kolumna1, wyraenie/kolumna) Jeli wyraenie1/kolumna1 jest rwne NULL zwraca wyraenie/kolumna, w przeciwnym wypadku zwraca wyraenie1/kolumna1.

    M. Rakowski - WSISiZ

  • Funkcje niezalene od typu danychDECODE (wyraenie/kolumna, przypadek1, wynik1,[...,...,] [ wynik_dla_pozostaych_przypadkw] ) funkcja typu case tj. zwracajca zdeklarowan warto dla okrelonego przypadku.

    Przykad:SELECT DECODE( RTRIM(TO_CHAR( SYSDATE, 'DAY')), 'SOBOTA', 'Jest sobota', RODA', 'Jest roda', 'Inny dzie') FROM dual;

    M. Rakowski - WSISiZ

  • Funkcje niezalene od typu danych

    USER - Zwraca nazw uytkownika

    Przykad:SELECT USER Kim jestem FROM dual;

    SYSDATE Zwraca biec dat i czas

    M. Rakowski - WSISiZ

  • Funkcje grupoweAVG( [DISTINCT | ALL] num) - Zwraca warto redni ignorujc wartoci puste.

    Przykady:SELECT AVG( sal ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje grupoweCOUNT( [DISTINCT | ALL] wyraenie/kolumna) Zwraca liczb wierszy, w ktrych wyraenie/kolumna nie jest rwne NULL. Ponadto DISTINCT zlicza tylko niepowtarzajce si.COUNT(*) Zwraca liczb wierszy w tabeli wczajc powtarzajce si i rwne NULL.

    Przykady:SELECT COUNT(*) FROM emp;

    SELECT COUNT( comm ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje grupoweMAX( [DISTINCT | ALL] wyraenie/kolumna) - Zwraca maksymaln warto wyraenia.

    Przykad:SELECT MAX( hiredate ) FROM emp;

    MIN( [DISTINCT | ALL] wyraenie/kolumna) - Zwraca minimaln warto wyraenia.

    Przykad:SELECT MIN( sal ) FROM emp;

    M. Rakowski - WSISiZ

  • Funkcje grupoweSUM( [DISTINCT | ALL] wyraenie/kolumna) - Zwraca sum wartoci wyraenie/kolumna.

    Przykady:SELECT job, AVG( sysdate-hiredate) FROM empGROUP BY jobORDER BY 2 DESC;

    M. Rakowski - WSISiZ