Professional Documents
Culture Documents
Tên đề tài:
HÀ NỘI 06-2022
MỤC LỤC
I. Mô hình cơ sở dữ liệu........................................................................................3
1.1. Bảng KHOA (KHOA).................................................................................3
1.2. Bảng GIANGVIEN (Giảng Viên)...............................................................3
1.3. Bảng LOP (Lớp)..........................................................................................3
1.4. Bảng SINHVIEN (Sinh Viên).....................................................................3
1.5. Bảng MONHOC (Môn Học).......................................................................4
1.6. Bảng DIEMTHI (Điểm Thi).......................................................................4
II. Mô Hình Liên Kết Thực Thể (Diagram)......................................................5
III. Thiết Lập Cơ Sở Dữ Liệu...............................................................................5
3.1. Bảng KHOA.................................................................................................5
3.2. Bảng GIANGVIEN......................................................................................5
3.3. Bảng LOP.....................................................................................................5
3.4. Bảng SINHVIEN.........................................................................................6
3.5. Bảng MONHOC..........................................................................................6
3.6. Bảng DIEMTHI...........................................................................................6
IV. Chèn Dữ Liệu Vào Các Bảng.........................................................................6
4.1. Chèn Bảng KHOA.......................................................................................6
4.2. Chèn Bảng GIANGVIEN............................................................................7
4.3. Chèn Bảng LOP...........................................................................................7
4.4. Chèn Bảng SINHVIEN...............................................................................8
4.5. Chèn Bảng MONHOC..............................................................................10
4.6. Chèn Bảng DIEMTHI...............................................................................11
V. Bài Tập VIEW..................................................................................................25
1. Các môn học mà sinh viên đã thi lại lần 2..................................................25
2. Tạo View điểm trung bình của từng sinh viên...........................................26
3. Tạo view điểm trung bình cao nhất của từng lớp......................................28
4. Tạo view sinh viên có điểm trung bình dưới 5...........................................28
IV. Bài Tập Thống Kê............................................................................................29
2
1. Liệt kê thông tin các sinh viên có chữ “thị”...............................................29
2. Liệt kê các sinh viên có cùng quê................................................................29
3. Trung bình điểm thi của các môn...............................................................30
4. Tính điểm trung bình của môn học có mã môn là ‘MH2’........................30
5. Các môn học mà sinh viên đã thi lại lần 2..................................................31
6. Tính điểm trung bình và xếp loại của từng sinh viên................................31
7. Tìm điểm trung bình cao nhất của từng lớp..............................................33
8. Tìm các sinh viên có điểm trung bình dưới 5.............................................33
V. Bài tập Thủ tục (5 câu).....................................................................................34
1. Tạo câu thủ tục thêm sinh viên....................................................................34
2. Thủ tục sửa sinh viên....................................................................................34
3. Câu thủ tục tính điểm trung bình sinh viên dựa vào mã sinh viên..........35
4. Thủ tục tìm sinh viên....................................................................................35
5. Lấy thông tin sinh viên theo mã sinh viên..................................................35
VI. Bài tập bẫy lỗi (5 câu)......................................................................................36
1. Đảm bảo ngày sinh không được vượt quá ngày hiện tại...........................36
2. Môn học không có số tín chỉ âm..................................................................36
3. Không có cột trống trong các trường dữ liệu bắt buộc trong bảng
SINHVIEN...........................................................................................................37
4. Không được xoá dữ liệu trong bảng DIEMTHI........................................38
5. Giá trị cột TenKhoa trong bảng không chứa kí tự đặc biệt.....................38
3
I. Mô hình cơ sở dữ liệu
I.1. Bảng KHOA (KHOA)
Column Name Data Type Allow Nulls Note
MaKhoa
nvarchar(50) NOT NULL Mã Khoa
(Primary Key)
MaGiangVien Mã Giảng
nvarchar(50) NOT NULL
(Primary Key) Viên
Tên Giảng
TenGiangVien nvarchar(255) NOT NULL
Viên
Cơ Sở Đào
CoSoDaoTao nvarchar(255) NULL
Tạo
MaLop Mã Giảng
nvarchar(50) NOT NULL
(Primary Key) Viên
MaSinhVien
nvarchar(50) NOT NULL Mã Sinh Viên
(Primary Key)
MaMonHoc
nvarchar(50) NOT NULL Mã Môn Học
(Primary Key)
MaSinhVien
nvarchar(50) NOT NULL Mã Sinh Viên
(Primary Key)
MaMonHoc
nvarchar(50) NOT NULL Mã Môn Học
(Primary Key)
5
DiemThi float NULL Điểm Thi
Kết quả:
7
IV.2. Chèn Bảng GIANGVIEN
INSERT INTO GIANGVIEN(MaGiangVien, TenGiangVien, MaKhoa, CoSoDaoTao)
VALUES
('GV_CNTT1',N'Nguyễn Thị Kim Huệ','CNTT',N'Hà Nội'),
('GV_CNTT2',N'Lê Chí Luận','CNTT',N'Hà Nội'),
('GV_CT1',N'Vũ Thành Long','CT',N'Vĩnh Phúc'),
('GV_CT2',N'Hoàng Thị Hương Giang','CT',N'Hà Nội'),
('GV_NN1',N'Vũ Thanh Giang','NN',N'Hà Nội'),
('GV_NN2',N'Lê Tuyết Nhung','NN',N'Vĩnh Phúc'),
('GV_MKT1',N'Kiều Mạnh','MKT',N'Hà Nội'),
('GV_MKT2',N'Phạm Thị Thu Hằng','MKT',N'Hà Nội'),
('GV_CK1',N'Nguyễn Quang Anh','CK',N'Hà Nội'),
('GV_CK2',N'Lê Quang Thắng','CK',N'Vĩnh Phúc'),
('GV_CK3',N'Nguyễn Tuấn Hải','CK',N'Hà Nội');
Kết quả:
Kết quả:
9
('71DCTT034','L_MKT1',N'Mùng Chí Bảo','Nam','09/07/2002',N'Hải Dương'),
('71DCTT035','L_MKT1',N'Lê Xuân Ngọc','Nam','02/24/2002',N'Yên Bái'),
('71DCTT036','L_MKT2',N'Đỗ Thị Thu Hà',N'Nữ','01/26/2002',N'Sơn La'),
('71DCTT037','L_MKT2',N'Vũ Mai Hương',N'Nữ','07/13/2002',N'Thái Bình'),
('71DCTT038','L_MKT2',N'Phạm Văn Tân','Nam','03/19/2002',N'Hà Nội'),
('71DCTT039','L_MKT2',N'Cao Xuân Hoàng','Nam','08/25/2002',N'Hà Giang'),
('71DCTT040','L_MKT2',N'Đỗ Quốc Hùng','Nam','10/15/2002',N'Hoà Bình'),
('71DCTT041','L_CK1',N'Trần Thanh Tâm',N'Nữ','12/24/2002',N'Ninh Bình'),
('71DCTT042','L_CK1',N'Nguyễn Thị Chi',N'Nữ','03/23/2002',N'Hải Dương'),
('71DCTT043','L_CK1',N'Tạ Thị Hồng Nhung',N'Nữ','04/23/2002',N'Nam Định'),
('71DCTT044','L_CK1',N'Nguyễn Anh Tuấn','Nam','04/12/2002',N'Hưng Yên'),
('71DCTT045','L_CK1',N'Trịnh Tùng Anh','Nam','03/17/2002',N'Hoà Bình'),
('71DCTT046','L_CK2',N'Đào Quang Huy','Nam','05/16/2002',N'Hải Phòng'),
('71DCTT047','L_CK2',N'Lại Vân Anh',N'Nữ','08/11/2002',N'Thái Bình'),
('71DCTT048','L_CK2',N'Hồng Kim Bảo','Nam','05/11/2002',N'Vĩnh Phúc'),
('71DCTT049','L_CK2',N'Lâm Chấn Khang','Nam','08/04/2002',N'Hà Nội'),
('71DCTT050','L_CK2',N'Nguyễn Thanh Hưng','Nam','12/05/2002',N'Hưng Yên');
Kết quả:
10
IV.5. Chèn Bảng MONHOC
INSERT INTO MONHOC(MaMonHoc, TenMonHoc, SoTinChi)
VALUES
('MH1',N'Công Nghệ Phần Mềm',3),
('MH2',N'Ngôn Ngữ Anh',4),
('MH3',N'Java',4),
('MH4',N'Hệ Quản Trị CSDL',2),
('MH5',N'Xây Dựng Hệ Thống IoT',3),
('MH6',N'Kiến Trúc Và Thiết Kế Phần Mềm',3);
Kết quả:
11
IV.6. Chèn Bảng DIEMTHI
INSERT INTO DIEMTHI(MaSinhVien,MaMonHoc,DiemThi,LanThi)
VALUES
('71DCTT001','MH1',8.0,1),
('71DCTT001','MH2',8.3,1),
('71DCTT001','MH3',7.5,1),
('71DCTT001','MH4',6.0,1),
('71DCTT001','MH5',5.5,2),
('71DCTT001','MH6',8.0,1),
('71DCTT002','MH1',7.0,1),
('71DCTT002','MH2',6.3,1),
('71DCTT002','MH3',4.5,1),
('71DCTT002','MH4',6.0,1),
('71DCTT002','MH5',5.5,2),
('71DCTT002','MH6',7.5,1),
('71DCTT003','MH1',6.25,1),
('71DCTT003','MH2',8.3,1),
('71DCTT003','MH3',7.5,1),
('71DCTT003','MH4',6.5,1),
('71DCTT003','MH5',5.0,2),
('71DCTT003','MH6',7.5,1),
('71DCTT004','MH1',8.25,1),
('71DCTT004','MH2',9.0,1),
('71DCTT004','MH3',7.5,1),
('71DCTT004','MH4',8.5,1),
('71DCTT004','MH5',6.0,1),
('71DCTT004','MH6',5.5,1),
('71DCTT005','MH1',6.25,1),
('71DCTT005','MH2',6.0,1),
('71DCTT005','MH3',4.5,1),
('71DCTT005','MH4',3.5,1),
('71DCTT005','MH5',4.0,1),
('71DCTT005','MH6',6.5,1),
('71DCTT006','MH1',5.5,2),
('71DCTT006','MH2',3.0,1),
('71DCTT006','MH3',2.5,1),
('71DCTT006','MH4',7.5,1),
('71DCTT006','MH5',6.0,1),
('71DCTT006','MH6',5.5,1),
('71DCTT007','MH1',8.0,1),
('71DCTT007','MH2',9.0,1),
('71DCTT007','MH3',10,1),
('71DCTT007','MH4',8.5,1),
('71DCTT007','MH5',6.5,1),
('71DCTT007','MH6',4.5,1),
12
('71DCTT008','MH1',4.25,1),
('71DCTT008','MH2',3.0,1),
('71DCTT008','MH3',6.5,2),
('71DCTT008','MH4',2.5,1),
('71DCTT008','MH5',1.0,1),
('71DCTT008','MH6',8.5,1),
('71DCTT009','MH1',5.25,1),
('71DCTT009','MH2',6.0,1),
('71DCTT009','MH3',7.0,1),
('71DCTT009','MH4',8.0,1),
('71DCTT009','MH5',6.75,1),
('71DCTT009','MH6',3.5,1),
('71DCTT010','MH1',5.25,1),
('71DCTT010','MH2',5.0,1),
('71DCTT010','MH3',4.5,1),
('71DCTT010','MH4',5.75,1),
('71DCTT010','MH5',6.25,1),
('71DCTT010','MH6',3.5,1),
('71DCTT011','MH1',4.5,1),
('71DCTT011','MH2',6.25,1),
('71DCTT011','MH3',7.75,1),
('71DCTT011','MH4',6.5,1),
('71DCTT011','MH5',3.75,1),
('71DCTT011','MH6',2.5,1),
('71DCTT012','MH1',8.25,1),
('71DCTT012','MH2',9.0,1),
('71DCTT012','MH3',7.5,1),
('71DCTT012','MH4',7.5,1),
('71DCTT012','MH5',6.5,2),
('71DCTT012','MH6',7.5,1),
('71DCTT013','MH1',8.25,1),
('71DCTT013','MH2',9.0,1),
('71DCTT013','MH3',9.5,1),
('71DCTT013','MH4',8.5,1),
('71DCTT013','MH5',8.75,1),
('71DCTT013','MH6',7.5,1),
('71DCTT014','MH1',8.5,1),
('71DCTT014','MH2',5.75,1),
('71DCTT014','MH3',8.0,1),
('71DCTT014','MH4',6.5,1),
('71DCTT014','MH5',6.25,1),
('71DCTT014','MH6',8.5,1),
('71DCTT015','MH1',7.5,1),
('71DCTT015','MH2',6.75,1),
('71DCTT015','MH3',7.0,1),
('71DCTT015','MH4',7.5,1),
('71DCTT015','MH5',5.75,1),
('71DCTT015','MH6',8.5,1),
('71DCTT016','MH1',8.25,1),
('71DCTT016','MH2',8.0,1),
('71DCTT016','MH3',8.5,1),
('71DCTT016','MH4',8.5,1),
('71DCTT016','MH5',9.0,1),
('71DCTT016','MH6',8.5,1),
('71DCTT017','MH1',5.5,1),
('71DCTT017','MH2',6.25,1),
('71DCTT017','MH3',6.5,1),
('71DCTT017','MH4',5.75,1),
('71DCTT017','MH5',6.75,1),
13
('71DCTT017','MH6',5.25,1),
('71DCTT018','MH1',8.25,1),
('71DCTT018','MH2',9.0,1),
('71DCTT018','MH3',7.5,1),
('71DCTT018','MH4',8.5,1),
('71DCTT018','MH5',10,1),
('71DCTT018','MH6',5.5,2),
('71DCTT019','MH1',8.0,1),
('71DCTT019','MH2',8.0,1),
('71DCTT019','MH3',8.5,1),
('71DCTT019','MH4',8.5,1),
('71DCTT019','MH5',7.0,1),
('71DCTT019','MH6',5.0,1),
('71DCTT020','MH1',8.0,1),
('71DCTT020','MH2',8.5,1),
('71DCTT020','MH3',7.75,1),
('71DCTT020','MH4',8.75,1),
('71DCTT020','MH5',7.25,1),
('71DCTT020','MH6',9.5,1),
('71DCTT021','MH1',6.25,1),
('71DCTT021','MH2',6.5,1),
('71DCTT021','MH3',6.5,1),
('71DCTT021','MH4',5.25,1),
('71DCTT021','MH5',6.25,1),
('71DCTT021','MH6',8.75,1),
('71DCTT022','MH1',7.5,1),
('71DCTT022','MH2',7.0,1),
('71DCTT022','MH3',8.5,1),
('71DCTT022','MH4',6.5,1),
('71DCTT022','MH5',6.75,1),
('71DCTT022','MH6',8.5,1),
('71DCTT023','MH1',8.25,1),
('71DCTT023','MH2',9.0,1),
('71DCTT023','MH3',7.5,1),
('71DCTT023','MH4',6.5,1),
('71DCTT023','MH5',8.25,1),
('71DCTT023','MH6',7.75,1),
('71DCTT024','MH1',8.25,1),
('71DCTT024','MH2',8.0,1),
('71DCTT024','MH3',8.75,1),
('71DCTT024','MH4',8.5,1),
('71DCTT024','MH5',9.0,1),
('71DCTT024','MH6',8.5,1),
('71DCTT025','MH1',7.5,1),
('71DCTT025','MH2',7.0,1),
('71DCTT025','MH3',7.75,1),
('71DCTT025','MH4',8.5,1),
('71DCTT025','MH5',8.0,1),
('71DCTT025','MH6',7.25,1),
('71DCTT026','MH1',6.25,1),
('71DCTT026','MH2',7.0,1),
('71DCTT026','MH3',8.5,1),
('71DCTT026','MH4',6.5,1),
('71DCTT026','MH5',6.75,2),
('71DCTT026','MH6',7.5,1),
('71DCTT027','MH1',8.0,1),
('71DCTT027','MH2',8.0,1),
('71DCTT027','MH3',7.25,1),
('71DCTT027','MH4',8.5,1),
14
('71DCTT027','MH5',9.0,1),
('71DCTT027','MH6',9.5,1),
('71DCTT028','MH1',10,1),
('71DCTT028','MH2',9.0,1),
('71DCTT028','MH3',7.5,1),
('71DCTT028','MH4',8.5,1),
('71DCTT028','MH5',6.0,1),
('71DCTT028','MH6',9.75,1),
('71DCTT029','MH1',8.25,1),
('71DCTT029','MH2',9.0,1),
('71DCTT029','MH3',10,1),
('71DCTT029','MH4',8.75,1),
('71DCTT029','MH5',6.0,1),
('71DCTT029','MH6',7.5,1),
('71DCTT030','MH1',7.25,1),
('71DCTT030','MH2',6.0,1),
('71DCTT030','MH3',6.5,1),
('71DCTT030','MH4',8.75,1),
('71DCTT030','MH5',6.25,1),
('71DCTT030','MH6',7.5,1),
('71DCTT031','MH1',3.25,1),
('71DCTT031','MH2',2.0,1),
('71DCTT031','MH3',7.25,1),
('71DCTT031','MH4',3.75,1),
('71DCTT031','MH5',5.0,1),
('71DCTT031','MH6',4.25,2),
('71DCTT032','MH1',6.25,1),
('71DCTT032','MH2',5.0,1),
('71DCTT032','MH3',7.25,1),
('71DCTT032','MH4',6.5,1),
('71DCTT032','MH5',6.75,1),
('71DCTT032','MH6',7.5,1),
('71DCTT033','MH1',8.25,1),
('71DCTT033','MH2',6.75,1),
('71DCTT033','MH3',7.25,1),
('71DCTT033','MH4',5.5,1),
('71DCTT033','MH5',9.0,1),
('71DCTT033','MH6',8.5,1),
('71DCTT034','MH1',8.25,1),
('71DCTT034','MH2',9.0,1),
('71DCTT034','MH3',7.5,1),
('71DCTT034','MH4',8.5,1),
('71DCTT034','MH5',8.0,1),
('71DCTT034','MH6',5.5,1),
('71DCTT035','MH1',8.25,1),
('71DCTT035','MH2',9.0,1),
('71DCTT035','MH3',8.5,1),
('71DCTT035','MH4',8.5,1),
('71DCTT035','MH5',10,1),
('71DCTT035','MH6',5.5,1),
('71DCTT036','MH1',8.5,1),
('71DCTT036','MH2',9.0,1),
('71DCTT036','MH3',7.5,1),
('71DCTT036','MH4',9.5,1),
('71DCTT036','MH5',6.0,1),
('71DCTT036','MH6',10,1),
('71DCTT037','MH1',8.25,1),
('71DCTT037','MH2',10,1),
('71DCTT037','MH3',7.5,1),
15
('71DCTT037','MH4',8.25,1),
('71DCTT037','MH5',6.75,1),
('71DCTT037','MH6',5.5,1),
('71DCTT038','MH1',8.25,1),
('71DCTT038','MH2',8.0,1),
('71DCTT038','MH3',6.25,1),
('71DCTT038','MH4',8.75,1),
('71DCTT038','MH5',9.0,1),
('71DCTT038','MH6',2.5,1),
('71DCTT039','MH1',6.25,1),
('71DCTT039','MH2',3.0,2),
('71DCTT039','MH3',5.5,1),
('71DCTT039','MH4',4.25,1),
('71DCTT039','MH5',8.0,1),
('71DCTT039','MH6',5.5,2),
('71DCTT040','MH1',9.25,1),
('71DCTT040','MH2',6.0,1),
('71DCTT040','MH3',7.75,1),
('71DCTT040','MH4',8.25,1),
('71DCTT040','MH5',9.0,1),
('71DCTT040','MH6',7.25,1),
('71DCTT041','MH1',5.25,1),
('71DCTT041','MH2',4.0,1),
('71DCTT041','MH3',8.5,1),
('71DCTT041','MH4',5.5,1),
('71DCTT041','MH5',6.75,1),
('71DCTT041','MH6',5.0,1),
('71DCTT042','MH1',8.5,1),
('71DCTT042','MH2',7.0,1),
('71DCTT042','MH3',5.5,1),
('71DCTT042','MH4',6.0,1),
('71DCTT042','MH5',6.5,1),
('71DCTT042','MH6',9.75,1),
('71DCTT043','MH1',7.25,1),
('71DCTT043','MH2',8.0,1),
('71DCTT043','MH3',8.5,1),
('71DCTT043','MH4',9.5,1),
('71DCTT043','MH5',4.0,1),
('71DCTT043','MH6',3.5,1),
('71DCTT044','MH1',5.25,1),
('71DCTT044','MH2',8.75,1),
('71DCTT044','MH3',6.5,1),
('71DCTT044','MH4',9.5,1),
('71DCTT044','MH5',3.75,1),
('71DCTT044','MH6',5.25,1),
('71DCTT045','MH1',8.0,1),
('71DCTT045','MH2',10,1),
('71DCTT045','MH3',7.75,1),
('71DCTT045','MH4',9.5,1),
('71DCTT045','MH5',6.5,1),
('71DCTT045','MH6',7.5,1),
('71DCTT046','MH1',8.85,1),
('71DCTT046','MH2',9.75,1),
('71DCTT046','MH3',7.0,1),
('71DCTT046','MH4',9.25,1),
('71DCTT046','MH5',8.0,1),
('71DCTT046','MH6',7.75,1),
('71DCTT047','MH1',2.5,1),
('71DCTT047','MH2',3.0,1),
16
('71DCTT047','MH3',4.75,1),
('71DCTT047','MH4',5.5,1),
('71DCTT047','MH5',6.0,1),
('71DCTT047','MH6',5.5,1),
('71DCTT048','MH1',8.25,1),
('71DCTT048','MH2',10,1),
('71DCTT048','MH3',7.5,1),
('71DCTT048','MH4',8.75,1),
('71DCTT048','MH5',6.0,1),
('71DCTT048','MH6',8.5,1),
('71DCTT049','MH1',6.0,2),
('71DCTT049','MH2',7.5,1),
('71DCTT049','MH3',5.5,1),
('71DCTT049','MH4',8.75,1),
('71DCTT049','MH5',8.25,1),
('71DCTT049','MH6',8.5,1),
('71DCTT050','MH1',8.0,1),
('71DCTT050','MH2',6.0,1),
('71DCTT050','MH3',8.5,1),
('71DCTT050','MH4',9.5,1),
('71DCTT050','MH5',4.0,2),
('71DCTT050','MH6',6.5,1);
Kết quả:
17
18
19
20
21
22
23
24
25
26
V. Bài Tập VIEW
1. Các môn học mà sinh viên đã thi lại lần 2
CREATE VIEW SinhVienThiLai AS
SELECT DIEMTHI.MaSinhVien,TenSinhVien, TenMonHoc, DiemThi, LanThi, SoTinChi FROM
DIEMTHI
INNER JOIN MONHOC ON MONHOC.MaMonHoc = DIEMTHI.MaMonHoc
INNER JOIN SINHVIEN ON SINHVIEN.MaSinhVien = DIEMTHI.MaSinhVien
WHERE LanThi = '2'
27
Kết quả:
Kết quả:
28
29
3. Tạo view điểm trung bình cao nhất của từng lớp
CREATE VIEW DiemTrungBinhLop AS
SELECT l.MaLop, MAX(dt.DiemTrungBinh) AS DiemTrungBinhCaoNhat
FROM LOP l
JOIN SINHVIEN sv ON l.MaLop = sv.MaLop
JOIN DiemTrungBinhSV dt ON sv.MaSinhVien = dt.MaSinhVien
GROUP BY l.MaLop;
Kết quả:
30
CREATE VIEW SVDiemDuoi5 AS
SELECT sv.MaSinhVien,sv.TenSinhVien, sv.MaLop, dt.DiemTrungBinh
FROM SINHVIEN sv
JOIN DiemTrungBinhSV dt ON sv.MaSinhVien = dt.MaSinhVien
WHERE dt.DiemTrungBinh < 5;
Kết quả:
Kết quả:
Kết quả:
31
3. Trung bình điểm thi của các môn
select MONHOC.MaMonHoc, avg(DiemThi)as N'Trung Bình', TenMonHoc from DIEMTHI
join MONHOC on MONHOC.MaMonHoc = DIEMTHI.MaMonHoc
group by MONHOC.MaMonHoc,TenMonHoc
Kết quả:
Kết quả:
6. Tính điểm trung bình và xếp loại của từng sinh viên
select DIEMTHI.MaSinhVien,SINHVIEN.TenSinhVien, round(avg(DiemThi),2)as N'Điểm
Trung Bình',
case
when round(avg(DiemThi),2) < 4.5 then N'Yếu'
when round(avg(DiemThi),2) >= 4.5
and round(avg(DiemThi),2) < 6.5 then 'Trung Bình'
when round(avg(DiemThi),2) >= 6.5
and round(avg(DiemThi),2) < 8 then 'Khá'
when round(avg(DiemThi),2) >=8 and round(avg(DiemThi),2) <=10 then N'Giỏi'
end as 'Xếp loại'
from DIEMTHI
full outer join SINHVIEN on SINHVIEN.MaSinhVien = DIEMTHI.MaSinhVien
where DIEMTHI.DiemThi >=0 and DIEMTHI.DiemThi <=10
group by DIEMTHI.MaSinhVien, SINHVIEN.TenSinhVien
order by DIEMTHI.MaSinhVien ASC
33
Kết quả:
34
7. Tìm điểm trung bình cao nhất của từng lớp
select diemtrungbinh.MaLop, max(diemtrungbinh.avg_diemthi) as N'Điểm Cao Nhất'
from( SELECT sv.MaLop, sv.TenSinhVien, AVG(dt.DiemThi) AS avg_diemthi
FROM SINHVIEN sv
JOIN DIEMTHI dt ON sv.MaSinhVien = dt.MaSinhVien
GROUP BY sv.MaLop, sv.TenSinhVien) as diemtrungbinh
group by MaLop
Kết quả:
Kết quả:
Kết quả:
36
TenSinhVien = @TenSinhVien
,GioiTinh = @GioiTinh
,NgaySinh = @NgaySinh
,QueQuan = @QueQuan
WHERE MaSinhVien = @MaSinhVien
END
-Kiểm tra kết quả:
exec SuaSinhVien @MaSinhVien='71DCTT222',
@MaLop='L_CK1',@TenSinhVien = N'Trần Hoàng Ngọc',
@GioiTinh= 'Nam',
@NgaySinh='2002-05-05',
@QueQuan=N'Tuyên Quang'
Kết quả:
3. Câu thủ tục tính điểm trung bình sinh viên dựa vào mã sinh viên
CREATE PROCEDURE DiemTrungBinh
@MaSinhVien nvarchar(50)
AS
BEGIN
SELECT AVG(DT.DiemThi) AS DiemTrungBinh
FROM DIEMTHI DT
WHERE DT.MaSinhVien = @MaSinhVien
END
-Kiểm tra kết quả:
exec DiemTrungBinh '71DCTT004'
-Kết quả:
Kết quả:
37
5. Lấy thông tin sinh viên theo mã sinh viên
CREATE PROCEDURE Chitietsinhvien
@MaSinhVien nvarchar(50)
AS
BEGIN
SELECT *
FROM SINHVIEN
WHERE MaSinhVien = @MaSinhVien
END
-Kiểm tra kết quả:
exec Chitietsinhvien '71DCTT004'
-Kết quả
Kết quả:
38
2. Môn học không có số tín chỉ âm
CREATE TRIGGER trg_KiemTraSoTinChi
ON MONHOC
FOR INSERT, UPDATE
AS
BEGIN
IF EXISTS (
SELECT *
FROM inserted
WHERE SoTinChi < 0
)
BEGIN
print N'Số tín chỉ của môn học không được âm'
ROLLBACK TRANSACTION
END
END
Kết quả:
39
3. Không có cột trống trong các trường dữ liệu bắt buộc trong bảng
SINHVIEN
CREATE TRIGGER KiemTraNull
ON SINHVIEN
FOR INSERT, UPDATE
AS
BEGIN
IF EXISTS (
SELECT *
FROM inserted
WHERE QueQuan IS NULL OR NgaySinh IS NULL
)
BEGIN
print N'Không được để trống trường dữ liệu'
ROLLBACK TRANSACTION
END
END
Kết quả:
Kết quả:
40
5. Giá trị cột TenKhoa trong bảng không chứa kí tự đặc biệt
CREATE TRIGGER trg_KiemTraTenKhoaNoSpecialCharacters
ON KHOA
FOR INSERT, UPDATE
AS
BEGIN
IF EXISTS (
SELECT *
FROM inserted
WHERE TenKhoa LIKE '%[^a-zA-Z0-9 ]%'
)
BEGIN
print N'Tên khoa không được chứa ký tự đặc biệt'
ROLLBACK TRANSACTION
END
END
Kết quả:
41
42