funkcjesql.pdf

(75 KB) Pobierz
646719073 UNPDF
Wbudowane funkcje SQL
Funkcje znakowe zwracające wartości znakowe
Funkcja (składnia) Działanie funkcji
CHR(x)
Funkcja zwraca znak, którego kod jest równy x w zestawie znaków
bazy danych.
SQL>SELECT CHR(37) a, CHR(100) b
FROM DUAL;
a-%, b-d
CONCAT(string1, string2)
Zwraca ciąg znaków string1 połączony z ciągiem znaków string2.
Działanie tej funkcji jest identyczne z działaniem operatora ||.
SELECT CONCAT('abc', 'def') from dual;
wynik: abc def
INITCAP(string)
Zwraca ciąg znaków string, w którym pierwszy znak każdego
słowa jest zamieniony na dużą literę, a pozostałe znaki wyrazu na
małe litery. Wyrazy są rozdzielane spacjami lub znakami nie
alfanumerycznymi. Znaki, które nie są literami pozostają nie
zmienione.
SELECT INITCAP(' 4 jestEm ciagiem ZNAKOW..') from dual;
wynik: 4 Jestem Ciagiem Znakow..
LOWER(string)
Zwraca ciąg znaków z wszystkimi znakami pisanymi małą literą.
SELECT LOWER('CiaG Znakow') from dual;
wynik:ciag znakow
LTRIM(string1, string2)
Zwraca ciąg znaków string1 z odrzuconymi znakami pobranymi z
ciągu znaków string2, rozpoczynając z lewej strony. Zwrócenie
wyniku następuje po napotkaniu w ciągu string1 pierwszego
znaku, który nie należy do ciągu string2.
SELECT LTRIM('xyxyxyEnd of string','xy') from dual;
wynik: End of string
REPLACE (string,
szukany_str[,replace_str])
Zwraca ciąg znaków string, w którym każde wystąpienie ciągu
znaków szukany_str jest zamienione na ciąg znaków replace_str.
SELECT REPLACE('this and that','th','b') from dual;
wynik: bis and bat
RPAD(string1, x[,string2])
Zwraca ciąg znaków string1 wypełniony z prawej strony znakami
ciągu string2 do długości równej x znaków.
SELECT RPAD('Nify',10,'!') from dual;
wynik:Nify!!!!!
RTRIM(string1[,string2])
Zwraca ciąg znaków string1 z odrzuconymi znakami pobranymi z
ciągu znaków string2, rozpoczynając od prawej strony.
SELECT RTRIM('This is a stringxyxyxy,'xy') from dual;
wynik: This is a string
SUBSTR(string,a[,b])
Zwraca część ciągu znaków string. Zwrócony ciąg znaków
zaczyna się od znaku o numerze a i ma długość równą b znaków.
SELECT SUBSTR('abc123def',4,4) from dual;
wynik: 123d
SUBSTRB(string,a[,b])
Działanie funkcji jest podobne do działania substr, z tym, że
argumenty a i b są wyrażane w bajtach, a nie w liczbie znaków.
Dla ciągu znakowego string, w którym wszystkie znaki są
jednobajtowe SUBSTRB zachowuje się jak SUBSTR.
646719073.013.png 646719073.014.png 646719073.015.png 646719073.016.png
Funkcja (składnia) Działanie funkcji
TRANSLATE(string,
from_str, to_str)
Zwraca ciąg znaków string, w którym każde wystąpienie znaku z
ciągu from_string jest zamieniane na znak z ciągu to_string,
umieszczany na tej samej pozycji, co usuwany znak z from_string.
SELECT TRANSLATE('abcdefghij','abcdef','123456') from dual;
wynik: 123456ghij
UPPER(string)
Zwraca ciąg znaków string, w którym wszystkie litery są
zamienione na duże.
SELECT UPPER('CiaG Znakow') from dual;
wynik:CIAG ZNAKOW
Funkcje znakowe zwracające wartości liczbowe
Funkcja (składnia) Działanie funkcji
ASCII(string)
Zwraca dziesiętną reprezentację pierwszego bajta ciągu znaków
string w zestawie znaków bazy danych.
SELECT ASCII('a') FROM dual;
wynik: 97
INSTR(string1,
string2,[,a[,b]])
Zwraca miejsce w ciągu znakowym string1, gdzie rozpoczyna się
ciąg string2. Ciąg znakowy string1 jest przeszukiwany z lewej
strony, zaczynając od pozycji a. Jeśli a ma wartość ujemną, ciąg
znaków string1 jest przeszukiwany od prawej strony. Jeśli podano
parametr b, jest zwracane b-te wystąpienie ciągu znaków string2.
SELECT INSTR('Scott' 'a spot','ot',1,2) from dual;
wynik:11
LENGTH (string)
Zwraca wartość długości ciągu znaków string, wartość ta jest
wyrażona jako liczba znaków.
SELECT LENGTH('Mary had a little lamb') from dual;
wynik:22
LENGTHB(string)
Funkcja ta zachowuje się w podobny sposób co funkcja LENGTH,
z tą różnicą, że zwracana wartość jest wyrażana w bajtach, a nie
jako liczba znaków.
SELECT LENGTH('Mary had a little lamb') from dual;
wynik:44
Funkcje numeryczne
Funkcja (składnia) Działanie funkcji
ABS(x)
Zwraca absolutną wartość parametru x.
SELECT ABS(-7) from dual;
wynik:7
CEIL(x)
Zwraca wartość najmniejszej liczby całkowitej, większej bądź równej
wartości parametru x.
SELECT CEIL(18.1) from dual;
wynik:19
COS(x)
Zwraca wartość cosinus x.
SELECT COS(0) from dual;
wynik:1
EXP(x)
Zwraca wartość równą e podniesioną do potęgi x.
646719073.001.png 646719073.002.png 646719073.003.png 646719073.004.png 646719073.005.png
Funkcja (składnia) Działanie funkcji
FLOOR(x)
Zwraca największą liczbę całkowitą, o wartości równej bądź mniejszej od
x.
SELECT FLOOR(23.5) from dual;
wynik:23
LN(x)
Zwraca wartość logarytmu naturalnego parametru x.
LOG(x,y)
Zwraca wartość logarytmu y o podstawie x.
MOD(x,y)
Zwraca wartość reszty z dzielenia x przez y.
POWER(x,y)
Zwraca wartość x podniesioną do potęgi y.
ROUND(x[,y])
Zwraca wartość parametru x zaokrągloną do y miejsc po przecinku.
SIN(x)
Zwraca wartość sinusa x, gdzie x jest wielkością kąta, wyrażoną w
radianach.
SQRT(x)
Zwraca wartość pierwiastka kwadratowego wartości parametru x. x nie
może być liczbą ujemną.
TAN(x)
Zwraca wartość tangensa x, gdzie x jest wielkością kąta, wyrażoną w
radianach.
TRUNC(x[,y])
Zwraca wartość x obciętą do y miejsc po przecinku.
Funkcje związane z datą
Funkcja (składnia) Działanie
ADD_MONTHS(d,x)
Zwraca datę d plus(+) x miesięcy.
SELECT ADD_MONTHS('02-FEB-06',2) from dual;
wynik: 02-APR-06
LAST_DAY(d)
Funkcja zwraca datę ostatniego dnia miesiąca określonego
w parametrze d.
MONTHS_BETWEEN(date1,
date2)
Zwraca wartość równą liczbie miesięcy pomiędzy
wejściowymi datami date1 i date2.
NEW_TIME(d, zone1, zone2)
Zwraca wartość daty i czasu w strefie czasowej zone2 dla
odpowiadającej jej wartości daty i czasu d w strefie zone1.
SELECT TO_CHAR(NEW_TIME(TO_DATE('12-APR-06
12:00:00','DD-MON-YY HH24:MI:SS'),'PST','EST'),
'DD-MON-TT HH24:MI:SS') from dual;
wynik:12-APR-06 15:00:00
NEXT_DAY(d, string)
Zwraca pierwszą datę dla zadanego dnia tygodnia string,
która następuje później od daty oznaczonej jako d. Wartość
string określa dzień tygodnia w terminologii bieżącej sesji.
Godzina zwróconej wartości jest taka sama jak daty d.
Wielkość liter w ciągu znaków string jest bez znaczenia.
SELECT NEXT_DAY('12-APR-71','thursday') from dual;
wynik: data następnego czwartku po 12 kwietnia 1971 roku
15-APR-71
SYSDATE
Zwraca wartość typu date, oznaczającą obecną datę i
godzinę.
TRUNC(d[,format])
Zwraca wartość daty d, obciętą do jednostki określonej
przez format.
646719073.006.png 646719073.007.png 646719073.008.png 646719073.009.png
Funkcje dokonujące konwersji
Funkcja(składnia) Działanie
CONVERT(string,
dest_set[,source_set])
Prowadzi konwersję ciągu znaków string z zestawu znaków
określonego przez source_set do zestawu określonego przez
dest_set.
SELECT CONVERT('Gros','WE8HP','WE8DEC') from dual
WE8DEC – DEC zachodnioeuropejski
WE8HP – HP 8-bitowy, zachodnioeuropejski LaserJet
TO_CHAR(daty)
TO_CHAR(d[,format[,nlsparams]])
Prowadzi konwersję daty d do ciągu znaków typu
VARCHAR2.
SELECT TO_CHAR(SYSDATE,'DD-MON-YY
HH24:MI:SS') from dual;
wynik: 15-NOV-06 01:17:14
TO_CHAR(liczba)
Prowadzi konwersję argumentu num typu NUMBER do
typu VARCHAR2.
TO_DATE(string[,format[,nlsparams
]])
Prowadzi konwersję ciągu znaków string typu CHAR lub
VARCHAR2 do wartości typu DATE. Format jest formatem
daty dla ciągu string.
SELECT TO_DATE('January 7, 2006','Month DD, YYYY');
TO_NUMBER(string[.format[,nlspa
rams]])
Prowadzi konwersję ciągu znakowego string typu CHAR
lub VARCHAR2 do wartości liczbowej.
Funkcje grupowe
Funkcja (składnia) Działanie
AVG([DISTINCT |ALL]col)
Zwraca średnią wartość wartości zawartych w kolumnie.
SELECT AVG(pensja) from lekarz;
wynik: 25
COUNT(*|DISTINCT|ALL]col)
Zwraca wartość równą liczbie wierszy zwróconych w
wyniku zapytania.
SELECT count(*) from pacjent;
wynik:3
MAX([DISTINCT |ALL]col)
Zwraca wartość równą maksymalnej wartości elementu z
listy polecenia SELECT.
SELECT MAX(LENGTH(imie)) from pacjent;
wynik:12
MIN([DISTINCT |ALL]col)
Zwraca wartość równą najmniejszej wartości, jaką
przyjmuje element z listy polecenia SELECT.
SELECT MIN(id_pacjenta) FROM pacjent;
wynik:1
SUM([DISTINCT |ALL]col)
Zwraca wartość równą sumie wartości elementów
pochodzących z listy polecenia SELECT.
SELECT SUM(pensja) from lekarz;
wynik: 10 000
646719073.010.png 646719073.011.png 646719073.012.png
Zgłoś jeśli naruszono regulamin