Title: Slajd 1
1Funkcje znakowe
ASCII(znak IN VARCHAR2) RETURN INTEGER zwraca wartosc numeryczna kod ascii znaku
CHAR(n Integer) zwraca znak odpowiadajacy kodowi n
CONCAT(tekst1, tekst2) zwraca tekst bedacy polaczeniem tekst1 i tekst2
INITCAP(tekst) Zwraca tekst w, którym pierwsza litera kazdego wyrazu jest litera wielka a wszystkie pozostale malymi
INSTR(tekst1, tekst2, pozycja1, krotnosc1) zwraca pozycje znaku n-krotnego wystapienia lancucha tekst2 w tekst1. Ujemna wartosc pozycja wymusza wyszukiwanie od konca.
LENGTH(tekst) zwraca dlugosc lancucha tekst
LOWER(tekst) Zwraca tekst ze wszystkimi malymi literami
LPAD(Tekst IN VARCHAR2, dl Integer, dop in IN VARCHAR2) zwraca tekst dopelniony z lewej strony do dlugosci dl znakakiem dopelniajacym dop
LTRIM(tekst, wzor) zwraca tekst pozbawiony wszystkich wiodacych znaków umieszczonych we wzór
REPLACE(tekst, podciag1, podciag2) zwraca tekst, w którym wszystkie wystapienia podciag1 zostaly zastapione poprzez podciag2
2RPAD(Tekst IN VARCHAR2, dl Integer, dop in IN VARCHAR2) zwraca tekst dopelniony z prawej strony do dlugosci dl znakakiem dopelniajacym dop
RTRIM(tekst, wzor) zwraca tekst pozbawiony wszystkich znaków znajdujacych sie na koncu lancucha, umieszczonych we wzór
SUNDEX(tekst) zwraca fonetyczne kodowanie dla tekst
SUBSTR(tekst, poz, dl) Zwraca fragment lancucha tekst od pozycji poz, o dlugosci dl
TRANSLATE(tekst, zrodlo, cel) zwraca lancuch tekstowy tekst, w którym wystepowania znaków zawartych w lancuchu zrodlo zostaly wymienione na znaki z lancucha cel zgodnie z pozycja w lancuchu
Upper(tekst) Zwraca lancuch znakowy tekst w, którym wszystkie znaki sa wielkimi literami.
3Funkcje numeryczne (wybrane)
ABS(n in Number) zwraca wartosc bezwzgledna
CEIL(n in Number) zwraca najmniejsza wartosc calkowita wieksza lub równa n
FLOOR(n I Number) zwraca najwieksza wartosc calkowita mniejsza lub równa n
LOG(n1 number, n2 number) zwraca wartosc logarytmu z n2 o podstawie z n1, n1gt1, n2gt0
LN zwraca wartosc logarytmu naturalnego
MOD(n1 number, n2, number) zwraca wartosc reszty z dzielenia n1/n2
POWER(n number, e number) zwraca wartosc n podniesiona do potegi e
ROUND(n1 number, n2 integer) zwraca wartosc n1 po zaokragleniu do n2 miejsc po przecinku
SQRT(n) zwraca pierwiastek kwadratowy z n
TRUNC(n number, m integer) zwraca n obciete do m miejsc po przecinku
4Funkcje zwiazane z data (wybrane)
ADD_MONTHS(data, m) zwraca date po dodaniu m miesiecy do daty
MONTHS_BETWEEN(data1, data2) zwraca ilosc miesiecy miedzy datami
ROUND(data, maska) zaokragla date zgodnie z maska
TRUNC(data, maska) obcina date zgodnie z maska
Funkcje konwersji (wybrane)
TO_CHAR(param data/number, maska) konwersja daty/liczby na tekst
TO_DATE(param varchar2/number, maska konwersja tekstu/liczby na date
TO_NUMBER(param varchar2) konwersja tekstu na liczbe
5Operatory
Operator opis
potegowanie
NOT Logiczna negacja operator negacji NOT moze byc laczony z innymi operatorami IS NOT NULL, NOT LIKE, Not BETWEEN, NOT IN
laczenie lancuchów
!, lt gt, , rózne
IS NULL
LIKE
BETWEEN
IN czy znajduje sie w zestawie
AND
OR
staje sie (operator przypisania)
6Typy danych (wybrane)
DATE
BOOLEAN True, False
NUMBER liczby calkowite i rzeczywiste def z podaniem precyzji
BINARY_INTEGER liczba calkowita ze znakiem
POSITIVE dodatnie calkowite
NATURAL nieujemne calkowite
SIGNTYPE -1,0,1
DOUBLE PRECISION
INTEGER podtyp number
PLS_INTEGER calkowite ze znakiem (bardzo szybkie)
VARCHAR2 lancuch znakowe o zmiennej dlugosci
CHAR lancuch znakowe o stalej dlugosci
ROWID numer obiektu danych
7Maski DATY(wybrane)
MM numer miesiaca
RM rzymski numer mies
MON trzyliterowy skrót nazwy mies.
D numer dnia w tygodniu
DD numer dnia w miesiacu
DDD Numer dnia w roku
DY Trzyliterowy skrót nazwy dnia
Y, YY, YYY, YYYY rok1,2,3,4 cyfrowy
S.C., CC stulecie
YEAR rok slownie
Q numer kwartalu
WW numer tygodnia
8Migawki
--create table tab_kredyt_bgz as select from tab_kredyt where nls_upper(bank) like('BG')
create table tab_kredyt_bgz as select from tab_kredyt where nls_upper(bank) like('BG')
drop table tab_kredyt_bgz
9update tab_kredyt set Klasyfikacja'Normalny' --select --from tab_kredyt_bgz where nls_upper(Klasyfikacja) not like('N')
update tab_kredyt set kwotakwota/10000 --select --from tab_kredyt_bgz
10--delete select from tab_kredyt_bgz where nls_upper(bank) not like(BG)
delete --select from tab_kredyt_bgz where nls_upper(bank) not like('BG')
11create table tab_osoby(imie Varchar(20), nazwisko varchar(20), pesel varchar(11))
insert into tab_osoby values ('Ewa', 'Kowalska', '68072210546') insert into tab_osoby values (Piotr', Nowak', '69111219536')
12create or replace function pl(pesel in
char) return char is cyfra number begin cyfra
to_number(substr(pesel,10,1)) if
(cyfra/2)floor(cyfra/2) then return
'kobieta' else return 'mezczyzna' end
if end
13create or replace function dataur(pesel in
char) return date is rok varchar(2) mies
varchar(2) dzien varchar(2) data_txt
varchar(10) num_mies number begin roksubstr(p
esel,1,2) miessubstr(pesel,3,2) dziensubstr(
pesel,5,2) num_miesto_number(mies)
14if num_mieslt20 then data_txt'19'rok'-
'mies'-'dzien else
num_miesnum_mies-20 if num_mieslt10 then
mies'0'to_char(num_mies) else
miesto_char(num_mies) end if
data_txt'20'rok'-'mies'-'dzien end
if return to_date(data_txt,'YYYY-MM-DD') end
15create or replace function podatek(zarobek in
number) return number is podatek
number begin if zarobeklt2727 then
podatek0 elsif zarobeklt37024 then
podatek0.19zarobek-518.16 elsif zarobeklt74048
then podatek6516.400.30(zarobek-37024) els
e podatek17623.600.40(zarobek-74048) end
if return round(podatek,1) end
16create or replace function test(pesel in
char) return char is suma number i number wagi
varchar(10) begin wagi'1379137913'
17 for i in 1..10 loop sumasumato_number(substr(p
esel,i,1))to_number(substr(wagi,i,1)) end
loop suma10-mod(suma,10) if suma10 then
suma'0' end if if sumato_number(substr(pesel
,11,1)) then return 'OK' else return
'BLAD' end if end