Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Yc1 – Phân tích bài toán, xác định các

thực thể và các thuộc tính của chúng.

Sach ( Ma_sach,Tieu_de,NXB,Tac_gia,So_trang,Ngay_nhap_kho,Vi-Tri,So_luong ,Gia_tien)

Loaisach ( Ma_loai,Ten_loai)

Thesv ( Masv,Tensv,Ngay_het_hang,Chuyen_nganh,Email,SDT,Ma_lop)

Phieu_muon ( Ma_pm, Ma_sv,ngay_muon)

Chi_tiet_phieu_muon ( Ma_pm, Ma_sach,Ghi_chu)


Yc2 : Thiết kế sơ đồ quan hệ ERD
Yc 3 : thiết kế mức vật lý
Yc4 : Tạo các bảng trong CSDL, tạo các
ràng buộc
Yc 5: Nhập dữ liệu vào cho các bảng
Yc6: viết mã.
--6.1
SELECT ten_sach, ma_sach, gia_tien, tac_gia
FROM dau_sach
WHERE ma_loai_sach = 'IT';

--6.2
SELECT ma_phieu_muon, ma_sach, ngay_muon, ma_sinh_vien
FROM phieu_muon
WHERE MONTH(ngay_muon) = 1 AND YEAR(ngay_muon) = 2017;

--6.3
SELECT *
FROM phieu_muon
WHERE ngay_tra IS NULL
ORDER BY ngay_muon;

--6.4
SELECT ls.ma_loai_sach, ls.ten_loai_sach, COUNT(ds.ma_sach) AS tong_so_luong
FROM loai_sach ls
JOIN dau_sach ds ON ls.ma_loai_sach = ds.ma_loai_sach
GROUP BY ls.ma_loai_sach, ls.ten_loai_sach;

--6.5
SELECT *
FROM dau_sach
WHERE tieu_de LIKE '%SQL%';

--6.6
SELECT *
FROM dau_sach
WHERE tieu_de LIKE '%SQL%';

--6.7
SELECT pm.ma_sinh_vien, sv.ten_sinh_vien, pm.ma_phieu_muon, ds.ten_sach, pm.ngay_muon,
pm.ngay_tra
FROM phieu_muon pm
JOIN sinh_vien sv ON pm.ma_sinh_vien = sv.ma_sinh_vien
JOIN dau_sach ds ON pm.ma_sach = ds.ma_sach
ORDER BY pm.ngay_muon;

--6.8
SELECT ds.ma_sach, ds.ten_sach, COUNT(pm.ma_phieu_muon) AS so_lan_muon
FROM dau_sach ds
JOIN phieu_muon pm ON ds.ma_sach = pm.ma_sach
GROUP BY ds.ma_sach, ds.ten_sach
HAVING COUNT(pm.ma_phieu_muon) > 20;

--6.9
UPDATE dau_sach
SET gia_tien = gia_tien * 0.7
WHERE YEAR(ngay_nhap_kho) < 2014;

--6.10
UPDATE phieu_muon
SET trang_thai = 'Da tra'
WHERE ma_sinh_vien = 'PD12301';

--6.11
SELECT pm.ma_phieu_muon, sv.ten_sinh_vien, sv.email, GROUP_CONCAT(ds.ten_sach) AS
sach_muon, pm.ngay_muon
FROM phieu_muon pm
JOIN sinh_vien sv ON pm.ma_sinh_vien = sv.ma_sinh_vien
JOIN dau_sach ds ON pm.ma_sach = ds.ma_sach
WHERE pm.ngay_tra < CURDATE()
GROUP BY pm.ma_phieu_muon, sv.ten_sinh_vien, sv.email, pm.ngay_muon;

--6.12
UPDATE dau_sach
SET so_luong_ban_sao = so_luong_ban_sao + 5
WHERE ma_sach IN (
SELECT ds.ma_sach
FROM dau_sach ds
JOIN phieu_muon pm ON ds.ma_sach = pm.ma_sach
GROUP BY ds.ma_sach
HAVING COUNT(pm.ma_phieu_muon) > 10
);

--6.13
DELETE FROM phieu_muon
WHERE ngay_muon < '2010-01-01' AND (ngay_tra IS NULL OR ngay_tra < '2010-01-01');

You might also like