Langman-congdongcviet Bài tập thực hành SQL - Quản lý bán sách Cho CSDL lưu trữ thông tin quản lý sách cửa hàng sách Rạng Đông Hà Nội gồm ba bảng có cấu trúc sau: Sach: Chứa danh sách sách có cửa hàng Rạng Đông Field Description MaSach Mã sách, Primary key TenSach Tên sách TacGia Tác giả NhaXB Tên nhà xuất ChuDe Chủ đề TrongKho Số lượng kho Ví dụ, bảng Sach chứa thông tin sau: MaSach TenSach TacGia Hoang hon tren song Gia Phong Cay lua nuoc Le May Tam ly truoc mua thi Hai Dang ChuDe Tinh yeu Khoa hoc Tam ly DonGia 120 30 42 TrongKho 11 24 32 KhachHang: Chứa danh sách khách hàng cửa hàng Field Description MaKH Mã khách hàng, Primary key TenKH Tên khách hàng DiaChi Địa kháchhàng Quan Tên quận huyện nơi khách hàng cư trú DienThoai Số điện thoại kháchàng Ví dụ, bảng KhachHang chứa thông tin sau: MaKH TenKH DiaChi Quan Le Cong 22 Hang Buom Hoan Kiem Van Nghe 19 Lo Duc Hoan Kiem Tran Thong 19 Doi Can Ba Dinh Hoang Tin 38 Linh Nam Hoang Mai DienThoai 098123654 SachBan: Chứa danh sách sách bán cửa hàng Rạng Đông Field Description SoHD Số hóa đơn (là Primary key) MaKH Mã khách hàng mua sách MaSach Mã sách mà khách hàng mua NgayMua Ngày mua sách DonGia Đơn giá sách thời điểm bán sách SoLuong Số lượng sách bán Ví dụ, bảng SachBan chứa thông tin sau: SoHD MaKH MaSach NgayBan 1 22/11/2006 15/7/2005 24/5/2006 15/11/2005 Soluong NguoiGT Hoang Kim Quan hệ bảng sau: Trong bảng SachBan field MaKH khóa ngoại tham chiếu đến field MaKH bảng KhachHang, field MaSach khóa ngoại tham chiếu đến field MaSach bảng Sach Mô tả: Trong bảng KhachHang mã số khách hàng (MaKH) nhất, field liệu khách hàng bắt buộc nhập (not NULL), ngoại trừ field NguoiGT Một khách hàng lần mua hàng hàng sách Rạng Đông, nhân viên hỏi thông tin khách hàng nhập vào bảng KhachHang Ví dụ, khách hàng Tân đến mua sách Nhà Sách Rạng Đông thông tin Tân lưu trữ bang KhachHang sau: MaKH: 15 TenKH: Tân DiaChi: 123 Doi Can Quan: Ba Dinh Dữ liệu mua sách cập nhật vào bảng SachBan Các field bảng yêu cầu nhập liệu (not NULL) Bảng Sach lưu thông tin đầu sách giới thiệu Chú ý: Các thuộc tính có gạch chân khoá (primary key) bảng YÊU CẦU: Tạo database có tên RangDong SQL server máy cục thực công việc sau: Câu 1: Tạo bảng nhập liệu a Viết câu SQL tạo bảng có đủ khoá khoá ngoại theo lược đồ mô tả b Viết câu SQL nhập đầy đủ xác liệu theo mô tả vào bảng vừa tạo (Lưu ý thứ tự nhập liệu) c Tạo loại index cách thích hợp theo dõi tác động lệnh thực lệnh truy vấn (select) Câu 2: Viết câu truy vấn liệu (query) a Viết câu lệnh SQL cho kết số đầu sách xuất nhà xuất “KHKT” b Viết câu lệnh SQL cho kết danh sách nhà xuất với số đầu sách tương ứng NXB, theo thứ tự tăng dần tên NXB c Viết câu lệnh SQL cho kết danh sách khách hàng sống quận "Ba Dinh", với tên đầu sách mà khách hàng mua d Viết câu lệnh SQL cho kết danh sách khách hàng, với tổng số sách (total quantity) mà khách hàng mua e Viết câu lệnh SQL cho kết danh sách khách hàng, với tên nhà xuất đầu sách mà khách hàng mua f Viết câu lệnh SQL cho kết danh sách khách hàng, với số lần mua sách khách hàng (mỗi record bảng SachBan lần mua sách) g Viết câu lệnh SQL cho kết danh sách quận, với tổng giá trị mua sách khách hàng sống quận Sắp xếp theo thứ tự giảm dần giá trị Câu 3: Viết Stored Procedure Viết script tạo stored procedure với yêu cầu sau: - Tên Procedure: procSachBan - Tham số: pChuDe - Xử lý: + Nếu thông số pChuDe không truyền, procedure liệt kê danh sách tất sách bán (trong bảng SACHBAN) gổm: MaSach, TenSach, SoLuong, ThanhTien Lưu ý sách với tiêu đề bán nhiều lần với số lượng khác nhau, danh sách MaSach va TenSach hiển thị lần, không lặp lại + Nếu thông số pChuDe truyền, procedure liệt kê danh sách tất sách bán (trong bảng SACHBAN) gổm: MaSach, TenSach, SoLuong, ThanhTien, gồm thuộc chủ đề pChuDe mà ... khách hàng Tân đến mua sách Nhà Sách Rạng Đông thông tin Tân lưu trữ bang KhachHang sau: MaKH: 15 TenKH: Tân DiaChi: 123 Doi Can Quan: Ba Dinh Dữ liệu mua sách cập nhật vào bảng SachBan Các field