Bai Tap SQL Server
-
Upload
thinhbgcntt -
Category
Documents
-
view
619 -
download
4
Transcript of Bai Tap SQL Server
--BAI TAP THUC HANH CHO CAC LOP TIN CHI----TAO CO SO DU LIEU QUAN LY GOM CAC BANG DU LIEU SAU--CREATE DATABASE QLGV --QUAN LY GIAO VIEN ON(NAME=QLGV_DAT,FILENAME='D:\DATA\GLGV_DAT.MDF',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB)LOG ON (NAME=QLGV_LOG,FILENAME='D:\DATA\QLGV_LOG.LDF',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB)
--TAO BANG GIAO VIEN CREATE TABLE GIAOVIEN (MAGV CHAR(10) PRIMARY KEY,TENGV NVARCHAR (30),DIACHI NVARCHAR (30),DIENTHOAI CHAR (15))
--TAO BANG HOCVI CREATE TABLE HOCVI (MAHV CHAR (10)PRIMARY KEY,TENHOCVI NVARCHAR (15))
--TAO BANG CHUYEN NGANH CREATE TABLE CHUYENNGANH (MACN CHAR(10)PRIMARY KEY,TENCN NVARCHAR (30))
--TAO BANG GV_HV_CNCREATE TABLE GV_HV_CN
(MAGV CHAR(10),MAHV CHAR (10),MACN CHAR(10),NAM CHAR (10),CONSTRAINT R0 PRIMARY KEY(MAGV,MAHV,MACN),CONSTRAINT R1 FOREIGN KEY (MAGV) REFERENCES GIAOVIEN(MAGV),CONSTRAINT R2 FOREIGN KEY (MAHV) REFERENCES HOCVI(MAHV),CONSTRAINT R3 FOREIGN KEY (MACN) REFERENCES CHUYENNGANH(MACN))
SELECT *FROM GIAOVIEN SELECT*FROM HOCVISELECT*FROM CHUYENNGANH SELECT*FROM GV_HV_CN
--NHAP DU LIEU CHO BANG GIAOVIEN
INSERT INTO GIAOVIEN VALUES('GV01','TRAN VAN THINH','BAC GIANG ','01689994275')INSERT INTO GIAOVIEN VALUES('GV02','HOANG VAN CUONG ','BAC GIANG ','0123456789')INSERT INTO GIAOVIEN VALUES('GV03','NGUYEN THI DUNG','BAC GIANG ','01653755211')
--NHAP DU LIEU CHO BANG HOC VI INSERT INTO HOCVI VALUES ('HV01','THAC SI')INSERT INTO HOCVI VALUES ('HV02','TIEN SI')INSERT INTO HOCVI VALUES ('HV03','GIAO SU')
--NHAP DU LIEU CHO BANG CHUYEN NGANH INSERT INTO CHUYENNGANH VALUES ('CN01','MANG VA TRUYEN THONG')INSERT INTO CHUYENNGANH VALUES ('CN02','KHOA HOC MAY TINH')INSERT INTO CHUYENNGANH VALUES ('CN03','KHOA HOC CO BAN')
--NHAP DU LIEU CHO BANG GV_HV_CNINSERT INTO GV_HV_CN VALUES('GV01','HV01','CN01','2009')INSERT INTO GV_HV_CN VALUES('GV02','HV02','CN01','2009')INSERT INTO GV_HV_CN VALUES('GV03','HV01','CN02','2009')
SELECT MAGV FROM GIAOVIEN
--2.TAO VIEW TONG HOP GIAO VIEN CO HOC VI TIEN SI CREATE VIEW TIENSI AS
SELECT GIAOVIEN.*,HOCVI.*,GV_HV_CN.NAM,CHUYENNGANH.TENCN FROM GIAOVIEN,HOCVI,GV_HV_CN,CHUYENNGANHWHERE GIAOVIEN.MAGV=GV_HV_CN.MAGV AND HOCVI.MAHV=GV_HV_CN.MAHV AND CHUYENNGANH.MACN=GV_HV_CN.MACN AND HOCVI.TENHOCVI='TIEN SI'
SELECT *FROM TIENSI
DROP VIEW TIENSI
--3.TAO VIEW TONG HOP THONG TIN GIAO VIEN CHUYEN NGANH MANG VA TRUYEN THONG
CREATE VIEW CHUYENNGANHMANGASSELECT GIAOVIEN.*,HOCVI.*,GV_HV_CN.NAM,CHUYENNGANH.TENCN FROM GIAOVIEN,HOCVI,GV_HV_CN,CHUYENNGANHWHERE GIAOVIEN.MAGV=GV_HV_CN.MAGV AND HOCVI.MAHV=GV_HV_CN.MAHV AND CHUYENNGANH.MACN=GV_HV_CN.MACN AND CHUYENNGANH.TENCN='MANG VA TRUYEN THONG'
--HIEN THI VIEW CHUYEN NGANH MANG SELECT *FROM CHUYENNGANHMANG
--4.TAO VIEW DE CHO BIET THONG TIN VE GIAO VIEN CO DIA CHI O THAI NGUYEN CREATE VIEW DIACHITNASSELECT GIAOVIEN.*,HOCVI.*,GV_HV_CN.NAM,CHUYENNGANH.TENCN FROM GIAOVIEN,HOCVI,GV_HV_CN,CHUYENNGANHWHERE GIAOVIEN.MAGV=GV_HV_CN.MAGV AND HOCVI.MAHV=GV_HV_CN.MAHV AND CHUYENNGANH.MACN=GV_HV_CN.MACN AND GIAOVIEN.DIACHI='BAC GIANG'
SELECT *FROM DIACHITN
--TAO THU TUC NHAP DU LIEU CHO BANG GIAO VIEN CREATE PROC SP_NHAP @MAGV CHAR (10),@TENGV NVARCHAR(30),@DIACHI NVARCHAR (30),@DIENTHOAI CHAR(15)ASINSERT INTO GIAOVIEN(MAGV,TENGV,DIACHI,DIENTHOAI)
VALUES (@MAGV,@TENGV,@DIACHI,@DIENTHOAI)GO SELECT * FROM GIAOVIEN
--XEM NOI DUNG THU TUC SP_HELPTEXT SP_NHAP
DROP PROC SP_NHAP
EXEC SP_NHAP 'GV04','THAN VAN CHINH','BAC GIANG','0123456963'EXEC SP_NHAP 'GV05','HOANG TRONG NGHIA','BAC GIANG','0123456963'
--6.TAO THU TUC CO THAM SO @NAM DE DUA RA TÊN CỦA CÁC GIÁO VIÊN NHẬN HỌC VỊ TIẾN SĨ VÀO --NĂM TRÊN
CREATE PROC SP_HVTS --HỌC VỊ TIẾN SĨ@NAM CHAR (10)ASSELECT TENGVFROM GIAOVIENWHERE MAGV IN
(SELECT MAGV FROM GV_HV_CNWHERE MAHV IN
(SELECT MAHVFROM HOCVIWHERE TENHOCVI='TIEN SI')AND NAM=@NAM
)
EXEC SP_HVTS '2009'
--6.TAO THU TUC CO THAM SO @TENHV DE DUA RA THONG TIN VE CAC GIAO VIEN CO TEN HOC VI TREN CREATE PROC SP_Y6@TENHOCVI NVARCHAR (15)AS
SELECT*FROM GIAOVIEN
WHERE MAGV IN( SELECT MAGV
FROM GV_HV_CN WHERE MAHV IN
( SELECT MAHV FROM HOCVI WHERE TENHOCVI=@TENHOCVI)
)
EXEC SP_Y6 'TIEN SI'
--LAM LAI CREATE PROC SP_Y7@TENHOCVI NVARCHAR (15)AS
SELECT * FROM GIAOVIEN
WHERE MAGV IN (
SELECT MAGV FROM GV_HV_CN WHERE MAHV IN
( SELECT MAHV FROM HOCVI WHERE TENHOCVI=@TENHOCVI)
)
EXEC SP_Y7 'THAC SI'
--8.TAO TRIGGER ĐỂ KIỂM TRA KHI NHẬP DỮ LIỆU VÀO BẢNG GV_HV_CN NẾU NĂM NHẬP VÀO NHỎ HƠN 0 THÌ --IN RA MAN HINH LA 'DỮ LIỆU NHẬP VÀO KHÔNG HỢP LỆ' VÀ BẢN GHI NÀY KHÔNG ĐƯỢC PHÉP NHẬP VÀO BẢNG --NGƯỢC LẠI IN RA MÀN HÌNH THÔNG BÁO'BẢN GHI ĐƯỢC NHẬP THÀNH CÔNG'
CREATE TRIGGER TRUYNHAP ON GV_HV_CNFOR INSERT AS IF EXISTS (
SELECT NAM
FROM GV_HV_CN WHERE NAM <0 )
BEGIN PRINT 'DU LIEU KHONG HOP LE' ROLLBACK TRAN
END ELSE
PRINT 'NHAP DU LIEU THANH CONG'
GO--DEN DAY THI OK ROI NHUNG SAO KHI MINH INSERT DU LIEU LAI BAO LOI NHI --Invalid object name 'GV_HV_CN'.??WHAT ??
DROP TRIGGER TRUYNHAP
INSERT INTO GV_HV_CN VALUES ('GV10','HV05','CN05','2010')
--9.DUNG KIEU DU LIEU CURSOR DE DUA RA THONG TIN CUA TUNG GIAO VIEN CUA TUNG CHUYEN NGANH DECLARE TTGV CURSOR --THONG TIN GIAO VIEN
--BAI 2 CHO CO SO DU LIEU QUAN LY GOM --TAO CO SO DU LIEU BAI2CREATE DATABASE BAI2ON (NAME=BAI2_DAT,FILENAME='D:\DATA\BAI2_DAT.MDF',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB)LOG ON (NAME=BAI2_LOG,FILENAME='D:\DATA\BAI2_LOG.LDF',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB
)
--TAO BANG TOCONGDOAN CREATE TABLE TOCONGDOAN(MATCD CHAR(10)PRIMARY KEY,--MÃ TỔ CÔNG ĐOÀN TENTCD NVARCHAR(30))
--TAO BANG CONGDOANCREATE TABLE CONGDOAN (MACDV CHAR(10)PRIMARY KEY,--MA CÔNG ĐOÀN VIÊN TENCDV NVARCHAR(30),--TÊN CÔNG ĐOÀN VIÊN NGAYS SMALLDATETIME,--NGAY SINH NGAYV SMALLDATETIME,--NGÀY VÀO ĐOÀN MATCD CHAR (10),CONSTRAINT KN1 FOREIGN KEY(MATCD)REFERENCES TOCONGDOAN(MATCD))
--TAO BANG KHEN THUONG CREATE TABLE KHENTHUONG (MACDV CHAR(10),MSKT CHAR (10),LYDO NVARCHAR(30),NAM CHAR (4),CONSTRAINT KC PRIMARY KEY (MACDV,MSKT),CONSTRAINT KN2 FOREIGN KEY (MACDV)REFERENCES CONGDOAN(MACDV))
--HIEN THI BANG
SELECT*FROM TOCONGDOANSELECT*FROM CONGDOAN SELECT*FROM KHENTHUONG
--NHAP DU LIEU CHO BANG TO CONG DOAN INSERT INTO TOCONGDOAN VALUES('T1','TO KHOA HOC')INSERT INTO TOCONGDOAN VALUES('T2','TO MAY TINH ')INSERT INTO TOCONGDOAN VALUES('T3','TO HE THONG THONG TIN')INSERT INTO TOCONGDOAN VALUES('T4','TO MANG TRUYEN THONG')
--NHAP DU LIEU CHO BANG CONG DOAN
INSERT INTO CONGDOAN VALUES('DV01','TRAN VAN THINH','02/23/1989','01/01/1995','T1')INSERT INTO CONGDOAN VALUES('DV02','NGUYEN VAN A','12/23/1989','01/01/1995','T1')INSERT INTO CONGDOAN VALUES('DV03','PHAM VAN B','11/17/1989','01/01/1995','T2')INSERT INTO CONGDOAN VALUES('DV04','HOANG VAN C','09/10/1989','01/01/1995','T3')
--NHAP DU LIEU CHO BANG KHENTHUONGINSERT INTO KHENTHUONG VALUES ('DV01','KT10','HOC GIOI','2010')INSERT INTO KHENTHUONG VALUES ('DV01','KT09','TAN GAI GIOI','2010')INSERT INTO KHENTHUONG VALUES ('DV02','KT11','KHONG HOC THI THOI','2010')INSERT INTO KHENTHUONG VALUES ('DV03','KT12','HOC GIOI','2010')INSERT INTO KHENTHUONG VALUES ('DV04','KT13','HOC GIOI','2010')
--2.HAY TAO VIEW DE TONG HOP THONG TIN VE CAC CONG DOAN VIEN DA DUOC KHEN THUONG O TO CONG DOAN HE THONG THONG TIN CREATE VIEW THTT--TONG HOP THONG TIN ASSELECT CONGDOAN.*FROM CONGDOANWHERE MACDV IN (SELECT MACDV FROM KHENTHUONG)--HIEN THI VIEW SELECT*FROM THTT
DROP VIEW THTT
--3.TAO VIEW HIEN TH VE CAC CING DOAN VIEN CHUA DUOC KHEN THUONG
CREATE VIEW CHUAKTAS SELECT CONGDOAN.*FROM CONGDOANWHERE MACDV NOT IN (SELECT MACDV FROM KHENTHUONG)
DROP VIEW CHUAKT--HIEN THI VIEW SELECT *FROM CHUAKT --4.HAY TAO VIEW DE TONG HOP THONG TIN VE CAC CONG DOAN VIEN DUOC KHEN THUONG VI HOC GIOI CREATE VIEW Y4 ASSELECT CONGDOAN.*FROM CONGDOAN,KHENTHUONG
WHERE (CONGDOAN.MACDV=KHENTHUONG.MACDV)AND KHENTHUONG.LYDO='HOC GIOI' --HIEN THI VIEWSELECT *FROM Y4
--bai 3:CHO CO SO DU LIEU QUAN LY DIEM GOM 3 BANG DU LIEU SAU --TAO CO SO DU LIEU VOI TEN QUAN LY DIEM
CREATE DATABASE QLDON (NAME=QLD_DAT,FILENAME='D:\DATA\QLD_DAT.MDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)
LOG ON (NAME=QLD_LOG,FILENAME='D:\DATA\QLD_LOG.LDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)
--TAO BANG SINH VIEN CREATE TABLE SINHVIEN (MASV CHAR(10)PRIMARY KEY,HOTENSV NVARCHAR(30),NS NVARCHAR (30),DIACHI NVARCHAR(30))
--TAO BANG MON CREATE TABLE MON (MAMON CHAR(10)PRIMARY KEY,TENMON NVARCHAR (30),DVHT CHAR (2))
--TAO BANG DIEM CREATE TABLE DIEM (MAMON CHAR(10),MASV CHAR(10),PHACH CHAR (10),DIEM FLOAT,CONSTRAINT RBKC PRIMARY KEY (MAMON,MASV),CONSTRAINT RBKN1 FOREIGN KEY (MAMON)REFERENCES MON(MAMON),CONSTRAINT RBKN2 FOREIGN KEY (MASV)REFERENCES SINHVIEN(MASV) )--HIEN THI THONG TIN CAC BANG SELECT*FROM SINHVIEN SELECT*FROM MON SELECT *FROM DIEM
--NHAP DU LIEU CHO CAC BANG INSERT INTO SINHVIEN VALUES ('SV01','TRAN VAN A','02/23/89','BAC GIANG')INSERT INTO SINHVIEN VALUES ('SV02','NGUYEN VAN B','11/17/89','VINH PHUC')INSERT INTO SINHVIEN VALUES ('SV03','NGUYEN THI DUNG','10/09/89','HA NOI')INSERT INTO SINHVIEN VALUES ('SV04','HOANG VAN DONG','04/05/89','THANH HOA')
--NHAP DU LIEU CHO BANG MON INSERT INTO MON VALUES ('M1','ANH VAN 1','2')INSERT INTO MON VALUES ('M2','ANH VAN CO SO','2')INSERT INTO MON VALUES ('M3','MANG MAY TINH','3')INSERT INTO MON VALUES ('M4','CHUONG TRINH DICH',4)
--NHAP DU LIEU CHO BANG DIEM INSERT INTO DIEM VALUES('M1','SV01','125','6.5')INSERT INTO DIEM VALUES('M1','SV02','126','8.5')INSERT INTO DIEM VALUES('M2','SV02','136','7.5')INSERT INTO DIEM VALUES('M3','SV03','165','8.5')
DROP TABLE MON
DROP TABLE SINHVIENDROP TABLE DIEM --2.THEM TRUONG DTB VAO BANG SINH VIEN ALTER TABLE SINHVIENADD DTB FLOAT
--3.TAO VIEW VE SINH VIEN CO DIEM CAO NHAT MON ANH VAN 1CREATE VIEW CNL --CAO NHAT LOPASSELECT MAMON,MAX(DIEM)AS DCN --DCN LA DIEM CAO NHATFROM SINHVIEN,DIEM GROUP BY MAMON
--HIEN THI DIEM NHAT MOI MON SELECT *FROM CNL
DROP VIEW CNL
CREATE VIEW TTSV --THONG TIN SINH VIEN ASSELECT SINHVIEN.*FROM SINHVIEN,MON,DIEM WHERE MASV IN
(SELECT MASV FROM DIEM WHERE MAMON IN (SELECT MAMON FROM CNL WHERE DIEM=DCN )AND MAMON IN (SELECT MAMON FROM MON WHERE TENMON='ANH VAN 1'))--SAI ROI ?KO BIET SAI O DAU NUA BUN QUA!
DROP VIEW TTSV
SELECT *FROM TTSV
--BAI 3:QUAN LY TINH HINH BAN HANG --TAO CO SO DU LIEU --QUAN LY BAN HANG
CREATE DATABASE QLBH ON (NAME=QLBH_DAT,
FILENAME='D:\DATA\QLBH_DAT.MDF',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB)
LOG ON (NAME =QLBH_LOG,FILENAME='D:\DATA\QLBH_LOG.LDF',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB)
--TAO BANG MAT HANG CREATE TABLE MATHANG (MAH CHAR(10) PRIMARY KEY,TENH NVARCHAR(30),SOLUONG TINYINT)
--TAO BANG NHAT KY BAN
CREATE TABLE NHATKYBAN(STT TINYINT PRIMARY KEY,NGAY SMALLDATETIME,NGUOIMUA nvarchar(30),MAH CHAR(10),SOLUONG TINYINT,GIA FLOAT,CONSTRAINT R4 FOREIGN KEY(MAH) REFERENCES MATHANG(MAH))DROP TABLE NHATKYBAN
--SHOW CAC BANG VUA TAO SELECT*FROM MATHANGSELECT*FROM NHATKYBAN
--NHAP 5 BO DU LIEU CHO MOI BANG INSERT INTO MATHANG VALUES('H1','BANH TRUNG','50')
INSERT INTO MATHANG VALUES('H2','BANH MUT','150')INSERT INTO MATHANG VALUES('H3','SOCOLA','250')INSERT INTO MATHANG VALUES('H4','BANH PHU THE','150')INSERT INTO MATHANG VALUES('H5','BANH TROI TAU','250')
--NHAP 5 BO DU LIEU CHO BANG NHAT KY BAN
INSERT INTO NHATKYBAN VALUES('01','11/10/2010','TRAN VAN THINH','H1','35','1500')INSERT INTO NHATKYBAN VALUES('02','11/25/2010','HOANG VAN CUONG','H1','15','1500')INSERT INTO NHATKYBAN VALUES('03','11/25/2010','TRAN HUU DAT','H2','50','2500')INSERT INTO NHATKYBAN VALUES('04','11/25/2010','PHAM GIA THINH','H3','35','4500')INSERT INTO NHATKYBAN VALUES('05','11/25/2010','TRUONG QUOC THINH','H5','35','1500')
---them mot truong THANH TIEN VAO TRUONG NHAT KY BANALTER TABLE NHATKYBAN ADD THANHTIEN FLOAT
--TAO VIEW TONG HOP THONG TIN VE NHUNG MAT HANG CHUA CO AI MUA
CREATE VIEW CHUAMUA AS SELECT MATHANG.*FROM MATHANGWHERE MAH NOT IN (SELECT MAH FROM NHATKYBAN)
SELECT *FROM CHUAMUA
--
--BAI 1:TRANG 1:CHO SO SO DU LIEU QUAN LY DIEM REN LUYEN CREATE DATABASE BA1_1ON(NAME=BAI1_1_DAT,FILENAME='D:\DATA\BAI1_1_DAT.MDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB
)LOG ON (NAME=BAI1_1_LOG,FILENAME='D:\DATA\BAI1_1_LOG.LDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)
--TAO BANG LOP CREATE TABLE LOP (MALOP CHAR (10)PRIMARY KEY,TENLOP NVARCHAR(30))
--TAO BANG SINHVIEN CREATE TABLE SINHVIEN (MASV CHAR(10)PRIMARY KEY,TENSV NVARCHAR(30),NGAYSINH DATETIME,MALOP CHAR(10),CONSTRAINT KNB1_1 FOREIGN KEY (MALOP)REFERENCES LOP(MALOP))
--TAO BANG DIEM REN LUYEN CREATE TABLE DRL (MASV CHAR (10),HOCKY CHAR(2),NAM CHAR(10),DIEM FLOAT,CONSTRAINT KCB1_1 PRIMARY KEY (MASV,HOCKY),CONSTRAINT KN2B1_1 FOREIGN KEY (MASV)REFERENCES SINHVIEN(MASV))
--SHOW CAC BANG SELECT *FROM LOP SELECT *FROM SINHVIEN SELECT*FROM DRL
--CAU2.1 HAY TAO VIEW TONG HOP THONG TIN VE DIEM REN LUYEN CUA NHUNG SINH VIEN HOC LOP K7DCNTTCREATE VIEW THTTAS
SELECT LOP.*,SINHVIEN.MASV,SINHVIEN.TENSV,HOCKY,DIEMFROM LOP,SINHVIEN,DRL WHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND LOP.TENLOP='K7DCNTT'
SELECT *FROM THTT
--CAU 3.1:TAO THU TUC CO THAM SO @MASV DE DUA RA THONG TIN VE DIEM REN LUYEN CUA SINH VIEN TREN CREATE PROC SPTHSV @MASV CHAR (10)AS SELECT LOP.*,SINHVIEN.MASV,SINHVIEN.TENSV,HOCKY,DIEMFROM LOP,SINHVIEN,DRL
WHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND SINHVIEN.MASV=@MASV
EXEC SPTHSV 'SV01'
--CAU 5:TAO VIEW DE IN RA THONG TIN SINH VIEN CO DIEM REN LUYEN CAO NHAT CREATE VIEW THDRL --THONG TIN DIEM REN LUYEN ASSELECT *FROM SINHVIENWHERE MASV IN
(SELECT MASV FROM DRLWHERE DIEM IN (SELECT MAX(DIEM) FROM DRL)
)
SELECT *FROM THDRL
--CAU 5.2:IN RA THONG TIN SINH VIEN CO DIEM REN LUYEN CAO NHAT CUA MOI LOPCREATE VIEW Y4.2ASSELECT *FROM SINHVIEN WHERE SINHVIEN IN
(SELECT MASV FROM DRL WHERE DIEM IN (SELECT )
)
--cau 4:SU DUNG KIEU DU LIEU CURSOR DE IN RA MAN HINH DANH SACH DIEM REM LUYEN CUA NAM 2009_2010
--BAI 1:TRANG 1:CHO SO SO DU LIEU QUAN LY DIEM REN LUYEN CREATE DATABASE BA1_1ON(NAME=BAI1_1_DAT,FILENAME='D:\DATA\BAI1_1_DAT.MDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)LOG ON (NAME=BAI1_1_LOG,FILENAME='D:\DATA\BAI1_1_LOG.LDF',
SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)
--TAO BANG LOP CREATE TABLE LOP (MALOP CHAR (10)PRIMARY KEY,TENLOP NVARCHAR(30))
--TAO BANG SINHVIEN CREATE TABLE SINHVIEN (MASV CHAR(10)PRIMARY KEY,TENSV NVARCHAR(30),NGAYSINH DATETIME,MALOP CHAR(10),CONSTRAINT KNB1_1 FOREIGN KEY (MALOP)REFERENCES LOP(MALOP))
--TAO BANG DIEM REN LUYEN CREATE TABLE DRL (MASV CHAR (10),HOCKY CHAR(2),NAM CHAR(10),DIEM FLOAT,CONSTRAINT KCB1_1 PRIMARY KEY (MASV,HOCKY),CONSTRAINT KN2B1_1 FOREIGN KEY (MASV)REFERENCES SINHVIEN(MASV))
--SHOW CAC BANG SELECT *FROM LOP SELECT *FROM SINHVIEN SELECT*FROM DRL
--CAU2.1 HAY TAO VIEW TONG HOP THONG TIN VE DIEM REN LUYEN CUA NHUNG SINH VIEN HOC LOP K7DCNTTCREATE VIEW THTTAS
SELECT LOP.*,SINHVIEN.MASV,SINHVIEN.TENSV,HOCKY,DIEMFROM LOP,SINHVIEN,DRL WHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND LOP.TENLOP='K7DCNTT'
SELECT *FROM THTT
--CAU 3.1:TAO THU TUC CO THAM SO @MASV DE DUA RA THONG TIN VE DIEM REN LUYEN CUA SINH VIEN TREN CREATE PROC SPTHSV @MASV CHAR (10)AS
SELECT LOP.*,SINHVIEN.MASV,SINHVIEN.TENSV,HOCKY,DIEMFROM LOP,SINHVIEN,DRL
WHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND SINHVIEN.MASV=@MASV
EXEC SPTHSV 'SV01'
--CAU 5:TAO VIEW DE IN RA THONG TIN SINH VIEN CO DIEM REN LUYEN CAO NHAT CREATE VIEW THDRL --THONG TIN DIEM REN LUYEN ASSELECT *FROM SINHVIENWHERE MASV IN
(SELECT MASV FROM DRLWHERE DIEM IN (SELECT MAX(DIEM) FROM DRL)
)
SELECT *FROM THDRL
--CAU 5.2:IN RA THONG TIN SINH VIEN CO DIEM REN LUYEN CAO NHAT CUA MOI LOPCREATE VIEW Y4.2ASSELECT *FROM SINHVIEN WHERE SINHVIEN IN
(SELECT MASV FROM DRL WHERE DIEM IN (SELECT )
)
--cau 4:SU DUNG KIEU DU LIEU CURSOR DE IN RA MAN HINH DANH SACH DIEM REM LUYEN CUA NAM 2009_2010
--cau 6:TAO THU TUC CO THAM SO VAO @MALOP,@NAM DE DUA RA THONG TIN DIEM REN LUYEN --CUA LOP TREN VAO NAM HOC TREN CREATE PROC Y6 @MALOP CHAR(10),@NAM CHAR(10)AS SELECT DRL.*FROM DRL,LOP,SINHVIENWHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND LOP.MALOP=@MALOP AND DRL.NAM=@NAM
EXEC Y6 'DH01','2009_2010'
--CAU 7:TAO TRIGGER KIEM TRA VIEC NHAP DU LIEU CHO BANG DIEM REN LUYEN NEU DIEM REN LUYEN NHAP --NHAP VAO NHO <0 HOAC >100 THI DUA RA YEU CAU NHA LAI VA BAN NGHI NAY KO DUOC PHEP NHAP VAO BANG--VA NGUOC LAI THI THONG BAO LA THANH CONG
CREATE TRIGGER Y7 ON DRL FOR INSERT
ASIF EXISTS (SELECT DIEM
FROM DRL WHERE (DIEM <0)OR (DIEM>100))BEGIN ROLLBACK TRAN
PRINT 'YEU CAU BAN NHAP LAI DU LIEU'
ENDELSE PRINT 'NHAP DU LIEU THANH CONG'
GO
INSERT INTO DRL VALUES ('SV04','1','2009_2010',6.8)
SELECT MASV FROM SINHVIENSELECT HOCKY FROM SINHVIEN
SP_HELPTEXT Y7
--BAI 2 TRANG 5:CREATE DATABASE BA2_5ON (NAME=BAI2_5_DAT,FILENAME='D:\DATA\BAI2_5_DAT.MDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)
LOG ON (NAME=BAI2_5_LOG,FILENAME='D:\DATA\BAI2_5_LOG.LDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=3MB)
--TAO BANG TOCONGDOAN CREATE TABLE TOCONGDOAN (MATCD CHAR(10)PRIMARY KEY,TENTCD NVARCHAR (30))
--TAO BANG CONGDOAN CREATE TABLE CONGDOAN (
MACDV CHAR(10)PRIMARY KEY,TENCDV NVARCHAR (30),NGAYS SMALLDATETIME,NGAYV SMALLDATETIME,MATCD CHAR(10),CONSTRAINT KNB2_5 FOREIGN KEY (MATCD) REFERENCES TOCONGDOAN(MATCD))
--TAO BANG KHEN THUONG CREATE TABLE KHENTHUONG (MACDV CHAR(10),MSKT CHAR(5),LYDO NVARCHAR(30),NAM CHAR(4),
CONSTRAINT KCB2_5 PRIMARY KEY(MACDV,MSKT),CONSTRAINT KN1B2_5 FOREIGN KEY (MACDV) REFERENCES CONGDOAN(MACDV))
SELECT *FROM TOCONGDOAN SELECT* FROM CONGDOAN SELECT *FROM KHENTHUONG
--CAU 2:HAY TAO VIEW HIEN THI THONG TIN VE CAC CONG DOAN VIEN DA DUOC KHEN THUONG O TO TOAN CREATE VIEW Y2 AS SELECT *FROM CONGDOAN WHERE MACDV IN (SELECT MACDV FROM KHENTHUONG
WHERE MATCD IN ( SELECT MATCD FROM TOCONGDOAN
WHERE TENTCD='TOAN'))
SELECT*FROM Y2
--CAU 3:TAO VIEW CHO BIET THONG TIN VE CAC CONG DOAN VIEN CHUA DUOC KHEN THUONGCREATE VIEW Y3 AS SELECT *FROM CONGDOAN WHERE MACDV NOT IN (SELECT MACDV FROM KHENTHUONG)
SELECT *FROM Y3
--CAU 4:TAO VIEW DE TONG HOP THONG TIN VE CONG DOAN VIEN DUOC KHEN THUONG VOI LY DO TAN GAI PRO CREATE VIEW Y5 ASSELECT *FROM CONGDOAN WHERE MACDV IN (SELECT MACDV FROM KHENTHUONG
WHERE LYDO='TAN GAI PRO')
SELECT *FROM Y5
--CAU 5:TAO THU TUC CO THAM SO @TENTCD DE DUA RA THONG TIN VE NHUNG DOAN VIEN THUOC --CHI DOAN TREN CREATE PROC Y5_1 @TENTCD CHAR(30)AS SELECT *
FROM CONGDOANWHERE MATCD IN (SELECT MATCD FROM TOCONGDOAN
WHERE TOCONGDOAN.MATCD=CONGDOAN.MATCDAND TENTCD=@TENTCD)
EXEC Y5_1 'TOAN'
--CAU 6:TAO THU TUC CO THAM SO @TENTCD,@NAM DE DUA RA THONG TIN VE NHUNG CONG DOAN VIEN --CUA TO CONG DOAN DA DUOC KHEN THUONG VAO NAM TREN
CREATE PROC Y6_1 @TENTCD CHAR(30),@NAM INTASSELECT * from CONGDOANwhere (MaTCD in (select MaTCD from TOCONGDOAN where TenTCD=@TenTCD))and (MaCDV in (select MaCDV from KHENTHUONG where Nam=@Nam))
EXEC Y6 'TOAN',2009
ALTER TABLE KHENTHUONG ALTER COLUMN NAM INT
--CAU 7:SU DUNG KIEU DU LIEU CURSOR DE TONG HOP THONG TIN VE NHUNG CONG DOAN VIEN DA DUOC KHEN --THUONG TRONG NAM 2009DECLARE P CURSOR SCROLL DYNAMIC FOR SELECT *FROM CONGDOAN
WHERE MACDV IN (SELECT MACDV FROM KHENTHUONGWHERE NAM=2009)
OPEN P DECLARE @MACDV CHAR(10),@TENCDV NVARCHAR (30),@NGAYS SMALLDATETIME,@NGAYV SMALLDATETIME,@MATCD CHAR(10) fetch next from Pinto @MaCDV,@TenCDV,@NgayS,@NgayV,@MaTCDwhile @@fetch_status=0begin
print''+@MaCDV+' '+@TenCDV+' '+convert(char(10),@NgayS,111)+' '+convert(char(10),@NgayV,111)+' '+@MaTCD
fetch next from Pinto @MaCDV,@TenCDV,@NgayS,@NgayV,@MaTCD
endclose Pdeallocate P
--CAU 8:CHUA DUOC KHEN THUONG NAM 2009DECLARE P1 CURSOR SCROLL DYNAMIC FOR SELECT *FROM CONGDOAN
WHERE MACDV NOT IN (SELECT MACDV FROM KHENTHUONGWHERE NAM=2009)
OPEN P1 DECLARE @MACDV CHAR(10),@TENCDV NVARCHAR (30),@NGAYS SMALLDATETIME,@NGAYV SMALLDATETIME,@MATCD CHAR(10) fetch next from P1into @MaCDV,@TenCDV,@NgayS,@NgayV,@MaTCDwhile @@fetch_status=0begin
print''+@MaCDV+' '+@TenCDV+' '+convert(char(10),@NgayS,111)+' '+convert(char(10),@NgayV,111)+' '+@MaTCD
fetch next from Pinto @MaCDV,@TenCDV,@NgayS,@NgayV,@MaTCD
endclose P1deallocate P1
--CAU 9:TAO TRIGGER DE KIEM TRA VIEC NHAP DU LIEU CHO BANG KHENTHUONG NEU NAM--KHEN THUONG <0 THI IN RA THONG BAO 'NHAP DU LIEU KHONG THANH CONG 'NGC LAI ....
CREATE TRIGGER Y9 ON KHENTHUONGFOR INSERT AS
IF EXISTS (SELECT NAM FROM KHENTHUONG WHERE NAM<0)
BEGIN ROLLBACK TRAN PRINT 'NHAP DU LIEU KHONG THANH CONG 'END ELSE PRINT 'NHAP DU LIEU THANH CONG'GO
INSERT INTO KHENTHUONG VALUES ('CDV01','KT03','ANH YEU EM ',2009)INSERT INTO KHENTHUONG VALUES ('CDV01','KT02','ANH NHO EM ',2009)