Documente online.
Username / Parola inexistente
  Zona de administrare documente. Fisierele tale  
Am uitat parola x Creaza cont nou
  Home Exploreaza















Operatori si conditii in Oracle

Oracle



loading...








ALTE DOCUMENTE

Vederi Oracle - Ce este o vedere?
Proceduri rezidente
Integritatea datelor
Reuniuni si uniuni - union
Tabele in Oracle
Formatarea rezultatelor Interogarilor cu instructiuni SQL*Plus
Dictionarul de date Oracle
Cum se utilizeaza SGBDR Oracle


Operatori si conditii in Oracle

Ce sunt operatorii si conditiile?

Operatorii si conditiile sunt utilizate pentru a efectua operatii, cum ar fi adunarea si scaderea, sau comparatii ale datelor individuale într-o instructiune SQL. Operatorii sunt reprezentati de un singur caracter sau de cuvinte rezervate.

O conditie este o expresie compusa din mai multi operatori sau expresii care prin evaluare dau rezultatul True, False sau Unknown.

Exista doua tipuri de operatori: binari si unari. Operatorii unari opereaza asupra unui singur operand. De exemplu, pentru a indica un numar negativ cu modulul 10, folositi operatorul unar (-) pentru a 16416j923q scrie -10. Operatorii binari opereaza asupra a doi operanzi. De exemplu, pentru a scadea doua numere veti scrie 6-4.

De ce se folosesc operatorii si conditiile?

Operatorii si conditiile sunt elemente necesare ale oricarui limbaj de calculator. Ele va permit sa efectuati operatii aritmetice, comparatii de date si numeroase alte manipulari ale datelor necesare în aplicatiile dumneavoastra.

Aceste instrumente Oracle va ajuta sa selectati anumite seturi de linii. De exemplu, daca solicitati un set de linii în care nr_dept = 15, veti primi numai liniile în care nr_dept este egal cu 15. în acest exemplu, a fost folosit operatorul =.

Cum se folosesc operatorii

Operatorii sunt folositi pentru manipularea datelor si articolelor individuale si returnarea unui rezultat. Paragrafele care urmeaza'prezinta diverse tipuri de operatori: aritmetici, caracter, de comparatie, logici, pe multimi si alte tipuri.

Operatori aritmetici

Operatorii aritmetici sunt utilizati în expresii SQL pentru adunarea, scaderea, înmultirea, împartirea si negarea valorilor datelor. Rezultatul acestor expresii este o valoare numerica. In tabelul 11.1 sunt prezentati operatorii aritmetici.

Tabelul 11.1           Operatorii aritmetici

Operator

Descriere

+,-

Indica o expresie pozitiva sau negativa. Acesti operatori sunt unari.

*

Înmultire.               Operator binar.

/

Împartire.               Operator binar.

+

Adunare.               Operator binar.

-

Scadere.                 Operator binar.

În exemplul urmator este folosit operatorul unar - într-o expresie de evaluare:

select nume_oras from clima_oras where temp_medie = - 10;

În exemplul urmator este folosit operatorul binar aritmetic +:

update comenzi

set cant_comandata = cant_comandata + 100;

Nu folositi niciodata doua semne minus (-) într-o expresie aritmetica pentru a indica scaderea unui numar negativ. Semnul - este rezervat în Oracle pentru a indica începutul comentariilor. Prin urmare, orice urmeaza dupa semnul - va fi interpretat drept comentariu.

Operatori caracter

sirurile de caractere sunt manipulate cu operatori ^caracter. Cel mai comun operator caracter este operatorul de concatenare II. în exemplul urmator, sunt concatenate doua siruri de caractere pentru a obtine un nou sir de caractere:

select 'Numarul articolului este ' | | nr art f rom lista_articole;

Rezultat

'Numarul articolului este QA910233

Daca ambele siruri sunt de tip char, sirul rezultant este de tip char cu o lungime prestabilita de 255 de caractere. Daca cel putin unul dintre siruri este de tip varchar2, sirul rezultant este de tip varchar2 'cu o lungime prestabilita de 2000 de caractere! Daca unul dintre siruri este nul, sirul rezultant devine egal cu sirul ne-nul. Este recomandabil sa folositi functia nvl înainte de a utiliza un nul într-o concatenare. Functia nvl converteste expresia nul într-un sir de lungime zero.

Operatori de comparatie

Operatorii de comparatie sunt folositi pentru compararea unei expresii cu alta expresie. Rezultatul comparatiei este True, False sau Unknown. în tabelul 11.2 sunt enumerati operatorii de comparatie împreuna cu descrierea fiecaruia.

Tabelul 11.2. Operatorii de comparatie

Operator

Descriere

=

Egal cu

!=, <>, ^=

Diferit de

>

Mai mare decât

<

Mai mic decât

>=

Mai mare sau egal cu

<=

Mai mic sau egal cu

IN

Egal cu oricare membru al

NOT IN

Diferit de oricare membru al

IS NULL

Testeaza aparitia nulurilor

IS NOT NULL

Testeaza neaparitia nulurilor

LIKE

Returneaza True atunci când prima expresie se încadreaza în tiparul celei de-a doua expresii. Sunt permise caracterele de înlocuire (%) si se face deosebirea între majuscule si litere mici.

ALL

Compara o valoare cu toate valorile dintr-o lista

ANY, SOME

Compara o valoare cu fiecare dintre valorile dintr-o lista

EXISTS

Are valoarea True daca o subinterogare returneaza cel putin o linie

BETWEEN x and y

Mai mare sau egal cu x si mai mic sau egal cu y

Exemplele care urmeaza ilustreaza utilizarea operatorilor de comparatie.

Acest exemplu returneaza toate liniile în care cantitatea comandata este mai mare sau egala cu 10000:

select * from lista_comenzi where cant_comandata > 10000;

Exemplul urmator returneaza numele si telefonul clientilor pentru care câmpul de comentarii este completat (nu este nul):

select nume_client, tel_client f rom lista_comenzi where obs_client is not nuli;

Exemplul urmator foloseste operatorul ANY pentru a verifica existenta numelui unui oras în registrul de oaspeti. Aceasta instructiune este evaluata la valoarea True daca este returnata cel putin o linie:

select * from registru

where oras = any (select nume_oras from ang);

Acest exemplu verifica daca o anumita valoare se gaseste în domeniul furnizat în instructiune:

select marca_ang, sal_crt from ang

where sal crt

between 45000 and 60000;

Unul dintre cei mai populari si mai utili operatori este operatorul LIKE. în acest exemplu, instructiunea select citeste toate liniile în care nume_mat_prima începe cu literele Sulfat de:

select * from materii_prime

where nume_mat_prima like 'Sulfat de% ' ;

Operatori logici

Un operator logic este utilizat pentru a produce un singur rezultat prin combinarea a doua conditii distincte. Operatorii logici sunt prezentati în tabelul 11.3.

Tabel 11.3.             Operatorii logici

Operator

Descriere

AND

Returneaza True daca ambele conditii sunt adevarate; în caz contrar, retumeaza False.

OR

Returneaza True daca cel putin una dintre conditii este adevarata sau necunoscuta (Unknown); în caz contrar, returneaza False.

NOT

Returneaza True daca conditia care urmeaza este falsa; în caz contrar, returneaza True. De exemplu, conditia din instructiunea urmatoare este falsa; prin urmare instructiunea select returneaza True si este executata.

Select * from ang where not (data_ang > 01-Jan-2000) (nu s-au facut inca angajari în viitor).

Exemplul urmator utilizeaza operatorul logic OR pentru a selecta salariatii care au fost angajati înainte de l Ianuarie 1990 sau care apartin de departamentul 31:

select * from lista ang

where data_ang < 'O1-JAN-1990' OR

nr_dept = '31';

Operatori de compunere (pentru multimi)

Operatorii de compunere combina rezultatele a doua interogari distincte într-un singur rezultat. Operatorii de compunere sunt descrisi în Tabelul 11.4.

Tabelul 11.4           Operatorii de compunere

Operator

Descriere

UNION

Returneaza toate liniile distincte din ambele interogari

UNION ALL

Returneaza toate liniile din ambele interogari, inclusiv liniile duplicate

INTERSECT

Returneaza toate liniile selectate de ambele interogari

MINUS

Returneaza toate liniile distincte care se gasesc în prima interogare dar nu si în a doua interogare

Instructiunea care urmeaza returneaza numai acele linii care exista în seturile de rezultate ale ambelor interogari. Practic, numai acele numere de articole care sa gasesc atât în tabelul LISTA_ARTICOLE, cât si în tabelul ARTICOLE_NOI sunt returnate în acest exemplu:

select nr_art from lista_articole

intersect

select nr_art from articole_noi;

Într-o singura instructiune SQL pot exista mai multi operatori de compunere. Acesti operatori de compunere au prioritate egala, prin urmare programul Oracle îi evalueaza de la stânga spre dreapta.

Prioritatea operatorilor

Prioritatea reprezinta ordinea în care programul Oracle evalueaza diversii operatori din aceeasi expresie.

Fiecare operator are o prioritate predefînita. Programul Oracle evalueaza operatorii cu cea mai înalta prioritate înaintea operatorilor cu prioritate mai scazuta. Operatorii cu prioritate egala sunt evaluati de la stânga spre dreapta.

În tabelul 11.5 sunt enumerati operatorii în ordinea prioritatii.

Tabelul 11.5. Operatorii în ordinea prioritatii  

Operator

Descriere

-

Comanda de continuare SQL*Plus

&

Prefixeaza parametrii

& &

Prefix de substitutie

:

Prefix pentru variabile gazda

.

Separator de variabile

()

Încadreaza subinterogarile

'

Încadreaza o expresie literala

"

Încadreaza sinonimul unui tabel sau al unei coloane

"

Încadreaza o expresie literala

@

Precede numele unei baze de date

()

Schimba ordinea normala de evaluare a operatorilor

+, -

Semnele plus si minus

*, /

Înmultire si împartire

+ / -

Adunare si scadere

II

Operator de concatenare a sirurilor de caractere

NOT

Inverseaza rezultatul unei expresii

AND

True daca ambele conditii sunt adevarate

OR

True daca cel putin una dintre conditii este adevarata

UNION

Returneaza toate liniile distincte din ambele interogari

UNION ALL

Returneaza toate liniile din ambele interogari, inclusiv liniile duplicate

INTERSECT

Returneaza toate liniile selectate de ambele interogari

MINUS

Returneaza toate liniile distincte care se gasesc în prima interogare dar nu si în a doua interogare

Alti operatori

Oracle prevede înca doi operatori care nu se încadreaza în nici unul dintre grupurile anterioare. Acestia sunt operatorii prior si outer join.

Operatorul prior este utilizat într-o clauza connect pentru a evalua structura ierarhica a unei expresii. Atunci când este folosit într-o instructiune select, acest operator forteaza afisarea rezultatelor unei interogari în format ierarhic, radacina fiind afisata prima, dupa care sunt afisati fiii. Exemplul urmator ilustreaza ierarhia unei scheme organizatorice. Presedintele companiei reprezinta radacina schemei, iar angajatii sunt fiii.

select substr(lpad(' ',2*(level - 1)) ! !nume_ang,l,15)

nume_ang, marca_ang, marca_sef, functie from aiîg

connect by prior marca_ang = marca_sef start with functie = 'PREsEDINTE';

Rezultat:

NUME ANG

MARCA ANG

MARCA sEF

FUNCŢIE

KING

7839

PREsEDINTE

JONES

7566

7839

MANAGER

SCOTT

7788

7566

ANALIST

ADAMS

7876

7788

SECRETAR

FORD

7902

7566

ANALIST

SMITH

7369

7566

SECRETAR

BLAKE

7698

7839

MANAGER

ALLEN

7499

7698

AGENT VÂNZĂRI

WARD

7521

7698

AGENT VÂNZĂRI

MARTIN

7654

7698

AGENT VÂNZĂRI

TURNER

7844

7698

AGENT VÂNZĂRI

JAMES

7900

7698

SECRETAR

CLARK

7782

7839

MANAGER

MILLER

7934

7782

SECRETAR

Operatorul outer join este reprezentat de semnul plus (+). Acest operator indica faptul ca precedenta coloana este coloana dupa care se face reuniunea externa într-o reuniune. Pentru o descriere completa a reuniunii externe, consultati Capitolul 14, "Functii avansate".

Cum se utilizeaza conditiile

Conditiile sunt utilizate în instructiuni de evaluare. Ele sunt folosite ca expresii care pot avea fie valoarea True fie False. Conditiile returneaza întotdeauna o valoare care poate fi True, False sau Unknown. Iata un exemplu de conditie foarte simpla:

ang.nr_dept = dept.nr_dept

Conditiile pot avea diverse forme în functie de scopul în care sunt folosite. Urmeaza o serie de exemple care ilustreaza diversele forme ale unei instructiuni conditionale.

Forma 1: Compararea a doua expresii

cantl + cant2 > 1500;

Forma 2: Conditie care reuneste alti operatori într-o singura instructiune conditionala

(nr_dept = 15) OR (oras = 'Boston');

Forma 3: Test pentru verificarea incluziunii într-un domeniu

puncte_marcate between 15 AND 20;

Forma 4: Test pentru detectarea nulurilor

descriere_echipament ÎS nuli;

Forma 5: Verificarea apartenentei într-o lista sau într-o subinterogare

select * from lista_articole where not (cod_clasa_art = '35A');

Forma 6: Testarea existentei liniilor într-o interogare

select * from dept where exists

(Select nr_dept, nume_dept from ang where dept.nr_dept = ang.nr_dept);

Utilizarea conditiilor

Conditiile pot fi utilizate în numeroase situatii. Puteti folosi o conditie în clauza where a urmatoarelor instructiuni:

·     delete

·     update

·     select

In comanda select, puteti folosi o conditie cu urmatoarele clauze:

where having start with

Conditiile pot fi utilizate atât în instructiuni simple, cum ar fi art_l = art_2, cât si in situatii mai complexe în care se folosesc operatori logici pentru a reuni mai multe conditii într-una singura. De exemplu, instructiunea urmatoare utilizeaza operatorul logic OR pentru a combina doua conditii diferite într-o singura instructiune conditionala:

(salariu_crt >= salariu_max) OR (data_angajare < "01-JAN-1975');

Rezumat

Operatorii si conditiile sunt folosite de Oracle pentru a efectua operatii aritmetice si comparatii de date. Operatorii au o ordine de prioritate predefinita pe care programul Oracle o ia în consideratie la evaluarea instructiunilor.

Operatorii si conditiile sunt elemente necesare ale limbajului SQL care va permit sa efectuati comparatii, anumite manipulari de date, si operatii aritmetice.

Un operator este un caracter sau un cuvânt rezervat utilizat într-o instructiune SQL pentru a efectua o actiune sau o operatie asupra elementelor unei expresii. O conditie va permite sa combinati una sau mai multe expresii sau operatori logici cu una dintre diversele sintaxe ale instructiunilor conditionale.


Document Info


Accesari: 2485
Apreciat:

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site

Copiaza codul
in pagina web a site-ului tau.

 


Copyright © Contact (SCRIGROUP Int. 2014 )