You are on page 1of 4

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, Zwraca ciąg znaków string, w którym każde wystąpienie ciągu
szukany_str[,replace_str]) 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.
Funkcja (składnia) Działanie funkcji
TRANSLATE(string, Zwraca ciąg znaków string, w którym każde wystąpienie znaku z
from_str, to_str) 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, Zwraca miejsce w ciągu znakowym string1, gdzie rozpoczyna się
string2,[,a[,b]]) 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.
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, Zwraca wartość równą liczbie miesięcy pomiędzy
date2) 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.
● Funkcje dokonujące konwersji
Funkcja(składnia) Działanie
CONVERT(string, Prowadzi konwersję ciągu znaków string z zestawu znaków
dest_set[,source_set]) 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) Prowadzi konwersję daty d do ciągu znaków typu
TO_CHAR(d[,format[,nlsparams]]) 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 Prowadzi konwersję ciągu znakowego string typu CHAR
rams]]) 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

You might also like