0% found this document useful (0 votes)
2 views6 pages

HW 7 DB

Uploaded by

Gabriel Panea
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

HW 7 DB

Uploaded by

Gabriel Panea
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

create database HW7

use HW7

CREATE TABLE tblStudent (


Nrleg char (8) PRIMARY KEY CLUSTERED,
CNP varchar (13) UNIQUE,
NumeStudent varchar (40) NOT NULL,
InitialaStudent varchar(6) ,
PrenumeStudent varchar (40) NOT NULL,
Sex char (1) CHECK (Sex IN ('M','F'))DEFAULT('M'),
DataNastere datetime,
GrupaSinge varchar (3) ,
StareCivila char (1) CHECK (StareCivila IN ('C','D','M','N','V')),
SituatiaMilitara char(1) CHECK (SituatiaMilitara IN ('I','N')),
Grupa char (5) CHECK (Grupa LIKE '10%')
)

CREATE TABLE tblTelefonStud(


Nrleg char (8) NOT NULL,
NrTelefon varchar (10) ,
Interior varchar (4) ,
Observatii varchar (30) ,
CONSTRAINT conTel_FK
FOREIGN KEY (NrLeg) REFERENCES tblStudent (Nrleg)
ON DELETE CASCADE ON UPDATE CASCADE
)

CREATE TABLE tblMaterie(


ID_Materie char (6) PRIMARY KEY CLUSTERED,
NumeMaterie varchar (30) NOT NULL,
Semestrul varchar (2) NOT NULL,
OreCurs tinyint,
OreSeminar tinyint,
OreLaborator tinyint,
OreProiect tinyint,
TipMaterie varchar (1) CHECK(TipMaterie IN ('F','N','0')) DEFAULT ('N'),
FormaExaminare varchar (3) CHECK (FormaExaminare IN ('E','CFN','CN')) DEFAULT
('E'),
Credit tinyint CHECK (Credit BETWEEN 1 AND 6)
)

CREATE TABLE tblStudiaza(


Nrleg char (8)NOT NULL REFERENCES tblStudent (Nrleg)
ON DELETE CASCADE ON UPDATE CASCADE,
ID_Materie char (6)NOT NULL REFERENCES tblMaterie (ID_Materie)
ON DELETE CASCADE ON UPDATE CASCADE
)

insert into tblStudent


(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102345','1840612163219', 'Popa' ,'M.', 'Dan', 'A', 'N', 'I')

insert into tblStudent


(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102346','1840614463219', 'Andreescu' ,'G.', 'Dana', 'B', 'N', 'N')
insert into tblStudent
(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102347','1560614463619', 'Andrei' ,'J.', 'Alex', 'A', 'N', 'N')

insert into tblStudent


(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102348','1840618765219', 'Tudor' ,'L.', 'Mara', 'A', 'C', 'I')

insert into tblStudent


(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102349','1865438765221', 'Grigore' ,'N.', 'Cristina', 'B', 'C', 'N')

insert into tblStudent


(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102350','1869876545221', 'Gri' ,'P.', 'Doru', 'A', 'N', 'N')

insert into tblStudent


(Nrleg,CNP,NumeStudent,InitialaStudent,PrenumeStudent,
GrupaSinge,StareCivila,SituatiaMilitara)
values('102351','1869870005221', 'Popescu' ,'P.', 'Boris', 'A', 'D', 'N')

select * from tblStudent

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102345','0766558341',12,'personal')

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102346','0766553331',NULL,'acasa')

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102347','0756758341',NULL,'personal')

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102348','0761238341',NULL,'servici')

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102349','0766558890',12,'acasa')

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102350','0766558456',12,'personal')

insert into tblTelefonStud (NrLeg,NrTelefon,Interior,Observatii)


values('102351','0766551111',12,'personal')

insert into tblMaterie values ('M001', 'Analiza matematica 1', '1', 3, 2, 0, 0,


'N', 'E', 4)
insert into tblMaterie values ('M002', 'Analiza matematica 2', '1', 3, 2, 0, 0,
'N', 'E', 4)
insert into tblMaterie values ('A001', 'Algebra', '1', 3, 2, 0, 0, 'N', 'E', 4)
insert into tblMaterie values ('P001', 'Programare', '1', 3, 2, 0, 0, 'N', 'E', 6)
insert into tblMaterie values ('M004', 'Analiza matematica 2', '2', 3, 2, 0, 0,
'N', 'E', 6)
insert into tblMaterie values ('P002', 'Tehnici de programare', '2', 3, 2, 0, 0,
'N', 'E', 3)
insert into tblMaterie values ('F001', 'Fizica', '3', 3, 2, 0, 0, 'N', 'E', 4)

select * from tblMaterie

update tblStudent set Grupa='10205' where NrLeg='102345'


update tblStudent set Grupa='10206' where NrLeg='102346'
update tblStudent set Grupa='10204' where NrLeg='102347'
update tblStudent set Grupa='10205' where NrLeg='102348'
update tblStudent set Grupa='10204' where NrLeg='102349'
update tblStudent set Grupa='10206' where NrLeg='102350'
update tblStudent set Grupa='10206' where NrLeg='102351'

update tblStudent set DataNastere='2000-12-06' where NrLeg='102345'


update tblStudent set DataNastere='2000-10-18' where NrLeg='102346'
update tblStudent set DataNastere='2001-02-21' where NrLeg='102347'
update tblStudent set DataNastere='2002-01-05' where NrLeg='102348'
update tblStudent set DataNastere='2000-07-30' where NrLeg='102349'
update tblStudent set DataNastere='2001-11-10' where NrLeg='102350'
update tblStudent set DataNastere='2000-04-29' where NrLeg='102351'

select * from tblStudent

CREATE TABLE #tblStudentIncorporabil (


CNP char (13) UNIQUE,
NumeStudent varchar (40) NOT NULL,
InitialaStudent varchar(6),
PrenumeStudent varchar (40) NOT NULL
)

INSERT INTO #tblStudentIncorporabil


SELECT CNP, NumeStudent,InitialaStudent,PrenumeStudent
FROM tblStudent
WHERE Sex='M' AND SituatiaMilitara='I'AND
YEAR (DataNastere) +22=YEAR (GETDATE () )

SELECT CNP, NumeStudent,InitialaStudent,PrenumeStudent


INTO tblStudentIncorporabil
FROM tblStudent
WHERE Sex='M' AND SituatiaMilitara='I' AND
YEAR (DataNastere) +22=YEAR (GETDATE () )

SELECT NumeStudent, InitialaStudent,PrenumeStudent,


ISNULL (NrTelefon,'') AS Telefon, ISNULL(Interior,'') AS Interior,
ISNULL (Observatii,'') AS Observatie
INTO tblStudentSingeTelefonStud FROM tblStudent LEFT JOIN tblTelefonStud ON
tblStudent .NrLeg=tblTelefonStud.NrLeg WHERE GrupaSinge='A'

USE dbSecretariat04_05
GO
INSERT INTO dbSecretariat04_05ELTH.dbo.tblStudent
SELECT * FROM dbSecretariat04_05.dbo.tblStudent
WHERE Nrleg='102346'
GO
DELETE FROM tblStudent
GO
SELECT * FROM dbSecretariat04_05.dbo.tblStudent
SELECT * FROM dbSecretariat04_O0S5ELTH.dbo.tblStudent
GO

USE dbSecretariat04_05
DELETE FROM dbo.tblStudent
WHERE Nrleg IN (SELECT t1.NrLeg FROM tblStudent
AS tl INNER JOIN tblTelefonStud AS t2
ON t1.NrLeg=t2.NrLeg WHERE t2.Observati= 'personal')

SELECT * FROM tblStudent


SELECT * FROM tblTelefonStud

SELECT Nrleg,ID_Materie INTO tblStudiaza


FROM tblStudent CROSS JOIN tblMaterie
WHERE (TipMaterie ='N') AND (SUBSTRING (Grupa,3,1)=2) AND
(Semestrul IN (3,4))
GO
SELECT * FROM tblStudiaza

SELECT Nrleg,ID_Materie INTO tblStudiaza


FROM tblStudent CROSS JOIN tblMaterie
WHERE (TipMaterie='N') AND
(Semestrul IN (2*SUBSTRING (Grupa,3,1)-1,2*SUBSTRING (Grupa, 3,1)))

DELETE FROM tblMaterie WHERE


(SELECT COUNT (*) AS Solicitare FROM tblStudiaza
WHERE tblMaterie.ID_Materie=ID_Materie GROUP BY ID_Materie )
<7 AND TipMaterie='F'

SELECT *FROM tblMaterie


WHERE (SELECT COUNT (*) AS Solicitare
FROM tblStudiaza
WHERE tblMaterie.ID_Materie=ID_Materie
GROUP BY ID_Materie
) <7 AND TipMaterie='F'

CREATE VIEW vwFacultativeFaraSolicitare


As
SELECT *FROM tblMaterie
WHERE (SELECT COUNT (*) AS Solicitare
FROM tblStudiaza
WHERE tblMaterie.ID_Materie=ID_Materie
GROUP BY ID_Materie
) <7 AND TipMaterie='F'

SELECT * FROM vwFacultativeFaraSolicitare

SELECT GETDATE() AS DataCurenta,


NumeStudent, InitialaStudent, PrenumeStudent, DataNastere
FROM tblStudent
WHERE YEAR (DataNastere)+22<=YEAR (GETDATE () ) AND DataNastere<=GETDATE ()

SELECT CONVERT (char(10),GETDATE(),3) AS DataCurenta,


NumeStudent, InitialaStudent, PrenumeStudent,
CONVERT (char (10) ,DataNastere, 3) AS DataNastere
FROM tblStudent
WHERE (YEAR (DataNastere)+22<YEAR (GETDATE ()))OR
(YEAR (DataNastere) +22<YEAR (GETDATE () ) AND
MONTH (DataNastere) <=MONTH (GETDATE () ) AND DAY (DataNastere) <=DAY (GETDATE () )
)

SELECT CONVERT (char (10),GETDATE (), 3) AS DataCurenta,


NumeStudent+' '+InitialaStudent+' '+PrenumeStudent AS [Studenti],
CONVERT (char (10) , DataNastere, 3)AS DataNastere
FROM tblStudent
WHERE DataNastere BETWEEN GETDATE () AND GETDATE ()+3

SELECT CONVERT (char (10),GETDATE (), 3) AS DataCurenta,


NumeStudent+' '+InitialaStudent+' '+PrenumeStudent AS [Studenti],
CONVERT (char (10) ,DataNastere, 3) AS DataNastere
FROM tblStudent
WHERE SUBSTRING (CONVERT (char (8),DataNastere,1),1,5) BETWEEN
SUBSTRING (CONVERT (char (8) ,GETDATE(),1),1,5) AND
SUBSTRING (CONVERT (char (8) , GETDATE () +3,1) ,1,5)

SELECT Observatii, SUBSTRING(NrTelefon,1,4)AS [prefix],


COUNT (*)AS [numar studenti]
FROM tblStudent as t1 LEFT OUTER JOIN tblTelefonStud As t2 ON
t1.NrLeg=t2.Nrleg
WHERE SUBSTRING (Grupa,3,1)='2'
GROUP BY Observatii, SUBSTRING(NrTelefon,1,4)

SELECT Observatii, SUBSTRING (NrTelefon,1,4)AS [prefix],


COUNT (*)AS [numar studenti] FROM tblStudent as tl LEFT OUTER JOIN tblTelefonStud
As t2 ON
t1.NrLeg=t2.NrLeg WHERE SUBSTRING (Grupa,3,1)='2'
GROUP BY ALL Observatii, SUBSTRING (NrTelefon,1,4)

SELECT Observatii, SUBSTRING(NrTelefon,1,4)AS [prefix]


FROM tblStudent as tl LEFT OUTER JOIN tblTelefonStud As t2
ON t1.NrLeg=t2.NrLeg
ORDER BY Observatii, Prefix
COMPUTE COUNT(Observatii)

SELECT Observatii, SUBSTRING (NrTelefon,1,4)AS [prefix]


FROM tblStudent as tl LEFT OUTER JOIN tblTelefonStud As t2
ON t1.NrLeg=t2.NrLeg WHERE SUBSTRING (Grupa,3,1)='2'
ORDER BY Observatii, Prefix --SUBSTRING (NrTelefon,1,4)
COMPUTE COUNT (Observatii)BY Observatii

SELECT Observatii, SUBSTRING (NrTelefon,1,4)AS [prefix]


FROM tblStudent as tl LEFT OUTER JOIN tblTelefonStud As t2
ON t1.NrLeg=t2.NrLeg WHERE SUBSTRING (Grupa,3,1)='2'
ORDER BY Observatii, Prefix
COMPUTE COUNT (Observatii)BY Observatii, SUBSTRING(NrTelefon,1,4)
drop table tblStudiaza
drop table tblMaterie
drop table tblTelefonStud
drop table tblStudent
drop database dbSecretariat04_05
drop database HW7

You might also like