Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » sql
Functii SQL

Functii SQL


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


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.