Functii SQL
Pentru a imbunatati capacitatea de manipulare a informatiilor pot fi folosite o serie de functii puse la dispozitia utilizatorilor de catre SQL. Cel mai adesea sunt folosite functiile de agregare (totalizatoare sau de grup), functiile pentru data calendaristica si functiile predefinite.Practica a demonstrat ca fraza SELECT poate fi aplicata mai ales asupra:atributelor dintr-o relatie; rezultatului efectuarii unor calcule asupra atributelor prin utilizarea:
-operatorilor aritmetici (adunare + , scadere - , inmultire * , impartire /, ridicare la putere **);
-functiilor agregat (AVG, MAX, MIN, SUM, COUNT);
-functiilor matematice (ABS, ROUND).
Operatorii si functiile sunt aplicate asupra grupurilor de date stabilite in prealabil de catre utilizator. In acest caz formatul general al frazei SELECT este:
SELECT <nume functie de agregare>(<n. camp1>.).
FROM <n. tabela>
[WHERE <conditie>]
Sintaxa generala privind utilizarea functiilor agregat este:
AVG | MAX | MIN | SUM([ALL]<expresie> | (DISTINCT | ALL <nume_atribut>));
iar pentru functia COUNT sintaxa generala este:
COUNT(* | DISTINCT <nume_atribut>).
Functiei COUNT(*) returneaza numarul de tupluri /inregistrari care satisfac cererea de interogare.
Exemplul 1 : Sa se returneze numarul total de studenti din tabela student.dbf. Fraza SELECT va fi:
SELECT COUNT(*) FROM student
Rezultatul acestei interogari este:
|
Exemplul 2: Sa se returneze numarul de studenti care au media >8.00.
Fraza SELECT va avea formatul:
SELECT COUNT(*) FROM student WHERE Media>8.00
|
Se observa ca un numar de 13 studenti au obtinut media peste 8.00.
In cadrul functiei COUNT poate fi folosita si clauza DISTINCT atasata unui atribut, efectul fiind ignorarea duplicatelor.
Exemplul 3: Sa se afle numarul specializarilor/ facultate. Fraza SELECT are urmatorul format:
SELECT COUNT(DISTINCT Specializ) FROM student
In urma acestei interogari rezulta ca in cadrul facultatii sunt 8 specializari.
|
Exemplul 4: Sa se afle totalul alimentarilor si a platilor din contul 2016101, in perioada 1martie -15 aprilie 2000. Fraza SELECT va avea urmatorul format
SELECT Cont, SUM(Alimentare), SUM(Plati) FROM op_trezor;
WHERE Cont = 2016101 AND Data_op BETWEEN AND
|
Exemplul 5. Sa se stabileasca soldul contului 2016101
SELECT Cont, SUM(Alimentare) - SUM(Plati) Sold FROM op_trezor WHERE Cont = 2016101
|
Functia AVG(atribut) returneaza valoarea medie a atributului care satisface cererea de interogare.
Exemplul 6. Sa se calculeze media alimentarilor din perioada 10 martie - 15 aprilie 2000.
SELECT Cont, AVG(Alimentare)FROM op_trezor;
WHERE Data_op BETWEN AND AND Plati = 0
Prin aceasta interogare se va returna valoarea medie a alimentarilor din perioada 10 martie - 15 aprilie pentru contul care nu a efectuat plati):
|
Rezultatele oferite de functia AVG se obtin si prin combinarea functiilor SUM si COUNT in cadrul unei expresii astfel:SELECT SUM(Alimentare) / COUNT(*)FROM op_trezor;
WHERE Data_op BETWEEN AND AND Plati = 0
Prin aceasta interogare se obtine media alimentarilor din perioada 10 martie-15 aprilie 2000:
|
Functia MAX(atribut) are rolul de a returna valoarea maxima a unui atribut care satisface cererea de interogare.
Exemplul 7: Sa se returneze valoarea maxima a platilor din perioada 10 martie -20 aprilie 2000. Fraza SELECT are formatul:
SELECT MAX(Plati) FROM op-trezor WHERE Data_op >AND Data_op <
|
Functia MIN(atribut) are rolul de a returna valoarea minima a unui atribut care satisface cererea de interogare.
Exemplul 8: Sa se afle care este alimentarea minima operata in perioada 1 martie -20 aprilie 2000.
SELECT MIN(Alimentare) FROM op-trezor WHERE Data_op > AND ;
Data_op < AND Restituire = 0
Se va returna valoarea minima a alimentarilor din perioada 1 martie -20 aprilie 2000:
|
Functiile de mai sus pot fi utilizate si impreuna, combinarea lor asigurand interogari mai complexe, cerute de utilizator.
Exemplul 9: Sa se interogheze relatia student.dbf folosind functiile: COUNT, MAX, MIN si AVG: SELECT COUNT(*), MAX(Media), MIN(Media), AVG(Media) FROM student
|
Toate aceste functii pot fi aplicate si asupra grupurilor de tupluri obtinute prin clauza GROUP BY.
Exemplul 10: Sa se interogheze relatia student.dbf aplicand functiile: COUNT, MAX, MIN si AVG asupra articolelor grupate pe fiecare specializare. Fraza SELECT va avea urmatorul format:
SELECT Specializ COUNT(*),MAX(Media),MIN(Media),AVG(Media)FROM studen GROUP BY Specializ Rezultatul acestei interogari este:
|
Teste grila
1.SQL este un limbaj care asigura:
a. [ ] definirea si modificarea structurii unei baze de date relationale
b. [ ] interogarea unei baze de date relationale
c. [ ] controlul,securitatea si confidentialitatea bazei
2.Modificarea continutului unei tabele se poate realiza prin comenzile:
a. [ ] APPEND,DELETE,UPDATE
b. [ ] INSERT, DELETE, UPDATE
c. [ ] ALTER, DELETE, MODIFY
3.Care este rezultatul urmatoarei fraze SQL?
SELECT COUNT(cod_Examen) FROM EXAMENE;
WHERE Data_Examen =
a. [ ] numarul de examene din data de 15 februarie 2006
b. [ ] examenele programate pe data de 15 februarie 2006
c. [ ] disciplinele la care se sustine examen pe 15 februarie 2006
4.Ce se obtine prin interogarea SQL?
SELECT NRFACTMED;
FROM CLIENTI,FACTURI;
WHERE CLIENTI.CODCL=FACTURI.CODCL AND VALOARE BETWEEN 700000 AND 11000000
a .[ ] numai facturile cu valori intre 700000 si 11000000
b. [ ]numai facturile cu valoare de 700000 si 11000000
c. [ ]numai facturile cu valoare de700000 sau 11000000
d.[ ] numai facturile cu valoare mai mare sau egala cu 500000 si mai mica sau egala cu 1000000
5. Ce se obtine prin urmatoarea interogare?
SELECT DATA;
FROM CLIENTI, FACTURI;
WHERE CLIENTI.CODCL=FACTURI.CODCL AND LOCALITATE ='Iasi'
a.[ ] codurile clientilor din localitatea Iasi
b.[ ] zilele in care au fost emise facturi clientilor din Iasi
c.[ ] facturile emise tuturor clientilor din Iasi
6.Ce se obtine prin interogarea SQL?
SELECT NUME;
FROM STUDENTI;
WHERE NUME LIKE 'POP%'
a.[ ] numele studentilor a caror nume este POP
b.[ ] numele studentilor a caror nume este POPA sau POPOVICI
c.[ ] numai studentii al caror nume incepe cu POP
Ce se obtine prin urmatoarea interogare SQL?
SELECT NRFACTURA;
FROM CLIENTI, FACTURI;
WHERE CLIENTI.CODCL=FACTURI.CODCL AND DATA IN(,)
a.[ ] numai facturile emise in prima saptamana a lunii mai 2006
b.[ ] numai facturile emise intre 1 si 7 mai 2006
c. [ ]numai facturile emise pe 1 si 7 mai 2006
8. Ce se obtine prin urmatoarea interogare SQL
SELECT Nume FROM STUDENTI;
WHERE Grupa IN(SELECT Grupa from STUDENTI WHERE Nrmatricol="AL001214")
a.[ ] numele studentului cu numarul matricol AL001214
b.[ ] numele studentilor care sunt in grupa cu studentul cu matricolul AL001214
c.[ ] grupa din care face parte studentul cu matricolul AL001214
9. Ce rezultat se obtine prin aplicaea urmatoarei fraze SELECT:
a.[ ] media notelor la examene pentru fiecare student
b.[ ] media notelor la examene pentru studentii promovati la toate examenele
c.[ ] media notelor la examenele promovate pentru fiecare grupa
10. Ce rezultat se obtine prin aplicaea urmatoarei fraze SELECT:
SELECT nume FROM STUDENTI, EXAMENE;
WHERE STUDENTI. Matricol= EXAMENE.matricol AND nota=10;
GROUP BY matricol;
HAVING COUNT(*)>=2
a.[ ] numele studentilor care au promovat examenele cu nota 10
b.[ ] numele studentilor care au promovat cel putin doua examene cu nota 10
c.[ ] examenele la care cel putin doi studenti au luat nota 10
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |