Dưới Đây là 1 số mấu bài tập mà chúng nhóm mình làm xem rồi tham khảo , bài tập khác đầy đủ gồm hơn 50 bài mỗi thành viên gầm 5 bài : Bài 1 : Lớp có sinh viên mượn ít sách nhấtBài 2 : Tính tổng sinh viên của từng lớp đã mượn sáchBài 3 : Chỉnh sửa cơ sở dữ liệu để có thể in ra phiếu của người mượn (số lượng mượn, tên sách, tác giá, thời gian …)Bài 4 : khởi tạo trigger Update Số Lượng sách trong bảng Sophieu và sachBài 5 : Tạo procedure cho câu INSERT để thêm sinh viên vào bảng lớpBài 1 : Tác Giả có nhiều sách được mượn nhấtBài 2 : Tính tổng số sách mượn của từng sinh viên theo lớpBài 3 : Tạo thêm cột trong bảng để tính toán số ngày đã mượn sách của từng sinh viênBài 4 : Tạo procedure để xem thông tin sinh viên đã mượn sách trong bảng số phiếuBài 5 : Tạo Trigger cập nhật thông tin sinh viên có soluongmuon trên bảng số phiếuBài 1 : Tác Giả có nhiều sách được mượn nhấtBài 2 : Tính tổng số sách mượn của từng sinh viên theo lớpBài 3 : Tạo thêm cột trong bảng để tính toán số ngày đã mượn sách của từng sinh viênBài 4 : Tạo procedure để xem thông tin sinh viên đã mượn sách trong bảng số phiếuBài 5 : Tạo Trigger cập nhật thông tin sinh viên có soluongmuon trên bảng số phiếuBài 1 : Sinh viên mượn sách dưới 20 tuổiBài 2 : Update số lượng sách sau khi sinh viên mượn thêm sáchBài 3 : Thêm cột tính tổng số sinh viên trên bảng lớp. Tính tổng số sinh viên các lớp đã mượn sáchBài 4 : Từ bảng số phiếu hiển thị thông tin mã sinh viên, mã phiếu, ngày mượn, ngày trả của những sinh viên mượn 2 quyển sáchBài 5 : Tạo 1 trigger để xóa số lượng sách mượnBài 1 : Lớp có sinh viên mượn nhiều sách nhấtBài 2 : Tổng lượng sách đã mượn theo nhà xuất bảnBài 3 : Tạo lập quyền hạn mượn sách của từng sinh viên (2 – 5 quyểntháng). Tính toán số lượng sinh viên đã mượn quá số lượng quy định
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
1 Nguyễn Quốc Tuấn Tạo database và tạo table
2 Nguyễn Thị Thu Nhập dữ liệu vào bảng sach
3 Nguyễn Trí Tuệ Nhập dữ liệu vào bảng lop
4 Lê Thanh Tùng Nhập dữ liệu vào bảng sinhvien
5 Đinh Doãn Việt Nhập dữ liệu vào bảng sophieu, làm báo cáo
6 Nguyễn Quang Vinh In báo cáo
7 Phạm Xuân Tùng Chỉnh sửa báo cáo
8 Đặng Ngọc Tú Kiểm tra và chỉnh sửa dữ liệu bảng sach , lop
9 Nguyễn Văn Thùy Tạo kết nối diagram
10 Phùng Quốc Vương Chuẩn hóa database
11 Nguyễn Xuân Tuấn Kiểm tra chỉnh sửa dữ liệu bảng sinhvien,sophieu
Hà Nội, tháng 03 năm 2019
Trang 25 Đinh Doãn Việt
Trang 3-Phần
1 -I Mô tả bài toán
1 Sự cần thiết của bài toán
a Sự cần thiết của bài toán
Đối với thư viện , CSDL cho phép ta kiểm soát lượng dữ liệu sách, người đọc theo thời gian
mà không bị nguy cơ mất mát dữ liệu Trong thư viện, có rất nhiều loại sách với nhiều thể loại khác nhau, nhiều tác giả và có số lượng còn lại trong kho khác nhau Lượng sinh viên cũng vậy,
có nhiều sinh viên với nhiều mã sinh viên khác nhau, lớp và các ngành học khác nhau Cho nên chương trình này cho phép kiểm soát thông tin của thư viện để quản lý và phục vụ cho nhu cầu đọc mượn của người đọc
b Yêu cầu về CSDLYC01 - Cho phép lưu , cập nhật thông tin sinhvien với các thông tin chi tiết
YC02 - Cho phép lưu và xuất thông tin về các loại sách trong thư viện
YC03 - Cho phép tính tổng số lượng sách mượn nhiều nhất theo lớp
YC04 - Cho phép hiển thị sinh viên có lượng sách mượn nhiều nhất
YC05 - Cho phép hiển thị ra sinh viên có số tuổi lớn (nhỏ) hơn
YC06 – Cho phép cập nhật số lượng sách khi có update, delete, insert
YC07 - Cho hiển thị ra lớp có sinh viên mượn nhiều (ít) sách nhất
YC08 - Cho xuất ra thông tin chi tiết của phiếu mượn
YC09 - Hiển thị ra sinh viên mượn nhiều (ít) sách nhất
YC10 - Hiển thị ra lượng sách đã mượn theo tên sinh viên , thời gian …
YC11 - Hiển thị tác giả có lượng sách được mượn nhiều (ít) nhất
YC12 - Tạo quyền hạn mượn cho sinh viên
YC13 - kiểm tra số lượng sách mượn trên bảng sophieu có vượt quá giới hạn mỗi khi update dữ liệu
YC14 - Cho phép hiển thị những phiếu mượn có thời gian nhiều hơn N ngày
YC15 - Cập nhật thêm sinh viên , nếu có sinh viên mới vào lớp
Trang 4- Bảng sach (masach, tensach, tacgia, namxb, nhaxb, theloai, soluong)
- Bảng lop (malop, makhoa, tenlop)
- Bảng sinhvien (masv, tensv, namsinh, sdt, malop, tuoi)
- Bảng sophieu (maphieu, masv, masach, soluong, ngaym, ngayt)
o Bảng sach (masach, tensach, tacgia, namxb, nhaxb, theloai, soluong) là bảng lưu thông tin của các loại sách có trong thư viện Bảng có các thuộc tinh sau :
masach là mã nhận diện của từng sách
tensach là tên của từng quyển sách
tacgia là tác giả của quyển sách
namxb là năm xuất bản của sách
nhaxb là nhà xuất bản của sách
theloai là thể loại của sách
soluong là số lượng sách có trong thư viện Khóa chinh – Primary Key là masach
Ứng với YC02
o Bảng lop (malop, makhoa, tenlop) là bảng lưu thông tin các lớp, khoa Bảng có các thuộctinh sau:
malop là mã nhận diện của từng lớp
makhoa là mã nhận diện của từng khoa
tenlop là tên của từng lớpKhóa chinh – Primary Key là malop
o Bảng sinhvien (masv, tensv, namsinh, sdt, malop) là bảng lưu thông tin sinh viên của toàn trường
Bảng có các thuộc tinh sau :
masv là mã nhận diện của từng sinh viên
tensv là họ và tên của từng sinh viên
namsinh là ngày tháng năm sinh của từng sinh viên
sdt là số điện thoại liên lạc của từng sinh viên
malop là mã nhận diện lớp của sinh viên đóKhóa chinh – Primary Key là masv
Khóa ngoại – Foreign key là malop Ứng với YC01, YC05
o Bảng sophieu (maphieu, masv, masach, soluongmuon, ngaym, ngayt) là bảng lưu thông tin về việc mượn sách của các sinh viên trong trường và thông tin về thời hạn mượn Bảng có các thuộc tinh sau :
maphieu là mã nhận diện của từng phiều đối với mỗi lần mượn
masv là mã nhận diện của sinh viên mượn sách
Trang 5 masach là mã nhận diện của sách được mượn
soluongmuon là số lượng sách được sinh viên mượn
ngaym là ngày tháng năm sách được sinh viên mượn
ngayt là thời hạn sinh viên phải trả sách
Khóa chinh – Primary key là masv, masachKhóa ngoại – Foreign Key là masv, masachỨng với YC03, YC04,YC06,YC07,YC08,YC09,YC10
Sơ đồ Diagram :
Trang 6
DROP DATABASE thuvien
CREATE TABLE sach
(
masach NVARCHAR ( 50 ) NOT NULL,
tensach NVARCHAR ( 50 ) NOT NULL,
tacgia NVARCHAR ( 50 ) NOT NULL,
DROP TABLE sach
CREATE TABLE lop
DROP TABLE lop
CREATE TABLE sinhvien
CONSTRAINT pk_masv PRIMARY KEY ( masv ),
CONSTRAINT fk_sinhvien_malop FOREIGN KEY ( malop ) REFERENCES lop ( malop ) ON DELETE CASCADE ON UPDATE
CASCADE
);
DROP TABLE sinhvien
CREATE TABLE sophieu
Trang 7CONSTRAINT fk_sophieu_masv FOREIGN KEY ( masv ) REFERENCES sinhvien ( masv ) ON DELETE CASCADE ON
-SACH -INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('ta1','tieng anh 1','dh su pham','2016','kim dong','giao trinh','10')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('ta2','tieng anh 2','dh su pham','2016','quoc gia','giao trinh','9')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('ta3','tieng anh 3','dh bach khoa','2017','dh su pham','giao trinh','11')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('c++','ngon ngu lap trinh c','dh su pham','2017','phuong nam','giao trinh','12')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('vatly','vat ly dai cuong','dh quoc gia','2018','dh su pham','giao trinh','11')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('pldc','phap lat dai cuong','dh luat ha noi','2014','dh su pham','giao trinh','10')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('tcc1','toan cao cap 1','nxb thanh nien','1999','dh su pham','giao trinh','5')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('dhmt','do hoa may tinh','dh dien luc','2009','dh dien luc','giao trinh','6')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('mmt','mang may tinh','thanh nien','2007','thanh nien','giao trinh','7')
INSERT INTO sach ( masach , tensach , tacgia , namxb , nhaxb , theloai , soluong )
VALUES ('KTMT','KIEN TRUC MAY TINH','DH BACH KHOA','2016','PHUONG NAM','GIAO TRINH','8')
-LOP -INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('tc-01','1782','the chat')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('ta-02','ms13','tieng anh')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('cntt','ac14','cong nghe thong tin')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('cnpm','df15','cong nghe phan mem')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('cot','af72','co dien tu')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('h2','ck13','dien')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('qtdn','qt3','kinh te')
INSERT INTO lop ( malop , tenkhoa , tenlop ) VALUES ('cota','ck14t','co ban')
-SINHVIEN -INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310183','dinh doan viet','1998/01/02','0965062715','tc-01')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310184','nguyen thi thu','1997/01/03','0965062716','ta-02')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310185','nguyen quang vinh','1996/01/04','0965062717','cntt')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310186','nguyen quoc tuan','1999/01/05','0965062718','cnpm')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310187','nguyen tri tue','2000/01/06','0965062719','cot')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310188','nguyen xuan tuan','2000/01/07','0965062710','h2')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310189','pham xuan tung','1999/01/09','0965062711','qtdn')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310190','le thanh tung','1999/01/08','0965062712','cota')
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310191','nguyen quoc ha','1998/01/10','0965062713','cnpm')
Trang 8INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES ('1781310192','nguyen xuan duc','1999/01/11','0965062714','cnpm')
1.Nguyễn Quốc Tuấn :
Bài 1 : Lớp có sinh viên mượn ít sách nhất
Bài 2 : Tính tổng sinh viên của từng lớp đã mượn sách
Bài 3 : Chỉnh sửa cơ sở dữ liệu để có thể in ra phiếu của người mượn (số lượng mượn, tên sách, tác giá, thời gian …)
Bài 4 : khởi tạo trigger Update Số Lượng sách trong bảng Sophieu và sach
Bài 5 : Tạo procedure cho câu INSERT để thêm sinh viên vào bảng lớp
-Bai Tap 1 : Hiển thị danh sách lớp có sinh viển mượn ít sách
Viển' , sophieu soluongmuon AS N'Số Lượng Mượn'
FROM lop , sinhvien , sophieu
FROM sophieu
-Bai tap 2: Tính tống sinh viển cua từng lớp đã mượn sách -Chưa xong
sophieu masv ) AS N'Số SV Mượn Sách' , SUM ( soluongmuon ) AS N'Số Lượng Mượn'
FROM lop , sinhvien , sophieu
Trang 9-BÀi 3 : Chỉnh sưa cơ sơ dữ liệu để có thể in ra phiểu cua người mượn (số lượng mượn, tển sách, tác giá, thời gian …)
AS
RETURN(
SELECT
sinhvien tensv , sophieu maphieu , sach tensach , sach theloai , sach tacgia , sophieu soluongmuo
n sophieu ngayt , sophieu ngaym
FROM sinhvien , sophieu , sach
AND sinhvien masv = sophieu masv AND sophieu masach = sach masach
sinhvien tensv , sophieu maphieu , sach tensach , sach theloai , sach tacgia , sophieu soluongmuo
n sophieu ngayt , sophieu ngaym
)
-Bài 4 : khơi tạo trigger Update Số Lượng sách trong bang Sophieu và sach
BEGIN
UPDATE sach SET soluong = sach soluong - (SELECT soluongmuon FROM inserted WHERE masach = sach masach )
+ (SELECT soluongmuon FROM deleted WHERE masach = sach masach )
from sach
join deleted on sach masach = deleted masach
END
UPDATE sophieu SET soluongmuon = 3 WHERE maphieu = 157
- Bai 5 : Tạo procedure cho cấu INSERT để thểm sinh viển vào bang lớp
Bang Sinh viển trước khi tạo Procedure
procedure cho cấu INSERT
INSERT INTO sinhvien ( masv , tensv , namsinh , sdt , malop )
VALUES( @masv , @tensv , @namsinh , @sdt , @malop )
END
-Gọi procedure thểm sinh viển
EXEC udsThemSinhVien '126802' , N'Nguyể_ n Văn AAA' , '1998' , '0396854725' , 'CNPM2'
Bang Sinh viển sau khi tạo
2.Nguyễn Thị Thu :
Bài 1 : Tác Giả có nhiều sách được mượn nhất
Bài 2 : Tính tổng số sách mượn của từng sinh viên theo lớp
Trang 10Bài 3 : Tạo thêm cột trong bảng để tính toán số ngày đã mượn sách của từng sinh viên
Bài 4 : Tạo procedure để xem thông tin sinh viên đã mượn sách trong bảng số phiếu
Bài 5 : Tạo Trigger cập nhật thông tin sinh viên có soluongmuon trên bảng số phiếu
Bài 1: Tác giả có nhiều sách được mượn nhất
SELECT TOP 1 tacgia , sum(soluongmuon)
AS ‘ tongsoluongmuon ’
FROM sach , sophieu
WHERE sach.masach = sophieu.masach
GROUP BY tacgia
ORDER BY sum(soluongmuon) DESC
Bài 2 : Tính tổng số sách mượn của từng sinh viên theo lớp
SELECT tensv , sum(soluongmuon), malop
AS ‘ tongsoluongmuon ‘
FROM sinhvien , sophieu
WHERE sinhvien.masv = sophieu.masv
GROUP BY malop, tensv
Bài 3 : Tạo thêm cột trong bảng để tính toán số ngày đã mượn sách của từng sinh viên
ALTER TABLE sophieu
ADD songaym INT
sau khi them 1 cot ta update du lieu vao cot
UPDATE sophieu
SET songaym = DATEDIFF (DAY,ngayt, ngaym)
Trang 11SELECT masv , tensv, malop
FROM sinhvien, lop
WHERE sinhvien.malop = lop.malop)
SELECT * FROM thongtin_nguoimuon
CREATE PROCEDURE thongtin_SV
SELECT * FROM sinhvien
WHERE masv = @masv
END
EXEC thongtin_SV '1781310183'
Trang 12WHERE sophieu.masach = sach.masach GROUP BY tacgia)
END
SELECT * FROM sophieu
DROP TRIGGER capnhat_SV
3.Nguyễn Trí Tuệ :
Bài 1 : Sinh viên mượn sách dưới 20 tuổi Bài 2 : Update số lượng sách sau khi sinh viên mượn thêm sách Bài 3 : Thêm cột tính tổng số sinh viên trên bảng lớp Tính tổng số sinh viên các lớp đã mượn sách
Bài 4 : Từ bảng số phiếu hiển thị thông tin mã sinh viên, mã phiếu, ngày mượn, ngày trả của những sinh viên mượn 2 quyển sách
Bài 5 : Tạo 1 trigger để xóa số lượng sách mượn
Bài1: Sinh viên mượn sách dưới 20 tuổi
Code minh họa
SELECT SINHVIEN.MASV,TENSV,MALOP
FROM SINHVIEN,SOPHIEU
WHERE SINHVIEN.MASV = SOPHIEU.MASV
AND ( YEAR ( GETDATE() )- YEAR (NAMSINH) <20 );
Trang 13Bài2: Update số lượng sách sau khi sinh vien mượn thêm sách
Code minh họa
ALTER TABLE SOPHIEU ADD MUONTHEM int;
cap nhap thong tin
-update so luong sach sau khi muon
UPDATE AS
BEGIN
UPDATE sach SET soluong=sach.soluong - (SELECT MUONTHEM FROM inserted WHERE masach = sach.masach)
Trang 14BANG TRUOC CAP NHAP
-BANG SAU CAP NHAP
Trang 15Bài3: Thêm cột tính tổng số sinh viên trên bảng lớp Tính tổng số sinh viên các lớp đã mượn sách
Code minh họa
ALTER TABLE LOP ADD TONGSOSV int;
cap nhap thong tin
TONGSOSV -INSERT INTO LOP VALUES ( 'TC-01','1782','THE CHAT','50' )
INSERT INTO LOP VALUES ( 'TA-02','MS13','TIENG ANH','46' ) INSERT INTO LOP VALUES ( 'CNTT','AC14','CONG NGHE THONG TIN','50' )
MEM','36' )
INSERT INTO LOP VALUES ('COT','AF72','CO DIEN TU','24')
INSERT INTO LOP VALUES ( 'H2','CK13','DIEN','56' )
INSERT INTO LOP VALUES ( 'QTDN','QT3','KINH TE','40' )
INSERT INTO LOP VALUES ( 'COTA','CK14T','CO BAN','26' )
tong sinhvien cac lop da muon sach
-SELECT SINHVIEN.MALOP AS N'Mã Lớp' , LOP.TENLOP
AS N'Tên Lớp' , count (DISTINCT SOPHIEU.MASV)
AS N'Số SV Mượn Sách' , SUM (SOLUONG+MUONTHEM)
Trang 16Bài4: Từ bảng số phiếu hiển thị thông tin mã sinh viên, mã phiếu, ngày mượn, ngày trả của những
sinh viên mượn 2 quyển sách
Code minh họa:
CREATE VIEW VIEW_sophieu
AS (
SELECT MASV,MAPHIEU,NGAYT,NGAYM,SOLUONG
FROM SOPHIEU
Bài5: Tạo 1 trigger để xóa số lượng sách mượn
Code minh họa:
FOR DELETE AS
BEGIN
UPDATE sach SET soluong = soluong - (
Trang 174.Lê Thanh Tùng :
Bài 1 : Lớp có sinh viên mượn nhiều sách nhấtBài 2 : Tổng lượng sách đã mượn theo nhà xuất bảnBài 3 :Tạo lập quyền hạn mượn sách của từng sinh viên (2 – 5 quyển/tháng) Tính toán số lượng sinh viên đã mượn quá số lượng quy định
Bài 4 :Từ bảng sach hiển thị ra masach,tensach,soluong có Năm xuất bản vào năm 2016Bài 5 : Tạo 1 trigger kiểm tra số lượng sách mượn trên bảng sophieu có vượt quá giới hạn mỗi khi update dữ liệu
BÀI 1 : HIỂN THỊ LỚP CÓ SINH VIÊN MƯỢN NHIỀU SÁCH NHẤT
SELECT sinhvien.masv,tensv,lop.malop,tenlop,sum(soluongmuon)as'soluongmuon'
FROM sophieu,sinhvien,lop
WHERE sophieu.masv=sinhvien.masv and lop.malop=sinhvien.malop
and lop.malop in(SELECT malop
FROM sinhvien,sophieu
WHERE sinhvien.masv=sophieu.masv GROUPBY malop
HAVINGSUM(soluongmuon)>=all(SELECTsum(soluongmuon)
FROM sophieu,sinhvien,LOP WHERE sophieu.masv=sinhvien.masv
and lop.MALOP=SINHVIEN.MALOP GROUPBY lop.malop))
GROUPBY sinhvien.masv,tensv,lop.malop,tenlop ;
BÀI 2 : Tổng lượng sách đã mượn theo nhà xuất bản
SELECT nhaxb,sum(soluongmuon)as'tongmuon'
FROM sach, sophieu
WHERE sach.masach = sophieu.masach
GROUPBY nhaxb
ORDERBY [tongmuon] DESC;
BÀI 3: Tạo lập quyền hạn mượn sách của từng sinh viên (2 – 5 quyển/tháng)
Tính toán số lượng sinh viên đã mượn quá số lượng quy định
CREATETABLE themuon(
CONSTRAINT pk_mathe PRIMARYKEY(mathe,masv),
CONSTRAINT fk_themuon_masv FOREIGNKEY (masv)REFERENCES sinhvien(masv)ONDELETECASCADE
ONUPDATECASCADE)
Trang 18
INSERTINTO themuon VALUES ('1','1781310183','157','5','2018/1/2','2018/1/2')
INSERTINTO themuon VALUES ('2','1781310184','480','3','2018/2/27','2019/01/01')
INSERTINTO themuon VALUES ('3','1781310185','773','3','2018/4/15','2018/10/01')
INSERTINTO themuon VALUES ('4','1781310186','470','3','2018/12/2','2019/01/01')
INSERTINTO themuon VALUES ('5','1781310187','982','3','2018/10/22','2019/02/01')
INSERTINTO themuon VALUES ('6','1781310188','175','3','2018/8/13','2019/12/01')
INSERTINTO themuon VALUES ('7','1781310189','157','3','2018/9/2','2019/01/01')
INSERTINTO themuon VALUES ('8','1781310190','486','3','2018/6/1','2019/10/01')
INSERTINTO themuon VALUES ('9','1781310191','456','5','2018/4/30','2019/10/01')
INSERTINTO themuon VALUES ('10','1781310192','489','3','2018/5/4','2019/9/01')
INSERTINTO themuon VALUES ('2','1781310184','123','3','2018/2/27','2019/01/01')
INSERTINTO themuon VALUES ('2','1781310184','124','3','2018/2/27','2019/01/01')
drop table themuon
SELECT sinhvien.masv,tensv,count(soluongmuon)AS'soluongthua'
FROM sinhvien,sophieu,themuon
WHERE sinhvien.masv = sophieu.masv and sinhvien.masv = themuon.masv
and soluongmuon > gioihanmuon
GROUPBY sinhvien.masv,tensv ;
Bài 4 : Từ bảng sach hiển thị ra masach,tensach,soluong có Năm xuất bản vào năm 2016
CREATEVIEW v_sach AS (
SELECT masach,tensach,soluong,namxb
FROM sach
GROUPBY masach,tensach,soluong,namxb )
DECLARE @namxb INT
SET @namxb = 2016
SELECT*
FROM v_sach
WHEREYEAR(namxb)= @namxb
ORDERBY [namxb] DESC
Bài 5 : Tạo 1 trigger kiểm tra số lượng sách mượn trên bảng sophieu có vượt quá giới hạn mỗi khi update dữ liệu
CREATEVIEW v_sophieu AS (
SELECTDistinct sophieu.masv, sinhvien.tensv, soluongmuon
FROM sophieu, sinhvien
WHERE sophieu.masv = sinhvien.masv
GROUPBY sophieu.masv, sinhvien.tensv,soluongmuon)
DROP VIEW v_sophieu
SELECT*FROM v_sophieu
SELECT*FROM themuon,sinhvien where sinhvien.masv=themuon.masv
TRIGGER CREATETRIGGER nhap_slmuon ON sophieu