Вы находитесь на странице: 1из 13

1

BÀI THỰC HÀNH QUẢN LÝ SINH VIÊN

/* bang SINHVIEN */
CREATE TABLE SINHVIEN(TEN VARCHAR(30),MASV SMALLINT NOT NULL ,NAM SMALLINT,KHOA CHAR(5),
CONSTRAINT P_SV PRIMARY KEY (MASV))

/* bang MONHOC */
CREATE TABLE MONHOC(TENMH VARCHAR(20) NOT NULL,MAMH CHAR(10)NOT NULL,TINCHI SMALLINT,KHOA CHAR(5),
CONSTRAINT P_MH PRIMARY KEY (MAMH))

/*bang DIEUKIEN */
CREATE TABLE DIEUKIEN(MAMH CHAR(10) NOT NULL,MAMHTRUOC CHAR(10)NOT NULL,
CONSTRAINT P_DK PRIMARY KEY (MAMH,MAMHTRUOC),
CONSTRAINT F_DK FOREIGN KEY (MAMH) REFERENCES MONHOC(MAMH),
CONSTRAINT F_dk2 FOREIGN KEY (MAMHTRUOC) REFERENCES MONHOC(MAMH) )

/*bang KHOAHOC */
CREATE TABLE KHOAHOC(MAKH SMALLINT NOT NULL,MAMH CHAR(10)NOT NULL,HOCKY SMALLINT,NAM SMALLINT,GV
VARCHAR(20),
CONSTRAINT P_KH PRIMARY KEY (MAKH),
CONSTRAINT F_KH FOREIGN KEY (MAMH) REFERENCES MONHOC(MAMH))

/*bang KETQUA */
CREATE TABLE KETQUA(MASV SMALLINT NOT NULL,MAKH SMALLINT NOT NULL,DIEM SMALLINT,
CONSTRAINT P_KQ PRIMARY KEY (MASV,MAKH),
CONSTRAINT F_KQ_SV FOREIGN KEY (MASV) REFERENCES SINHVIEN(MASV),
CONSTRAINT F_KQ_KH FOREIGN KEY (MAKH) REFERENCES KHOAHOC(MAKH))

/*chen du lieu vao bang SINHVIEN */


INSERT INTO SINHVIEN(TEN,MASV,NAM,KHOA)
VALUES ('BAO',17,1,'CNTT')
INSERT INTO SINHVIEN(TEN,MASV,NAM,KHOA)
VALUES ('SON',8,2,'CNTT')
INSERT INTO SINHVIEN(TEN,MASV,NAM,KHOA)
2

VALUES ('MAI',10,1,'TOAN')

/*chen dl vao bang MONHOC */


INSERT INTO MONHOC(TENMH,MAMH,TINCHI,KHOA)
VALUES ('NHAP MON TIN HOC','COSC1310',4,'CNTT')
INSERT INTO MONHOC(TENMH,MAMH,TINCHI,KHOA)
VALUES ('CAU TRUC DU LIEU','COSC3320',4,'CNTT')
INSERT INTO MONHOC(TENMH,MAMH,TINCHI,KHOA)
VALUES ('TOAN ROI RAC','MATH2410',3,'TOAN')
INSERT INTO MONHOC(TENMH,MAMH,TINCHI,KHOA)
VALUES ('CO SO DU LIEU','COSC3380',3,'CNTT')
INSERT INTO MONHOC(TENMH,MAMH,TINCHI,KHOA)
VALUES ('LAP TRINH C','COSC3390',5,'CNTT')

/*chen dl vao bang DIEUKIEN */


INSERT INTO DIEUKIEN(MAMH,MAMHTRUOC)
VALUES ('COSC3380','COSC3320')
INSERT INTO DIEUKIEN(MAMH,MAMHTRUOC)
VALUES ('COSC3380','MATH2410')
INSERT INTO DIEUKIEN(MAMH,MAMHTRUOC)
VALUES ('COSC3320','COSC1310')
INSERT INTO DIEUKIEN(MAMH,MAMHTRUOC)
VALUES ('COSC3390','COSC3380')

/*chen dl vao bang KHOAHOC */


INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
VALUES (85,'MATH2410',1,86,'KIM')
INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
VALUES (92,'COSC1310',1,86,'AN')
INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
VALUES (102,'COSC3320',2,87,'NIEN')
INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
VALUES (112,'MATH2410',1,87,'CHAN')
INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
3

VALUES (119,'COSC1310',1,87,'AN')
INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
VALUES (135,'COSC3380',1,87,'SON')

/*chen dl vao bang KETQUA*/


insert into KETQUA(MASV,MAKH,DIEM)
values (17,112,8)
insert into KETQUA(MASV,MAKH,DIEM)
values (17,119,6)
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (8,85,10)
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (8,92,10)
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (8,102,8)
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (8,135,10)

/*cau 2*/
INSERT INTO SINHVIEN(TEN,MASV,NAM,KHOA)
VALUES ('NAM',25,2,'CNTT')

/*cau 3*/
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (25,102,7)
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (25,135,9)
exec sp_tables
select *
from sinhvien
select *
from khoahoc

/*cau4*/
4

update KETQUA set DIEM=9 where (MASV=8 and MAKH=102)

/* cau 5 */
delete from KETQUA where (MASV=8 and MAKH=135 and DIEM=10)

/*cau 6*/
select TEN
from SINHVIEN

/*cau 7*/
select TENMH,TINCHI
from MONHOC

/* cau 8*/
select SINHVIEN.MASV,TEN,DIEM,TENMH,HOCKY
from SINHVIEN,KETQUA,MONHOC,KHOAHOC
where SINHVIEN.MASV=KETQUA.MASV and KETQUA.MASV=8 and KETQUA.MAKH=KHOAHOC.MAKH and
MONHOC.MAMH=KHOAHOC.MAMH

/*Cau 9 */
select MAMHTRUOC
from DIEUKIEN
where MAMH='COSC3320'

/* cau 10*/
select MAMH
from DIEUKIEN
where MAMHTRUOC='COSC3320'

/*cau 11*/
select SINHVIEN.MASV,TEN,TENMH,DIEM
from SINHVIEN,MONHOC,KETQUA,KHOAHOC
where SINHVIEN.MASV=KETQUA.MASV AND KHOAHOC.MAMH=MONHOC.MAMH AND KHOAHOC.MAKH=KETQUA.MAKH AND DIEM>7
5

/* cau 12*/
select SINHVIEN.MASV,SINHVIEN.KHOA,TENMH
from MONHOC,SINHVIEN where TENMH='TOAN ROI RAC'AND MONHOC.KHOA=SINHVIEN.KHOA
select *
from MONHOC

/*cau 13*/
select MAMH,TENMH
from MONHOC where MAMH IN (select MAMHTRUOC
from DIEUKIEN,MONHOC where MONHOC.MAMH=DIEUKIEN.MAMH AND TENMH='CO SO DU LIEU')

/*cau 14*/
select MAMH,TENMH
from MONHOC where MAMH IN (select DIEUKIEN.MAMH
from DIEUKIEN,MONHOC where MONHOC.MAMH=DIEUKIEN.MAMHTRUOC AND TENMH='CO SO DU LIEU')

/*cau 15*/
select SINHVIEN.MASV,TEN,avg(DIEM)as DIEMTB,HOCKY,KHOAHOC.NAM
from SINHVIEN,KETQUA,KHOAHOC
where SINHVIEN.MASV=KETQUA.MASV AND KHOAHOC.MAKH=KETQUA.MAKH
group by SINHVIEN.MASV,HOCKY,KHOAHOC.NAM,TEN

/*cau 16*/
select distinct TEN,DIEM
from SINHVIEN,KETQUA where SINHVIEN.MASV=KETQUA.MASV AND DIEM=(select MAX(DIEM )from KETQUA)

/*cau 17*/
INSERT INTO KHOAHOC(MAKH,MAMH,HOCKY,NAM,GV)
VALUES (140,'COSC3390',2,87,'MIN')
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (8,135,6)
INSERT INTO KETQUA(MASV,MAKH,DIEM)
VALUES (8,140,7)
SELECT DISTINCT S.MASV ,TEN
6

FROM SINHVIEN S, KETQUA KQ1


WHERE S.MASV=KQ1.MASV AND NOT EXISTS (SELECT *
FROM MONHOC M
WHERE NOT EXISTS(
SELECT *
FROM KHOAHOC KH , KETQUA KQ2
WHERE KH.MAKH= KQ2.MAKH AND KH.MAMH=M.MAMH AND KQ2.MASV= KQ1.MASV))

/*cau 18*/
ALTER TABLE SINHVIEN ADD GIOITINH BIT
SELECT *
FROM SINHVIEN

/*cau 19*/
ALTER TABLE SINHVIEN ADD HOCBONG INT
SELECT *
FROM SINHVIEN
/*cau 20*/
DROP TABLE SINHVIEN
DROP TABLE MONHOC
DROP TABLE DIEUKIEN
DROP TABLE KHOAHOC
DROP TABLE KETQUA

/* BAI TAP QUAN LY NHAN VIEN */


/* TAO BANG NHANVIEN */
CREATE TABLE NHANVIEN(MANV CHAR(9) NOT NULL,HONV CHAR(10),TENLOT CHAR(30),TENNV CHAR(10),NGSINH DATETIME,DCHI
CHAR(100),PHAI CHAR(3),LUONG int,MA_NQL CHAR(9),PHG SMALLINT NOT NULL)
ALTER TABLE NHANVIEN ADD CONSTRAINT p_NHANVIEN PRIMARY KEY(MANV)
ALTER TABLE NHANVIEN ADD CONSTRAINT F1_NHANVIEN FOREIGN KEY(PHG) REFERENCES PHONGBAN
ALTER TABLE NHANVIEN ADD CONSTRAINT F2_NHANVIEN FOREIGN KEY(MA_NQL) REFERENCES NHANVIEN
7

/* TAO BANG PHONGBAN */


CREATE TABLE PHONGBAN(MAPHG SMALLINT NOT NULL,TENPHG CHAR(50),TRPHG CHAR(9),NG_NHANCHUC DATETIME)
ALTER TABLE PHONGBAN ADD CONSTRAINT P_PB PRIMARY KEY(MAPHG)
ALTER TABLE PHONGBAN ADD CONSTRAINT F_PHONGBAN FOREIGN KEY(TRPHG) REFERENCES NHANVIEN

/* TAO BANG DIADIEM_PHG */


CREATE TABLE DIADIEM_PHG(MAPHG SMALLINT NOT NULL,DIADIEM CHAR(100) NOT NULL)
ALTER TABLE DIADIEM_PHG ADD CONSTRAINT P_DIADIEM PRIMARY KEY(MAPHG,DIADIEM)
ALTER TABLE DIADIEM_PHG ADD CONSTRAINT F_DIADIEM FOREIGN KEY(MAPHG)REFERENCES PHONGBAN

/* TAO BANG DEAN */


CREATE TABLE DEAN(MADA SMALLINT NOT NULL,TENDA CHAR(50),DDIEM_DA CHAR(50),PHONG SMALLINT)
ALTER TABLE DEAN ADD CONSTRAINT P_DEAN PRIMARY KEY(MADA)
ALTER TABLE DEAN ADD CONSTRAINT F_DEAN FOREIGN KEY(PHONG)REFERENCES PHONGBAN

/* TAO BANG PHANCONG */


CREATE TABLE PHANCONG(MA_NVIEN CHAR(9) NOT NULL,SODA SMALLINT NOT NULL,THOIGIAN FLOAT)
ALTER TABLE PHANCONG ADD CONSTRAINT P_PHANCONG PRIMARY KEY(MA_NVIEN,SODA)
ALTER TABLE PHANCONG ADD CONSTRAINT F1_PHANCONG FOREIGN KEY(MA_NVIEN) REFERENCES NHANVIEN
ALTER TABLE PHANCONG ADD CONSTRAINT F2_PHANCONG FOREIGN KEY(SODA) REFERENCES DEAN

/* TAO BANG THANNHAN */


CREATE TABLE THANNHAN(MA_NVIEN CHAR(9) NOT NULL,TENTN CHAR(10)NOT NULL,PHAI CHAR(3),NGSINH DATETIME,QUANHE
CHAR(8))
ALTER TABLE THANNHAN ADD CONSTRAINT P_THANNHAN PRIMARY KEY(MA_NVIEN,TENTN)
ALTER TABLE THANNHAN ADD CONSTRAINT F_THANNHAN FOREIGN KEY(MA_NVIEN) REFERENCES NHANVIEN

ALTER TABLE NHANVIEN NOCHECK CONSTRAINT ALL


ALTER TABLE DEAN NOCHECK CONSTRAINT ALL
ALTER TABLE DIADIEM_PHG NOCHECK CONSTRAINT ALL
ALTER TABLE PHANCONG NOCHECK CONSTRAINT ALL
ALTER TABLE THANNHAN NOCHECK CONSTRAINT ALL
8

set dateformat dmy

/* NHAP DU LIEU*/
INSERT INTO NHANVIEN VALUES('123456789','DINH','BA','TIEN','09/01/75','120 TRAN HUNG DAO, Q1,TPHCM','NAM',30000,'333445555',5)
INSERT INTO NHANVIEN VALUES('333445555','NGUYEN','THANH','TUNG','08/12/45','12 NGUYEN VAN CU,Q
5,TPHCM','NAM',40000,'888665555',5)
INSERT INTO NHANVIEN VALUES('99988777','BUI','THUY','VU','19/07/58','60 NGUYEN TRAI,Q1,TPHCM','NAM',25000,'987654321',4)
INSERT INTO NHANVIEN VALUES('987654321','LE','THI','NHAN','20/06/31','203 HO VAN HUE,QPN.TPHCM','NU',43000,'888665555',4)
INSERT INTO NHANVIEN VALUES('666884444','NGUYEN','MANH','HUNG','15/09/52','45 LE LOI BA RIA VUNG TAU','NAM',38000,'333445555',5)
INSERT INTO NHANVIEN VALUES('453453453','TRAN','THANH','TAM','31/07/62','90 LE LOI Q1 TPHCM','NAM',25000,'33344555',5)
INSERT INTO NHANVIEN VALUES('987987987','TRAN','HONG','QUANG','29/03/59','21 LY THAI TO Q10 TPHCM','NAM',25000,'987654321',4)
INSERT INTO NHANVIEN VALUES('888665555','VUONG','NGOC','QUYEN','10/10/27','250 TRUNG VUONG, HA NOI','NU',55000,'NULL',1)

INSERT INTO NHANVIEN VALUES('111111111','VO','NGOC','HAN','10/5/27','120 NGUYEN DU, TPHCM','NU',55000,'NULL',1)

INSERT INTO PHONGBAN VALUES(5,'NGHIEN CUU','333445555','22/05/78')


INSERT INTO PHONGBAN VALUES(4,'DIEU HANH','987987987','01/01/85')
INSERT INTO PHONGBAN VALUES(1,'QUAN LY','888665555','19/06/71')

INSERT INTO DIADIEM_PHG VALUES(1,'TPHCM')


INSERT INTO DIADIEM_PHG VALUES(4,'HA NOI')
INSERT INTO DIADIEM_PHG VALUES(5,'VUNG TAU')
INSERT INTO DIADIEM_PHG VALUES(5,'NHA TRANG')
INSERT INTO DIADIEM_PHG VALUES(5,'TPHCM')

INSERT INTO DEAN VALUES(1,'SAN PHAM X','VUNG TAU',5)


INSERT INTO DEAN VALUES(2,'SAN PHAM Y','NHA TRANG',5)
INSERT INTO DEAN VALUES(3,'SAN PHAM Z','TPHCM',5)
INSERT INTO DEAN VALUES(10,'TIN HOC HOA','HA NOI',4)
INSERT INTO DEAN VALUES(20,'CAP QUANG','TPHCM',1)
INSERT INTO DEAN VALUES(30,'DAO TAO','HA NOI',4)
9

INSERT INTO PHANCONG VALUES('123456789',1,32.5)


INSERT INTO PHANCONG VALUES('123456789',2,7.5)
INSERT INTO PHANCONG VALUES('666884444',3,40.0)
INSERT INTO PHANCONG VALUES('453453453',1,20.0)
INSERT INTO PHANCONG VALUES('453453453',2,20.0)
INSERT INTO PHANCONG VALUES('333445555',3,10.0)
INSERT INTO PHANCONG VALUES('333445555',10,10.0)
INSERT INTO PHANCONG VALUES('333445555',20,10.0)
INSERT INTO PHANCONG VALUES('999887777',30,30.0)
INSERT INTO PHANCONG VALUES('999887777',10,10.0)
INSERT INTO PHANCONG VALUES('987987987',10,35.0)
INSERT INTO PHANCONG VALUES('987987987',30,5.0)
INSERT INTO PHANCONG VALUES('987654321',30,20.0)
INSERT INTO PHANCONG VALUES('987654321',20,15.0)
INSERT INTO PHANCONG VALUES('888665555',20,NULL)
INSERT INTO PHANCONG VALUES('123456789',3,32.5)

INSERT INTO THANNHAN VALUES('333445555','QUANG','NU','05/04/76','CON GAI')


INSERT INTO THANNHAN VALUES('333445555','KHANG','NAM','25/10/73','CON TRAI')
INSERT INTO THANNHAN VALUES('333445555','DUONG','NU','03/05/48','VO CHONG')
INSERT INTO THANNHAN VALUES('987654321','DANG','NAM','29/02/32','VO CHONG')
INSERT INTO THANNHAN VALUES('123456789','DUY','NAM','01/01/78','CON TRAI')
INSERT INTO THANNHAN VALUES('123456789','CHAU','NU','31/12/78','CON GAI')
INSERT INTO THANNHAN VALUES('123456789','PHUONG','NU','05/05/57','VO CHONG')

SELECT * FROM NHANVIEN


SELECT * FROM PHONGBAN
SELECT * FROM DIADIEM_PHG
SELECT * FROM DEAN
SELECT * FROM PHANCONG
SELECT * FROM THANNHAN
/*THỰC HÀNH PHẦN KHUNG NHÌN*/

/* CAU1*/
10

CREATE VIEW TENPHONG


AS SELECT MAPHG,HONV+TENLOT+TENNV AS HOTEN,LUONG,TENPHG
FROM NHANVIEN NV,PHONGBAN PB
WHERE NV.MANV=PB.TRPHG

SELECT * FROM TENPHONG

/*CAU 2*/
CREATE VIEW NHANVIEN1
AS SELECT MANV,HONV+TENLOT+TENNV AS HOTEN,TENDA,THOIGIAN
FROM NHANVIEN NV,DEAN DA,PHANCONG PC
WHERE DA.MADA=PC.SODA AND NV.MANV=PC.MA_NVIEN

SELECT * FROM NHANVIEN1

/*CAU 3*/
CREATE VIEW PHONGBAN1(TENPHG,SOLUONGNV,TONGLUONG)
AS SELECT TENPHG,COUNT(*),SUM(LUONG)
FROM NHANVIEN,PHONGBAN
WHERE NHANVIEN.PHG=PHONGBAN.MAPHG
GROUP BY PHG,TENPHG

SELECT * FROM PHONGBAN1

/*CAU 4*/
CREATE VIEW BANGDEAN(TENDEAN,TENPHONG,SONV,TONGTG)
AS SELECT TENDA,TENPHG,COUNT (MA_NVIEN),SUM(THOIGIAN)
FROM PHONGBAN PB,DEAN DA,PHANCONG PC
WHERE DA.MADA=PC.SODA AND PB.MAPHG=DA.PHONG
GROUP BY TENDA,TENPHG

SELECT * FROM BANGDEAN

/*CAU 5*/
11

CREATE VIEW BANGDEAN2(TENDEAN,TENPHONG,SONV,TONGTG)


AS SELECT TENDA,TENPHG,COUNT (MA_NVIEN),SUM(THOIGIAN)
FROM PHONGBAN PB,DEAN DA,PHANCONG PC
WHERE DA.MADA=PC.SODA AND PB.MAPHG=DA.PHONG
GROUP BY TENDA,TENPHG
HAVING COUNT (MA_NVIEN)>1

SELECT * FROM BANGDEAN2

/*CAU6*/
SELECT HOTEN,TENPHG ,LUONG
FROM TENPHONG
WHERE TENPHG='NGHIEN CUU'OR TENPHG='QUAN LY' OR TENPHG='DIEU HANH'

/*CAU 7*/
SELECT HOTEN ,TENDA
FROM NHANVIEN1
WHERE TENDA='SAN PHAM X'

/*CAU 8*/
SELECT TENPHG,SOLUONGNV,TONGLUONG
FROM PHONGBAN1
WHERE TENPHG ='NGHIEN CUU'

/*CAU 9*/
SELECT TENDEAN,TENPHONG,SONV,TONGTG
FROM BANGDEAN2
WHERE TENDEAN='TIN HOC HOA'

/*BÀI THƯC HÀNH QUẢN LÝ NHÂN VIÊN*/


/*CAU1*/
12

SELECT MANV,HONV+TENLOT+TENNV AS HOTEN,DCHI


FROM NHANVIEN,PHONGBAN
WHERE NHANVIEN.PHG=PHONGBAN.MAPHG AND TENPHG='NGHIEN CUU'

/*CAU 2*/
SELECT MADA,PHONG,HONV+TENLOT+TENNV AS HOTEN,DCHI,NGSINH,DDIEM_DA
FROM NHANVIEN NV,DEAN DA,PHONGBAN PB,PHANCONG PC
WHERE DA.MADA=PC.SODA AND PC.MA_NVIEN=PB.TRPHG AND NV.MANV=PB.TRPHG AND DDIEM_DA='HA NOI'

/*CAU 3*/
SELECT DISTINCT MANV,HONV+TENLOT+TENNV AS HOTEN
FROM NHANVIEN NV,PHANCONG PC1
WHERE NV.MANV=PC1.MA_NV
AND NOT EXISTS (SELECT *
FROM DEAN DA
WHERE DA.PHONG=5 AND NOT EXISTS (SELECT *
FROM PHANCONG PC2
WHERE PC2.SODA=DA.MADA
/*CAU 6*/
SELECT *
FROM NHANVIEN
WHERE MANV NOT IN (SELECT MA_NVIEN
FROM THANNHAN)

/*CAU 7*/
SELECT HONV,TENLOT,TENNV
WHERE EXISTS(SELECT *
FROM PHONGBAN
WHERE MANV=TRPHG) AND EXISTS(SELECT *
13

FROM THANNHAN
WHERE MANV=MA_NVIEN)
/*CAU 8*/

/*CAU 10*/
SELECT HONV,TENLOT,TENNV
FROM NHANVIEN
WHERE MA_NQL IN (SELECT MANV
FROM NHANVIEN
WHERE HONV='NGUYEN' AND TENLOT='THANH' AND TENNV='TUNG'
AND PC2.MA_NVIEN=PC1.MA_NVIEN)

/*CAU 19*/
SELECT HONV+TENLOT+TENNV AS HOTEN,TENPHG
FROM NHANVIEN,PHONGBAN
WHERE MANV=TRPHG AND PHG IN (SELECT PHG
FROM NHANVIEN
GROUP BY PHG
HAVING COUNT (MANV)>= ALL (SELECT COUNT (MANV)
FROM NHANVIEN
GROUP BY PHG))

/*CAU20*/
SELECT TENPHG,COUNT(MANV),LUONG

/*CAU 21*/
SELECT MANV,HONV+TENLOT+TENNV AS HOTEN,NGSINH
FROM NHANVIEN
WHERE YEAR(GETDATE() - YEAR(NGSINH))>50

Вам также может понравиться