Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Utilizarea operatorului de concatenare
SELECT ename || job AS "Employees"
FROM emp;
In acest exemplu: campurile ename si job vor fi concatenate si vor avea alias-ul "Employees". Cuvantul cheie AS este necesar in acest caz pentru a citi corect.
Utilizarea caracterului de concatenare in exemplul urmator:
SELECT ename || ' ' || 'is a' || ' ' || job
AS " Employee Details"
FROM emp;
Eliminarea randurilor duble poate fi facuta utilizand cuvantul cheie DISTINCT in clauza SELECT.
SELECT DISTINCT depno
FROM emp;
OBS: Pot fi specificate mai multe coloane dupa DISTINCT, in acest caz vor fi luate in considerare toate coloanele, adica vor fi evaluate toate informatiile din toate coloanele impreuna.
SELECT DISTINCT depno , job
FROM emp;
Restrictionarea randurilor returnate dintr-o tabela se poate face utilizand clauza WHERE in instructiunea SELECT.
SELECT [DISTINCT]
FROM tabela
[WHERE conditie
Afiseaza numele angajatului (ename), job-ul (job) si numarul departamentului (deptno), pentru toti angajatii din tabela EMP al caror nume de job este ANALIST.
SELECT ename, job, deptno
FROM emp;
WHERE job = 'ANALIST';
OBS: Sirurile de caractere si tipul data calendaristica trebuiesc incluse intre apostroafe. Formatul de data in Oracle implicit este: DD_MON_YY. Acest format se poate modifica.
Operatorii de comparatie sunt:
egal
> mai mare
< mai mic
>= mai mare egal
<= mai mic egal
<> diferit
Operatorii de comparatie pot fi utilizati in compararea unei expresii cu o alta expresie. Ei sunt utilizati in clauza WHERE in urmatorul format :
. WHERE expresie operator valorare
Exemple
. WHERE hiredate = '01-JAN-95'
. WHERE sal > 1500
. WHERE ename ='SMITH'
Alti operatori de comparatie sunt:
BETWEEN . AND . compara daca se gaseste intre doua valori, deci intr-un interval [min, max]
IN (list) cuprins in lista de valori.
LIKE daca se potriveste cu macheta.
IS NULL compara cu o valoare NULL
Afiseaza toti angajati care au salariul intre 1000 si 1500.
SELECT ename, sal
FROM emp
WHERE sal BETWEEN 1000 AND 1500;
Trebuie specificata mai intai limita inferioara apoi limita superioara.
Afiseaza angajati pentru care codul managerului (mgr) este una din valorile specificate in lista.
SELECT ename, sal, mgr
FROM emp;
WHERE mrg IN (7902 );
Utilizarea operatorului LIKE.
Conditia de cautare poate contine unul din caracterele:
% -inlocuieste 0 sau mai multe caractere
- -inlocuieste orice caracter, dar unul singur.
Afiseaza toate persoanele a caror nume incepe cu S.
SELECT ename, sal
FROM emp
WHERE ename LIKE '%S';
Afiseaza toate persoanele a caror data de angajare (hiredate) este intre ianuarie 1981 si decembrie 1981.
SELECT ename
FROM emp
WHERE hiredate LIKE '%81';
Afiseaza toti angajati a caror nume contine litera A al doilea caracter.
SELECT ename
FROM emp
WHERE ename LIKE '_A';
Afiseaza toti angajatii a caror nume contine 'A_B'.
SELECT ename
FROM emp
WHERE ename LIKE '%A_%B' Escape'';
Cand folosim ESCAPE , underscore este interpretat ca si caracter.
Utilizarea operatorului IS NULL
O valoare NULL nu este 0 sau spatiu. O valoare NULL este o valoare necunoscuta. Daca intr-o expresie vom avea o valoare NULL evaluarea expresiei va fi NULL.
Afiseaza toti angajatii care nu au comision (comm este NULL).
SELECT ename, job
FROM emp
WHERE comm IS NULL;
Operatorii logici sunt:
AND -returneaza TRUE cand ambele componente sunt TRUE.
OR -returneaza TRUE cand cel putin una din componente este TRUE.
NOT -returneaza TRUE cand componenta este FALSE.
Afiseaza toti angajati care au job ='CLERK' si salariul >= 1100.
SELECT empno, ename, job, sal
FROM emp
WHERE sal >=1100 AND job = 'CLERK';
Afiseaza toti angajati care au job = 'CLERK' sau salairul >= 1100.
SELECT empno, ename, job, sal
FROM emp
WHERE sal >= 1100 OR job = 'CLERK';
Afiseaza toti angajatii din tabela EMP a caror job nu este CLERK, MANAGER sau ANALYST.
SELECT ename, job
FROM emp
WHERE job NOT IN ('CLERK', 'MANAGER', 'ANALYST');
Clauza ORDER BY permite afisarea randurilor intr-o ordine specifica. Trebuie plasata ultima clauza intr-o comanda SELECT. Clauza ORDER BY revine ultimei comenzi SELECT.
ASC - ascendent, care este ordinea implicita.
DES - descendent
Afiseaza angajati in ordine descrescatoare dupa data de angajare. (hiredate).
SELECT ename, job, deptno, hiredate
FROM emp
ORDER BY hiredate DESC;
Sortarea datelor dupa aliasul coloanei. Poate fi utilizat aliasul coloanei in clauza ORDER BY.
SELECT empno, ename, sal*12 salar_anual
FROM emp
ORDER BY salar_anual;
Putem sorta datele dupa mai multe coloane. Numarul maxim de coloane fiind cel pe care il are tabela. Putem specifica in clauza ORDER BY si coloane care nu apar in clauza SELECT.
Afiseaza datele din tabela EMP ordonate dupa numarul departamentului (deptno) ascendent si dupa salariu (sal) descendent.
SELECT ename, sal
FROM emp
ORDER BY deptno, sal DESC;
OBS: Campul deptno nu este specificat in SELECT, dar poate fi folosit in clauza ORDER BY.
Copyright © 2024 - Toate drepturile rezervate