Download - PL/SQL

Transcript
  • 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