Documente Academic
Documente Profesional
Documente Cultură
Scopul lectiei
Pentru a extrage date din baza de date trebuie sa folositi declaratiile SQL SELECT.S-ar putea sa fie
nevoie sa restrictionati coloanele care sunt afisate.Aceasta lectie descrie toate declaratiile SQL
necesare pentru a realiza aceste actiuni.
O declaratie SQL extrage informatii din baza de date.Folosind o declaratie SELECT puteti face
urmatoarele:
Join:puteti folosi capacitatea de join din SQL pentru a reuni date care sunt inregistrte in
diverse tabele creand o legatura intre ele.
Exemplu:
SELECT *
FROM emp
Exemplu:
SELECT ename,deptno
FROM emp
Expresii aritmetice
S-ar putea sa aveti nevoie sa modificati felul in care datele sunt afisate, sa faceti diferite calcule,
sau sa vedeti posibile scenarii.Pentru toate acestea e posibil sa folositi expresii aritmetice.O
expresie aritmetica poate contine nume de coloane, valori numerice constante, si operatori
aritmetici.
Operatori aritmetici
Puteti folosi operatori aritmetici in orice clauza a unei declaratii SQL cu exceptia clauzei FROM.
Exemplu:
Listeaza numele fiecarui angajat, salariul lunar si salariul anual dupa o marire lunara de 100.
FROM emp
Valori Null
O valoare NULL este o valoare care nu este diponibila , nealocata, necunoscuta, sau
neaplicabila.
Un NULL nu este acelasi lucru ca zero sau spatiu.
Daca unui rand ii lipseste valoarea datei pentru o anumita coloana acea valoare este
considerata null, sau considerata a contine un null.
Orice tip de coloana poate contine null.Totusi unele restrictii cum ar fi NOT NULL sau PRIMARY
KEY , nu permit ca o valoare null sa fie folosita in coloana.
Exemplu :
FROM emp
Daca orice valoare de coloana intr-o expresie aritmetica este null, atunci expresia este null.De
exemplu,daca incercati sa faceti impartirea prin zero, veti obtine o eroare.Totusi, daca divizati un
numar prin null, rezultatul este null.
Exemplu :
In acest exemplu , angajatii fara comision vor avea o valoare null in coloana a doua
SELECT ename,sal+comm
FROM emp
Alias-uri de coloana
Cand afiseaza rezultatul unei cereri, iSQL*Plus foloseste in mod normal numele coloanei selectate
ca header de coloana.Acest header s-ar putea sa nu fie descriptiv si de aceea, greu de
inteles.Puteti schimba header-ul de coloana folosind alias-urile de coloana.Alias-ul se specifica dupa
coloana in lista SELECT folosind spatiu ca separator.Ca default alias-urile apar cu litere mari in
header-ului coloanei.Daca alias-ul contine spatii sau caractere speciale(cum ar fi # sau $), sau este
case sensitive, trebuie inchis intre semne de citare(" ").
In exemplul care urmeaza se afiseaza numele si procetul comisionului pentru fiecare
angajat.Observati ca cuvatul cheie optional AS este in fata alias-ului de coloana.Rezultatul cererrii
este acelasi indiferent daca AS este folosit sau nu.Observati de asemenea ca declaratia SQL are
alias-urile de coloana scrise cu litere mici, pe cand in rezultat header-urile de coloana sunt afisate
cu litere mari(default).
Exemplu :
SELECT
FROM emp
Operatorul de concatenare
Puteti lega coloane cu alte coloane, expresii aritmetice, sau valori constante pentu a crea o
expresie de caractere folosind operatorul de concatenare (||).Coloanele din stanga sau dreapta
operatorului sunt combinate pentru a forma o singura coloana de iesire.
Exemplu :
In acest exemplu ename si job sunt concatenate, si le este dat alias-ul angajati.
FROM emp
Un literal este un caracter, un numar sau o data care este inclusa in lista SELECT si nu este un
nume sau un alias de coloana.Este tiparit pentru fiecare rand intors.Sirurile literale de text
neformatat pot fi incluse in rezultatul cererii si sunt tratate la fel ca si coloanele in lista
SELECT.Literalii care sunt data sau caractere trebuie sa fie incadrate in semne simple
de citare (' ');literalii numerici nu.
Randuri duplicat
Daca nu indicati altfel, iSQL*Plus afiseaza rezultatele unei cereri fara a elimina randurile
duplicat.Pentru a elimina randurile duplicat, includeti cuvantul cheie DISTINCT in clauza SELECT
imediat dupa cuvantul cheie SELECT.Puteti specifica mai multe coloane dupa DISTINCT.Calificativul
DISTINCT afecteaza toate coloanele selectate,si rezultatul este fiecare combinatie distincta a
coloanelor.
Exemplu:
Se listeaza doar 10 randuri in loc de 15 cum s-ar fi listat fara cuvantul cheie DISTINCT
FROM emp
Exercitii
Exercitiul 1
Afisati coloanele ename, cu alias-ul Nume,job si salariul anual, cu alias-ul Salariu Anual.
Exercitiul 2
Afisati numele si postul fiecarui angajat sub forma ename este job si seful lui are numarul MGR, cu
alias-ul de coloana Detalii angajati.
Exercitiul 3
Afisati toate posturile si toti sefii(coloana MGR) acestora, fara a avea randuri duplicate.
Exercitiul 4
Afisati toate posturile, cu departamentele fiecaruia,cu seful fiecarui post(MGR) si cu salariul anual
cu alias-ul Salariu.
Exercitiul 5
La cerinta de mai inainte, nu mai afisati salariul,dar afisati seful fiecarui post si eliminati randurile
duplicate.Afisati primele doua coloane cu alias-ul Post si Departament sub forma:Un angajat cu
acest job lucreaza in departamentul deptno.De ce primul rand arata astfel?