Cafedev chia sẻ cho ace một số bài tập thực hành sql server nhằm giúp các bạn nâng cao kỹ năng và kiến thức khi làm việc với cơ sở dữ liệu trong thực tế. Tiếp theo phần 2
Series tự học SQL từ cơ bản tới nâng cao cho ace.
Nội dung chính
1. Đề bài
Câu 1 – Tạo bảng
Cơ sở dữ liệu quản lý hóa đơn bán hàng có chứa 3 table. Viết lệnh tạo các table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa.
1- MatHang(MSMH, TenMH, DonGia, SoTon)
Tân từ: Mỗi mặt hàng có một mã số (MSMH) là một số nguyên phân biệt, có tên mặt hàng (TenMH), đơn giá (DonGia) bán mới nhất của mặt hàng đó và số lượng hàng tồn kho (SoTon).
2- HoaDon(MSHD, NgayLap)
Tân từ: Mỗi hóa đơn có một mã số phân biệt (MSHD), ngày lập hóa đơn (NgayLap)
3- CTHD(MSHD, MSMH, SoLuong, DonGiaHD)
Tân từ: Mỗi hóa đơn (MSHD) ghi một hoặc nhiều mặt hàng (MSMH) cùng với số lượng (SoLuong) và đơn giá bán tại thời điểm ghi hóa đơn (DonGiaHD).
Câu 2 – Tạo ràng buộc
Khai báo bổ sung các ràng buộc sau:
- Số tồn (SoTon) trong table MatHang có giá trị mặc định (Default) bằng 0.
- Tên mặt hàng trong table MatHang có giá trị phân biệt giữa các mặt hàng.
Câu 3 – Tạo view
- Tạo view “vwTienHD” dùng hiển thị tiền bán trên từng hóa đơn gồm các thông tin: mã số hóa đơn, ngày lập, tiền hóa đơn bằng tổng tiền bán từng mặt hàng ghi trên mỗi hóa đơn.
- Tạo view “vwHangKhongBanDuoc” dùng liêt kê danh sách các mặt hàng không bán được trong tháng hiện hành.
Câu 4 – Tạo trigger
Xây dựng Insert trigger cho CTHD thực hiện yêu cầu: khi thêm một chi tiết hóa đơn phải cập nhật lại số lượng tồn (SoTon) của mặt hàng tương ứng.
Câu 5 – Viết hàm
Viết thủ tục hoặc hàm nhận 2 giá trị input kiểu số nguyên là tháng và năm. Hãy liệt kê doanh thu của từng mặt hàng gồm các thông tin: mã số mặt hàng, doanh thu mặt hàng trong :
- Một năm nếu tháng là Null và năm khác Null
- Một tháng nếu tháng và năm khác Null
2. Bài giải
Hướng dẫn cách xem và tải tài liệu từ trang cafedev tại đây.
Xem bài giải
3. Series lý thuyết ôn tập
Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!