Sunteți pe pagina 1din 11

GESTIUNEA BAZELOR DE DATE RELAIONALE

01/11/2016
Interogri de tip view

DRD. Rndau Snziana

Elemente de sintax

CREATE VIEW nume_view

AS
SELECT column_names
FROM table_name/s
[WHERE conditie]
[GROUP BY column/s name/s]
[HAVING conditie]
[ORDER BY nume_camp/uri ASC/DESC]

Elemente
opionale(se
vorutiliza doar
dac cerina
necesit
utilizarea lor)

Clauza HAVING functioneaza in mare ca si clauza WHERE, diferenta


fiind ca HAVING este folosit pentru a exclude anumite grupuri din
rezultat, nu randuri cum facea WHERE.
Clauza HAVING poate fi folosit inainte de GROUP BY, insa este mai
logic sa fie folosita dupa. Ordinea executiei va ramane aceeasi.

Aplicaii

Realizai un view care s selecteze toate cursurile care au nceput n anul


2016

Realizai un view care s selecteze toate cursurile incepute i finalizate in


anul 2016 care fac parte din departamentul de informatic

Realizai un view care s afiseze toate cursurile le care sunt nscrii cel
putin 3 cursani

Realizai un view care s afieze cursul cu cei mai multi cursani. In cazul in
care sunt dou cursuri care respect aceast condiie se va selecta primul
n ordine ascendent a denumirii

Realizai un view care s afiseze profesorii care predau cursul de baze de


date

1.
Create view cerinta1 as
select *
from cursuri
where Data_inceput between '01/01/2016' and '12/31/2016
2.
Create view cerinta2 as
select *
from cursuri
where (Data_inceput between '01/01/2016' and '12/31/2016') and (Data_finalizare
between '01/01/2016' and '12/31/2016') and Departament='informatica
3.
Create view cerinta3 as
select c.idcurs, Denumire, count(idcursant)
from cursuri as c inner join Cursanti_Cursuri as cc on c.IDCurs=cc.IDCurs
group by c.IDCurs, Denumire
having count(IDCursant)>=3

4.
Create view cerinta4 as
select top 1 c.idcurs, denumire, count(IDCursant) as numar
from cursuri as c inner join Cursanti_Cursuri as cc on c.IDCurs=cc.IDCurs
group by c.IDCurs,Denumire
order by Denumire asc
5.
Create view cerinta5 as
select distinct p.idprofesor,p.nume,p.prenume
from profesori as p inner join profesori_cursuri as pc on p.idprofesor=pc.idprofesor
inner join cursuri as c on pc.idcurs=c.IDCurs
inner join Cursanti_Cursuri as cc on c.IDCurs=cc.IDCurs
where Denumire='baze de date'

S-ar putea să vă placă și