create database QLTHUVIEN
CREATE TABLE SACH(
MASACH CHAR(5),
TENSACH NVARCHAR(50),
CONSTRAINT PK_SACH_MS PRIMARY KEY (MASACH),
);
CREATE TABLE BANDOC(
MABD CHAR(5),
TENBD NVARCHAR(50),
CONSTRAINT pk_BD_maBD PRIMARY KEY (MABD),
);
CREATE TABLE MUON(
MAMT CHAR(5),
MABD CHAR(5),
MASACH CHAR(5),
NGAYMUON DATE,
CONSTRAINT pk_Muon_MaMT PRIMARY KEY (MAMT),
CONSTRAINT fk_MT_BD FOREIGN KEY (MABD) REFERENCES BANDOC(MABD),
CONSTRAINT fk_MT_Sach FOREIGN KEY (MASACH) REFERENCES
SACH(MASACH),
);
CREATE TABLE TRA(
MAMT CHAR(5),
NGAYTRA DATE,
CONSTRAINT pk_Tra_MaMT PRIMARY KEY (MAMT),
CONSTRAINT fk_MT_MaMT FOREIGN KEY (MAMT) REFERENCES MUON(MAMT)
);
ALTER TABLE SACH
ADD CONSTRAINT chk_MaSach CHECK (MASACH LIKE 'MS%')
ALTER TABLE MUON
ADD CONSTRAINT chk_NgayMuon CHECK (NGAYMUON < GETDATE())
INSERT INTO SACH(MASACH,TENSACH)
VALUES
('MS001',N'JAVA CĂN BẢN'),
('MS002',N'ĐIỆN TỬ SỐ'),
('MS005',N'TIN HỌC ĐẠI CƯƠNG');
INSERT INTO BANDOC(MABD,TENBD)
VALUES
('BD001',N'PHẠM NGỌC MINH'),
('BD013',N'VŨ TUẤN MINH'),
('BD021',N'TRẦN NGỌC HÀ');
INSERT INTO MUON(MAMT,MABD,MASACH,NGAYMUON)
VALUES
('MT001','BD001','MS001','2015-02-01'),
('MT002','BD013','MS001','2015-03-02'),
('MT003','BD013','MS002','2015-10-01');
INSERT INTO TRA(MAMT,NGAYTRA)
VALUES
('MT001','2015-02-06'),
('MT002','2015-02-06');
UPDATE SACH
SET TENSACH = N'KỸ THUẬT LẬP TRÌNH' WHERE TENSACH = N'ĐIỆN TỬ SỐ'
UPDATE MUON
SET NGAYMUON = '2015-09-02' WHERE MAMT = 'MT002'
DELETE FROM TRA
WHERE NGAYTRA < '2015-06-07'
--Truy van
--3.2.1
SELECT TOP 1 TENBD,COUNT(MASACH) AS SOLUONGMUONSACH FROM
BANDOC
INNER JOIN MUON ON MUON.MABD= BANDOC.MABD
GROUP BY TENBD
ORDER BY SOLUONGMUONSACH DESC
--3.2.2
SELECT TOP 1 TENBD,COUNT(MASACH) AS SOLUONGMUONSACH FROM
BANDOC
INNER JOIN MUON ON MUON.MABD= BANDOC.MABD
WHERE MONTH(MUON.NGAYMUON) = 2 AND YEAR(MUON.NGAYMUON) =
2015
GROUP BY TENBD
ORDER BY SOLUONGMUONSACH DESC
--3.2.3
SELECT TOP 1 TENBD,COUNT(MASACH) AS SOLUONGMUONSACH FROM
BANDOC
INNER JOIN MUON ON MUON.MABD= BANDOC.MABD
GROUP BY TENBD
ORDER BY SOLUONGMUONSACH
--3.2.4
SELECT TENBD FROM BANDOC WHERE BANDOC.MABD NOT IN (SELECT
MUON.MABD FROM MUON);
--3.2.5
SELECT MONTH(NGAYMUON) AS THANG,COUNT(MASACH) AS
SOLUONGMUONSACH FROM MUON GROUP BY NGAYMUON,MASACH ORDER
BY SOLUONGMUONSACH