



























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Tổng hợp cách làm bài tập lớn môn hệ quản trị cơ sở dữ liệu
Typology: Study notes
1 / 35
This page cannot be seen from the preview
Don't miss anything!
Hà Nội, năm 2024
- B1: Chuyển KTT mạnh
- B2: Chuyển KTT yếu (Không có kiểu thực thể yếu) - B3: 1 – 1
- B5: N – N
(1, N'Nguyễn Văn Long', '0987654321', 'nguyenvanlong@gmail.com', 2, 1), (2, N'Trần Thị Hiền', '0901234567', 'tranthihien@gmail.com', 1, 0), (3, N'Lê Minh Cường', '0978888999', 'leminhcuong@gmail.com', 2, 2), (4, N'Phạm Thị Lan', '0961111222', 'phamthilan@gmail.com', 3, 1), (5, N'Trương Văn Dũng', '0944444555', 'truongvandung@gmail.com', 2, 2); -- Bảng PHONG CREATE TABLE PHONG ( maP INT not null, hangP NVARCHAR(50), soluong INT, giaPcuoituan FLOAT, giaPngaythuong FLOAT, trangthaiP NVARCHAR(50) ); INSERT INTO PHONG VALUES (1, 'Deluxe Lake View', 85, 4900000, 5500000, N'Còn trống'), (2, 'Deluxe Bay View', 200, 5490000, 6000000, N'Còn trống'), (3, 'Premier Deluxe Bay View', 34, 6890000, 7500000, N'Còn trống'), (4, 'Executive Bay View', 19, 8890000, 9500000, N'Còn trống'), (5, 'Junior Suite Bay View', 10, 10900000, 11500000, N'Còn trống'), (6, 'Executive Suite Bay View', 2, 16550000, 17500000, N'Còn trống'), (7, 'Grand Suite Bay View', 3, 18550000, 19500000, N'Còn trống'), (8, 'Presidential Suite', 1, 48790000, 49500000, N'Còn trống');
-- Bảng NHANVIEN CREATE TABLE NHANVIEN ( maNV INT NOT NULL, hotenNV NVARCHAR(100), SDT VARCHAR(20), diaChi NVARCHAR(200) ); INSERT INTO NHANVIEN VALUES (1, N'Nguyễn Văn An', '0912345678', N'Hà Nội'), (2, N'Trần Thị Bình', '0987654321', N'Hải Phòng'), (3, N'Lê Văn Cường', '0901111222', N'Đà Nẵng'), (4, N'Phạm Thị Hương', '0978888999', N'Hồ Chí Minh'), (5, N'Lê Thị Lan', '0961111222', N'Cần Thơ'); -- Bảng HOADON CREATE TABLE HOADON ( maHD INT NOT NULL, tenHD NVARCHAR(100), ngayDen DATE, ngayDi DATE, ngayLap DATE, thanhTien FLOAT, maKH INT, maNV INT, maP INT ); INSERT INTO HOADON VALUES (1, N'Hóa đơn 1', '2024-07-01', '2024-07-03', '2024-07-03', 11000000, 1, 1, 2), (2, N'Hóa đơn 2', '2024-07-05', '2024-07-08', '2024-07-08', 10080000, 2, 3, 3), (3, N'Hóa đơn 3', '2024-07-10', '2024-07-12', '2024-07-12', 9800000, 3, 2, 1), (4, N'Hóa đơn 4', '2024-07-15', '2024-07-18', '2024-07-18', 20080000, 4, 4, 5), (5, N'Hóa đơn 5', '2024-07-20', '2024-07-22', '2024-07-22', 19000000, 5, 5, 4);
(4, N'Phạm Văn An', '2018-01-25', 5), (5, N'Hoàng Thị Hà', '2019-11-05', 3), (6, N'Nguyễn Mỹ Tâm', '2019-12-01',5); -- Bảng PHUPHI CREATE TABLE PHUPHI ( maPhuPhi INT NOT NULL, TenPP NVARCHAR(100), GiaPP FLOAT ); INSERT INTO PHUPHI VALUES (1, N'Trẻ dưới 6 tuổi', 0), (2, N'Trẻ từ 6-12 tuổi', 500000), (3, N'Giường phụ', 1300000), (4, N'Người lớn ngủ ghép', 800000), (5, N'Cũi trẻ em', 0); -- Bảng ChiTietDichVu CREATE TABLE ChiTietDichVu ( maHD INT, maDV INT, ); INSERT INTO ChiTietDichVu VALUES (1, 1), (1, 3), (2, 2),
-- Bảng ChiTietPhuPhi CREATE TABLE ChiTietPhuPhi ( maHD INT, maPhuPhi INT, ); INSERT INTO ChiTietPhuPhi VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); -- Thêm ràng buộc cho bảng KHACHHANG ALTER TABLE KHACHHANG ADD CONSTRAINT PK_KHACHHANG PRIMARY KEY (maKH), CONSTRAINT CHK_KHACHHANG_SoLuongNguoi CHECK (solgnguoilon >= 0 AND solgtreem >= 0); -- Thêm ràng buộc cho bảng PHONG ALTER TABLE PHONG ADD CONSTRAINT PK_PHONG PRIMARY KEY (maP); -- Thêm ràng buộc cho bảng NHANVIEN
ADD CONSTRAINT PK_ChiTietPhuPhi PRIMARY KEY (maHD, maPhuPhi), CONSTRAINT FK_ChiTietPhuPhi_HOADON FOREIGN KEY (maHD) REFERENCES HOADON(maHD), CONSTRAINT FK_ChiTietPhuPhi_PHUPHI FOREIGN KEY (maPhuPhi) REFERENCES PHUPHI(maPhuPhi); --Phần c: Truy vấn nhiều bảng --HỌ TÊN: HOÀNG NGỌC ÁNH --MÃ SV: 23A1001D --1. Liệt kê danh sách các hóa đơn cùng thông tin chi tiết khách hàng và phòng đã đặt SELECT HD.maHD, HD.tenHD, KH.hotenKH, KH.SDT, KH.email, P.hangP, HD.ngayDen, HD.ngayDi, HD.thanhTien FROM HOADON HD JOIN KHACHHANG KH ON HD.maKH = KH.maKH JOIN PHONG P ON HD.maP = P.maP; --2. Liệt kê các dịch vụ đã sử dụng trong mỗi hóa đơn SELECT HD.maHD, HD.tenHD, DV.tenDV, DV.giaDV FROM HOADON HD JOIN ChiTietDichVu CTDV ON HD.maHD = CTDV.maHD JOIN DICHVU DV ON CTDV.maDV = DV.maDV; --3. Truy vấn danh sách hóa đơn cùng với thông tin chi tiết khách hàng và nhân viên SELECT HD.maHD, HD.tenHD, HD.ngayDen, HD.ngayDi, HD.ngayLap, HD.thanhTien, KH.hotenKH AS TenKhachHang, KH.SDT AS SDT_KhachHang, NV.hotenNV AS TenNhanVien, NV.SDT AS SDT_NhanVien, P.hangP AS HangPhong,
P.giaPngaythuong AS GiaNgayThuong, P.giaPcuoituan AS GiaCuoiTuan FROM HOADON HD INNER JOIN KHACHHANG KH ON HD.maKH = KH.maKH INNER JOIN NHANVIEN NV ON HD.maNV = NV.maNV INNER JOIN PHONG P ON HD.maP = P.maP ORDER BY HD.ngayLap DESC; --4. Truy vấn danh sách chi tiết dịch vụ của các hóa đơn SELECT HD.maHD, HD.tenHD, KH.hotenKH AS TenKhachHang, DV.tenDV AS TenDichVu, DV.giaDV AS GiaDichVu FROM HOADON HD INNER JOIN KHACHHANG KH ON HD.maKH = KH.maKH INNER JOIN ChiTietDichVu CTDV ON HD.maHD = CTDV.maHD INNER JOIN DICHVU DV ON CTDV.maDV = DV.maDV ORDER BY HD.maHD, DV.tenDV; --5. Liệt kê tất cả các khách hàng đã sử dụng dịch vụ tại khách sạn SELECT DISTINCT KH.maKH, KH.hotenKH, KH.SDT, KH.email FROM KHACHHANG KH JOIN HOADON HD ON KH.maKH = HD.maKH JOIN ChiTietDichVu CTDV ON HD.maHD = CTDV.maHD;
-- Sắp xếp bảng phụ phí theo giá phụ phí giảm dần select * from PHUPHI ORDER BY GiaPP DESC; --Phần d: Tạo view --HỌ TÊN:LÊ THỊ HƯƠNG --MASV :23A1001D --Tạo view hiển thị thông tin khách hàng CREATE VIEW View_ThongTinKhachHang AS SELECT maKH AS MaKhachHang, hotenKH AS HoTen, SDT AS SoDienThoai, email AS Email, solgnguoilon AS SoLuongNguoiLon, solgtreem AS SoLuongTreEm FROM KHACHHANG; --Tạo view hiển thị thông tin khách hàng và số lượng hóa đơn đã lập CREATE VIEW View_KhachHang_HoaDon AS SELECT k.maKH AS MaKhachHang, k.hotenKH AS HoTen, k.SDT AS SoDienThoai,
k.email AS Email, k.solgnguoilon AS SoLuongNguoiLon, k.solgtreem AS SoLuongTreEm, COUNT(h.maHD) AS SoLuongHoaDon FROM KHACHHANG k LEFT JOIN HOADON h ON k.maKH = h.maKH GROUP BY k.maKH, k.hotenKH, k.SDT, k.email, k.solgnguoilon, k.solgtreem; --HỌ TÊN:ĐINH NGỌC HIẾU --MASV :23A1001D ----Tạo view hiển thị thông tin khách hàng và hóa đơn của họ CREATE VIEW View_KhachHang_HoaDon_ChiTiet AS SELECT k.maKH AS MaKhachHang, k.hotenKH AS HoTen, k.SDT AS SoDienThoai, k.email AS Email, k.solgnguoilon AS SoLuongNguoiLon, k.solgtreem AS SoLuongTreEm, h.maHD AS MaHoaDon, h.tenHD AS TenHoaDon, h.ngayDen AS NgayDen, h.ngayDi AS NgayDi, h.ngayLap AS NgayLap, h.thanhTien AS ThanhTien, p.hangP AS LoaiPhong FROM KHACHHANG k LEFT JOIN HOADON h ON k.maKH = h.maKH LEFT JOIN PHONG p ON h.maP = p.maP; --HỌ TÊN: HOÀNG NGỌC ÁNH --MÃ SV: 23A1001D -- Hiển thị thông tin phòng và tình trạng đặt phòng CREATE VIEW vw_ThongTinPhong AS SELECT P.maP, P.hangP, P.soluong, P.trangthaiP, COUNT(HD.maHD) AS SoLuongDat FROM PHONG P LEFT JOIN HOADON HD ON P.maP = HD.maP GROUP BY P.maP, P.hangP, P.soluong, P.trangthaiP;