Temperatura w Ostrołęce


powered_by.png, 1 kB

ARTZI.NET arrow Programowanie arrow Składnia SQL Oracle
Składnia SQL Oracle
Składnia SQL Oracle | Drukuj |  Email

Wyrażenia logiczne


Wyrażenia logiczne mogą występować w poleceniu SELECT w klauzulach WHERE i HAVING .

Operatory porównania

Najprostsze wyrażenie logiczne można przedstawić następująco:

Wartość1 op_porównania wartość2

gdzie:

wartośc1, wartość2 - wartości (wyrażenia) tego samego typu,

op_porównania - operator porównania.

Wybrane operatory porównania dostępne w języku SQL:

Operator

Opis

=

równa się,

!=, <>

nie równa się,

>,<

większe od, mniejsze od,

>=<=

większe bądź równe, mniejsze bądź równe,

[NOT] IN

[nie] należy do zbioru, zbiór może być podany poprzez wyliczenie lub SELECT zagnieżdżony,

IS [NOT] NULL

[nie] jest NULL

[NOT] BETWEEN x AND y

[nie] większe lub równe x i mniejsze lub równe y

[NOT] LIKE x

wyszukiwanie tekstu wg. wzorca, znaki uogólniające: % - dowolna ilość, dowolnych znaków, - jeden, dowolny znak,

Wartość NULL


Oprócz wartości TRUE i FALSE, wyrażenia logiczne w Oracle'u mogą przyjmować wartość NULL. Wartość NULL jest wartością specjalną, oznaczającą brak danych. Operacja porównania, w której jako jeden ze składników występuje wartość NULL, zwróci wartość logiczną NULL.

W poleceniach SQl, można stosować specjalną funkcję - NVL:

NVL{wyrażenie1, wyrażenie2) gdzie:

wyrażenie l - wyrażenie numeryczne lub znakowe,

wyrażenie2 - wyrażenie o typie zgodnym z typem wyrażenia1

Funkcja NVL zwraca wartość wyrażenia l jeżeli jest ona różna od NULL, albo wartość wyrażenia2 w przeciwnym przypadku.

Przykład Kto nie otrzymuje prowizji?

SQL> select ename,

2 comm

3 from emp

4 where nvl (comm, 0) = 0;

Wyrażenia arytmetyczne


Wyrażenia arytmetyczne mogą być budowane przy użyciu operatorów i funkcji arytmetycznych. W wyrażeniu arytmetycznym mogą występować nazwy kolumn numerycznych i stałe numeryczne. Dopuszczalne jest użycie wyrażeń arytmetycznych w we wszystkich klauzulach polecenia SELECT, oprócz klauzuli FROM.

Operatory arytmetyczne

Operatory arytmetyczne dostępne w języku SQL:

Operator

Opis

-

wartość przeciwna,

+,-

dodawanie, odejmowanie,

*./

mnożenie, dzielenie

 

Funkcje arytmetyczne


Wybrane funkcje arytmetyczne dostępne w języku SQL:

Operator

Opis

ABS(n)

wartość absolutna z n,

COS(n)

cosinus z n (kąt w radianach)

GREATEST(n1 [,n2]...)

największa wartość z listy,

LEAST(n1 [,n2]...)

najmniejsza wartość z listy,

LN(n)

logarytm naturalny z n.

LOG(m,n)

logarytm z n przy podstawie m,

POWER(m,n)

m do n-te] potęgi,

ROUND(m,[n])

m zaokrąglone do n miejsc po przecinku,

SIGN(n)

znak n,

SIN(n)

sinus z n (kąt w radianach),

TO_CHAR(n)

konwersja liczby n na tekst,

TRUNC(m,[n])

m obcięte do n miejsc po przecinku,

 Funkcje tekstowe


Wybrane funkcje tekstowe dostępne w języku SOŁ:

Operator

Opis

INITCAP(t)

zwraca tekst t w postaci: pierwsza litera duża, pozostałe małe,

LOWER(t)

zwraca tekst t małymi literami,

LPAD( t1, n, [,t2])

dodaje do t1 z lewej strony tyle wystąpień t2, aby łączna długość tekstu wynosiła n,

LTRIM(t1, t2 )

usuwa wszystkie początkowe wystąpienia t2 w t1,

REPLACE( t1, t2, [t3] )

zamienia wszystkie wystąpienia t2 w t1 na t3,

RPAD(t1, n, t2 )

dodaje do t1 z prawej strony tyle wystąpień t2, aby łączna długość tekstu wynosiła n,

RTRIM( t1, t2 )

usuwa wszystkie końcowe wystąpienia t2 w t1,

SUBSTR( t1, m, n )

zwraca fragment t1 o długości n od pozycji m,

TRANSLATE( t1. t2, t3 )

wykonuje translację znaków z t1 zamieniając znaki występujące w t2 na odpowiednie znaki w t3,

UPPER(t)

zwraca tekst t dużymi literami,

INSTR(t1,t2,[,n[,m]])

przeszukuje tekst t1 począwszy od pozycji n i zwraca pozycję m-tego wystąpienia tekstu t2 w tl,

LENGH( t)

zwraca długość tekstu t,

TO_NUMBER(t)

wykonuje konwersję tekstu t na liczbę, pod warunkiem, że t jest w odpowiednim formacie.

DECODE(flag,'N','Nie','T','Tak')

zamienia wszystkie 'N' na 'Nie' , a 'T' na 'Tak' w polu flag

 Działania na datach


Data jest oddzielnym typem w Oracle'u. Wartość typu data zawiera zawsze pełną informację:

rok, miesiąc, dzień, godzina, minuta, sekunda. Format przechowywania daty jest formatem wewnętrznym Oracle'a. Jeżeli chcemy wybrać datę z bazy danych, musi zostać wykonana konwersja daty na postać znakową. Podobnie, wprowadzając datę używamy tekstu opisującego datę.

Format daty

Wprowadzając lub wybierając datę można określić jej format. W tym celu należy użyć funkcji:

do wybierania

TO_CHAR( data, ' format' )

do wprowadzania

TC_DATE( data, /format' )

gdzie:

data - wartość typu data, format - format daty.

Wybrane elementy formatu daty:

Element formatu

Opis

-/,.;: "tekst"

znaki interpunkcyjne, stała tekstowa wyświetlana z datą,

HH, HH24,

AM, A.M., PM, P.M,

godzina (1-12), godzina (0-23), wskaźnik przed/po południu,

MI

minuta (0-59).

SS,

ssss.

sekunda (0-59), sekundy po północy (0-86399),

D, DAY, DY, DD, DDD

dzień tygodnia (1-7), nazwa dnia tygodnia, skrót nazwy dnia, dzień miesiąca (1-31), dzień roku (1-336),

MM,

miesiąc (1-12),

MONTH,

nazwa miesiąca,

MON,

skrót nazwy miesiąca,

RM,

rzymski numer miesiąca (I-XII),

YEAR,

rok słownie (tylko po angielsku),

YYYY, YYY, YY, Y

rok: cztery cyfry, ostanie trzy cyfry, ostatnie dwie cyfry,ostatnia cyfra.

     

 

Format specjalny RR uwzględnia dwie ostatnie cyfry roku w następujący sposób:

Dwie ostatnie cyfry bieżącego roku mieszczą się w przedziale:

 

0-49

 

50-99

Podane dwie ostatnie cyfry roku mieszczą się w przedziale:

0-49 50-99

zwracana jest data w bieżącym stuleciu

zwracana jest data w poprzednim stuleciu

zwracana jest data w następnym stuleciu

zwracana jest data w bieżącym stuleciu

 Jeżeli przy wprowadzaniu/ wybieraniu daty nie użyjemy funkcji formatującej, będzie użyty format domyślny daty. Format domyślny daty zależy od wersji językowej bazy danych. Typowy format domyślny to 'DD-MON-YY'.

Funkcje działające na datach

Wybrane funkcje działające na datach:

Element formatu

Opis

ADD_MONTHS(d, n) LASTDAY(d/)

MONTHS_BETWEEN( dl, d2) SYSDATE

 

dodaje do daty d, n miesięcy, zwraca datę,

zwraca datę ostatniego dnia miesiąca zawartego w dacie d, zwraca liczbę miesięcy pomiędzy datami dl i d2,

zwraca datę (pełną informację) bieżącą.

 Dodatkowo można wykonywać następujące operacje na datach:

datal - data2 - wynikiem jest liczba dni dzielących daty,

data1 +/- n - wynikiem jest data1 powiększona/ pomniejszona o n dni.

Funkcje grupowe


Funkcje grupowe liczą wartości dla grupy wierszy, uwzględniając opcje:

DISTINCT - brane są tylko unikalne wartości,

• ALL - brane są wszystkie wartości, jest to opcja domyślna.

Wszystkie funkcje grupowe, oprócz COUNT, ignorują wartości NULL. Jeżeli zapytanie nie przekaże do funkcji grupowej żadnych wierszy, lub wiersze z wartościami NULL, to funkcja grupowa zwróci wartość NULL.

Wybrane funkcje działające na grupach wierszy:

Funkcja

Opis

AVG([opcja]wyr)

COUNT( * | [opcja] wyr )

 

MAX([opcja]wyr) MIN([opcja]wyr) SUM([opcja]wyr)

 

wartość średnia wyrażenia wyr,

liczba wierszy wybranych zapytaniem, jeżeli argumentem jest *, to funkcja zwróci liczbę wszystkich wierszy łącznie z wartościami NULL,

wartość maksymalna wyrażenia wyr,                  wartość minimalna wyrażenia wyr,                               suma wartości wyrażenia wyr,

 Operacje na zbiorach


Wyniki kilku poleceń SELECT można połączyć w jeden za pomocą operatorów działających na zbiorach. Zapytania połączone operatorem muszą mieć identyczną liczbę i typ wybieranych kolumn. Jeżeli więcej niż dwa zapytania łączymy w jeden zbiór to wynik jest wyliczany parami od lewej strony. Aby zmienić kolejność wyliczeń możemy użyć nawiasów.

Składnia

[ ( ] SELECT ... [ ) ] opera tor zbioru. [ ( J SELECT ... [ ) ]

• • •

gdzie:

operator_zbioru - dowolny operator działający na zbiorach.

Operatory działające na zbiorach

Operator

Opis

UNION

suma zbiorów,

UNION ALL

suma zbiorów powiększona o wiersze powielające się,

INTERSECT

część wspólna zbiorów,

MINUS

różnica zbiorów

 

Źródło:    ORACLE7 Serwer        Język SQL                                                 © IFS Poland Sp. z o.o. 

zmiany i opracownie własne

 

 

 

 

 

 
© 2008 ARTZI.NET Tomasz Zielinski