Baze Date
Baze Date
O vedere este un tabel virtual format din coloane si linii care pot fi actualizate si in care pot sa se faca inserari si eliminari
ca intr-un tablel de baza. Este un tablel logic care nu stocheaza date. Vederile permit programatorului SQL sa creeze
reprezentari ale datelor care pot fi diferite de tabele de baza. Ele se comporta ca niste tabele si in majoritatea cazurilor pot
fi utilizate pe post de tabele. Vederile sunt dinamice intodeauna afiseaza informatiile din tabelele curente. Atunci cand
tabelele de baza ale vederii sunt actualizate ,modificarile se reflecta instantaneu in vedere. Dupa ce ati creat vederea,
puteti folosi urmatoarele comenzi SQL pentru a face referire la acestea:
SELECT, INSERT, UPDATE, DELETE.
Crearea unei vederi
SELECT *
FROM Medii
SELECT *
FROM Medii
WHERE Media>7.5
CREATE VIEW Note_stud AS
SELECT s.NrLeg, Nume+' '+Initiala+'.'+Prenume student , Grupa, Denumire, Nota
FROM student AS s,Catalog AS c, Discipline AS d
WHERE s.NrLeg=c.NrLeg AND c.cod_disciplina=d.Cod_disciplina
SELECT *
FROM Note_stud
SELECT *
FROM Note_stud
WHERE Denumire LIKE 'baze de date%'
SQL plaseaza cateva restrictii la folosirea instructiunii SELECT pentru a formula o
vedere. Urmatoarele doua reguli sunt valabile atunci cand folositi instructiunea amintita:
Nu puteti folosi operatorul UNION
Nu puteti folosi clauza ORDER BY
Eroare - la crearea unei vederi nu puteti folosi in SELECT clauzele ORDER BY si UNION
CREATE VIEW Note_stud_err
AS
SELECT S.NrLeg, Nume+' '+Initiala+'.'+Prenume Student,
Grupa, Denumire, Nota
FROM Student AS S,catalog AS c, Discipline AS d
WHERE S.NrLeg=c.NrLeg AND c.Cod_disciplina=d.Cod_disciplina
ORDER BY S.NrLeg
CREATE VIEW Medii_Bursieri
AS
SELECT s.NrLeg, Nume+' '+Initiala+'.'+Prenume Student, Grupa, AVG (Nota)
Media
FROM Student AS s,Catalog AS C
WHERE s.NrLeg=C.NrLeg
GROUP BY s.NrLeg, Nume+' '+Initiala+'.'+Prenume,Grupa
HAVING AVG(Nota) >7.5
SELECT *
FROM Medii_Bursieri
CREATE VIEW Varste
AS
SELECT NrLeg, Nume, Prenume, Datediff(year,Data_nastere,getdate()) Varsta
FROM Student
SELECT *
FROM Varste
Modificarea datelor folosind vederile
Se folosesc comenzile UPDATE, INSERT si DELETE
CREATE VIEW note_catalog
AS
SELECT *
FROM catalog
SELECT *
FROM note_catalog
Scade 1 punct din toate notele din vederea Note_catalog
UPDATE Note_catalog
SET Nota=Nota-1
DELETE FROM Note
WHERE Nr_Leg='200'
Scade un punct la toate notele studentilor cu NrLeg par
UPDATE Note1
SET Nota=Nota-1
WHERE Nr_Leg%2=0
SELECT *
FROM note1
INSERT INTO Note1 VALUES('120',8)
Eroare pt ca in Note nu pot introduce NULL la Cod_disciplina
CREATE VIEW Note2 AS
SELECT Nr_Leg, Nota, id_dis
FROM Note
AS
SELECT C.*
FROM student s, Catalog C