regasirea_si_manipularea_datelor_dintrun_tabel

Download Report

Transcript regasirea_si_manipularea_datelor_dintrun_tabel

Regăsirea și manipularea datelor
dintr-o tabelă
Obiective:
În această lecție veți învăța :
• Care sunt elementele de bază ale limbajului
SQL
• Care sunt operațiile ce se pot realiza cu
comanda SELECT
• Cum se scriu comenzile de interogare
• Cum pot fi filtrate liniile care se vor afișa
• Ce sunt și cum se folosesc alias-urile
coloanelor
• Cum se pot elimina liniile duplicate
• Cum se pot sorta datele
Dobândirea cunoștințelor
• Cea mai mare parte a lucrului
cu SQL implică regăsirea și
manipularea datelor prin
utilizarea instrucţiunii
SELECT.
• Instrucţiunea SELECT
regăseşte rânduri, coloane şi
valori derivate dintr-unul sau
mai multe tabele din baza de
date.
• În forma cea mai simplă, o
instrucţiune SELECT regăseşte
coloanele dintr-un tabel.
• Sintaxa ei este:
SELECT nume_coloana
FROM nume_tabela
[WHERE conditie]
[GROUP BY conditie]
[HAVING conditie]
[ORDER BY conditie]
Dobândirea cunoștințelor
• Poate fi regăsită o singură coloană, mai multe
coloane sau toate coloanele.
• Clauza SELECT precizează coloanele care trebuie
afişate, iar clauza FROM precizează tabela din
care trebuie regăsite coloanele.
• Pentru a regăsi o coloană dintr-un tabel tastaţi:
SELECT nume_coloana FROM nume_tabela
• Pentru a regăsi toate coloanelor dintr-un tabel
tastaţi:
SELECT * FROM nume_tabela
Dobândirea cunoștințelor
• Exemplu:
Afişaţi numele şi data naşterii
pentru agenţii de închirieri.
SELECT nume, data_nast FROM
agenti_inchirieri
Dacă privim în tabelul din exemplul de mai sus
putem observa că în capul de tabel afișat sunt trecute
numele coloanelor cu majuscule.
Dobândirea cunoștințelor
• Pentru a da un nume alternativ (identificator) pentru
numele unei coloane folosim un ALIAS, care poate fi
creat astfel:
SELECT nume_coloana AS alias FROM nume_tabela
SELECT nume_coloana alias FROM nume_tabela
SELECT nume_coloana AS “alias” FROM nume_tabela
• Exemplu:
Afişaţi numele şi data naşterii pentru
agenţii de închirieri.
SELECT nume, data_nast AS "Data nașterii“
FROM agenti_inchirieri
Dobândirea cunoștințelor
• Adeseori, coloanele conţin valori
duplicate. Pentru a elimina aceste
valori folosim clauza DISTINCT, astfel:
SELECT DISTINCT nume_coloana FROM nume_tabela
• Exemplu:
Afişaţi localităţile din tabela
adrese.
SELECT localitatea
FROM adrese
Dobândirea cunoștințelor
• Afişaţi doar o singură dată fiecare
localitate din tabela adrese.
SELECT DISTINCT localitatea
FROM adrese
Dacă ne gândim de exemplu la tabela altii, care
conține date despre angajați cu diferite funcții, iar pe
noi ne interesează la un moment date doar despre
manageri, putem selecta doar acele linii care ne
interesează folosind clauza WHERE la comanda
SELECT.
Dobândirea cunoștințelor
• Exemplu:
Afişaţi suprafaţa locuinţelor care au mai mult de 2
camere.
SELECT suprafata
FROM locuinte
WHERE nr_camere>2
• Pentru a sorta rândurile după o coloană specificată
în ordine ascendentă sau descendentă folosim
clauza ORDER BY .
Dobândirea cunoștințelor
• Ordonaţi alfabetic angajaţii care nu au funcţia
de agent de închirieri.
SELECT *
FROM altii
ORDER BY nume
Dobândirea cunoștințelor
• Câteodată avem nevoie să cunoaștem doar primele n linii
dintr-o tabelă. Pentru aceasta folosim pseudocoloana
ROWNUM, care returnează numărul de ordine al unei linii
într-o tabelă.
SELECT nume_coloana FROM nume_tabela WHERE ROWNUM<=n
• Exemplu:
Pentru primii trei angajaţi din tabela altii afişaţi informaţiile sub
forma “Ion are salariul egal cu 1500”, folosind ca alias
informatii.
SELECT nume ||' are salariul egal cu '|| salariu AS "informatii"
FROM altii
WHERE ROWNUM<=3
Dobândirea cunoștințelor
• În componența unei
comenzi SQL intră și
diverse expresii, care
folosesc diverși operatori,
cum ar fi:
1.Operatori aritmetici *, /, +, 2. Operatori de concatenare ||
3. Operatori de comparare
=, <, <=, >, >=
IS (NOT) NULL, LIKE, (NOT) IN
(NOT) BETWEEN
4. Operatori logici :NOT, AND,
OR
• Exemple:
• Afişaţi suprafaţa
locuinţelor care au mai
mult de 2 camere.
SELECT suprafata
FROM locuinte
WHERE nr_camere>2
Dobândirea cunoștințelor
• Afişaţi numele, data_ang şi id_sef pentru toţi angajaţii din
tabela altii în afară de cei al căror id_sef=21.
SELECT nume, data_ang,id_sef
FROM altii
WHERE id_sef<>21
• Să se afișeze toți clienții care au ca șef angajații cu id-ul
17 și 30.
SELECT *
FROM clienti
WHERE id_ang=17 OR id_ang=30
Dobândirea cunoștințelor
• Condiția LIKE este utilă în situațiile în care nu
cunoașteți o valoare exactă sau în care doriți
să regăsiți rândurile care au valori similare.
• Exemplu:
• Afişaţi numele şi data angajării pentru
angajaţii al căror nume începe cu litera “A”.
SELECT nume, data_ang
FROM altii
WHERE nume LIKE 'A%'
Dobândirea cunoștințelor
BETWEEN este folosit pentru a determina dacă
o valoare dată se află într-un domeniu specificat.
• Exemplu :
• Afişaţi id-ul, suprafaţa şi preţul pentru locuinţele
construite între anii 1960 şi 1975.
SELECT id_locuinta,suprafata, pret,an
FROM locuinteWHERE an BETWEEN 1960 AND 1975
Dobândirea cunoștințelor
• IN este folosit pentru a determina dacă o valoare
dată corespunde cu vreuna dintre valorile dintr-o
listă.
• Exemplu:
• Afişaţi toţi angajaţii care au funcţia de secretar,
supervisor sau manager.
SELECT * FROM altii
WHERE functia IN('secretar','supervisor','manager')
Dobândirea cunoștințelor
• IS NULL este folosit la testare null-urilor .
• Exemplu:
• Să se afișeze id-ul locuinței și anul
construcției pentru toate locuințele care
nu au balcon.
SELECT id_locuinta, an
FROM locuinte
WHERE nr_balcoane IS NULL