Bai Tap SQL Server
Bai Tap SQL Server
SELECT MAGV
FROM GIAOVIEN
--3.TAO VIEW TONG HOP THONG TIN GIAO VIEN CHUYEN NGANH MANG VA
TRUYEN THONG
--4.TAO VIEW DE CHO BIET THONG TIN VE GIAO VIEN CO DIA CHI O THAI
NGUYEN
CREATE VIEW DIACHITN
AS
SELECT GIAOVIEN.*,HOCVI.*,GV_HV_CN.NAM,CHUYENNGANH.TENCN
FROM GIAOVIEN,HOCVI,GV_HV_CN,CHUYENNGANH
WHERE 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'
--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
--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
)
)
--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
)
)
--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'
GO
--DEN DAY THI OK ROI NHUNG SAO KHI MINH INSERT DU LIEU LAI BAO LOI NHI
--Invalid object name 'GV_HV_CN'.??WHAT ??
--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
SELECT*FROM TOCONGDOAN
SELECT*FROM CONGDOAN
SELECT*FROM KHENTHUONG
--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
AS
SELECT CONGDOAN.*
FROM CONGDOAN
WHERE MACDV IN (SELECT MACDV FROM KHENTHUONG)
--HIEN THI VIEW
SELECT*FROM THTT
--3.TAO VIEW HIEN TH VE CAC CING DOAN VIEN CHUA DUOC KHEN THUONG
LOG ON
(
NAME=QLD_LOG,
FILENAME='D:\DATA\QLD_LOG.LDF',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=3MB
)
--3.TAO VIEW VE SINH VIEN CO DIEM CAO NHAT MON ANH VAN 1
CREATE VIEW CNL --CAO NHAT LOP
AS
SELECT MAMON,MAX(DIEM)AS DCN --DCN LA DIEM CAO NHAT
FROM SINHVIEN,DIEM
GROUP BY MAMON
LOG ON
(
NAME =QLBH_LOG,
FILENAME='D:\DATA\QLBH_LOG.LDF',
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=5MB
)
--TAO VIEW TONG HOP THONG TIN VE NHUNG MAT HANG CHUA CO AI MUA
--
--CAU2.1 HAY TAO VIEW TONG HOP THONG TIN VE DIEM REN LUYEN CUA NHUNG SINH VIEN
HOC LOP K7DCNTT
CREATE VIEW THTT
AS
SELECT LOP.*,SINHVIEN.MASV,SINHVIEN.TENSV,HOCKY,DIEM
FROM LOP,SINHVIEN,DRL
WHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND
LOP.TENLOP='K7DCNTT'
--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
AS
SELECT *
FROM SINHVIEN
WHERE MASV IN
(SELECT MASV FROM DRL
WHERE DIEM IN (SELECT MAX(DIEM) FROM DRL)
)
--CAU 5.2:IN RA THONG TIN SINH VIEN CO DIEM REN LUYEN CAO NHAT CUA MOI LOP
CREATE VIEW Y4.2
AS
SELECT *
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
--CAU2.1 HAY TAO VIEW TONG HOP THONG TIN VE DIEM REN LUYEN CUA NHUNG SINH VIEN
HOC LOP K7DCNTT
CREATE VIEW THTT
AS
SELECT LOP.*,SINHVIEN.MASV,SINHVIEN.TENSV,HOCKY,DIEM
FROM LOP,SINHVIEN,DRL
WHERE LOP.MALOP=SINHVIEN.MALOP AND SINHVIEN.MASV=DRL.MASV AND
LOP.TENLOP='K7DCNTT'
--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,DIEM
FROM LOP,SINHVIEN,DRL
--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
AS
SELECT *
FROM SINHVIEN
WHERE MASV IN
(SELECT MASV FROM DRL
WHERE DIEM IN (SELECT MAX(DIEM) FROM DRL)
)
--CAU 5.2:IN RA THONG TIN SINH VIEN CO DIEM REN LUYEN CAO NHAT CUA MOI LOP
CREATE VIEW Y4.2
AS
SELECT *
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,SINHVIEN
WHERE 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
AS
IF EXISTS (SELECT DIEM
FROM DRL WHERE (DIEM <0)OR (DIEM>100))
BEGIN ROLLBACK TRAN
PRINT 'YEU CAU BAN NHAP LAI DU
LIEU'
END
ELSE PRINT 'NHAP DU LIEU THANH CONG'
GO
SP_HELPTEXT Y7
--BAI 2 TRANG 5:
CREATE DATABASE BA2_5
ON
(
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
)
--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 THUONG
CREATE 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
AS
SELECT *
FROM CONGDOAN
WHERE MACDV IN (SELECT MACDV FROM KHENTHUONG
WHERE LYDO='TAN GAI PRO')
SELECT *FROM Y5
FROM CONGDOAN
WHERE MATCD IN (SELECT MATCD FROM TOCONGDOAN
WHERE TOCONGDOAN.MATCD=CONGDOAN.MATCD
AND TENTCD=@TENTCD)
EXEC Y6 'TOAN',2009
--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 KHENTHUONG
FOR INSERT
AS