Câu 2: Tạo thủ tục cho biết tên hàng, tổng số lượng và tổng số tiền đã nhập của các mặt hàng trong một tháng – một năm nào đó. Câu 3: Tạo thủ tục thực hiện tăng lương lên gấp rưỡi cho cá[r]
(1)YÊU CẦU CHUNG:
- Tạo file sql để lưu toàn nội dung thực hành:
Nguyên tắc: CT6.SQLServer.BaiToan.<Họ tên sinh viên>
Ví dụ: CT6.SQLServer.QlyBanHang.NguyenVanHai
- File sql lưu toàn làm thực hành buổi
- Trong buổi thực hành thực làm theo yêu cầu GV - Các lại buổi thực hành phải hoàn thành tương ứng nhà - Lưu ý:
+ Ghi rõ thứ tự buổi thực hành
+ Ghi rõ yêu cầu (Thứ tự – thứ tự ý thực hiện) + file sql yêu cầu nộp để chấm điểm cuối
NGUYÊN TẮC THỨ TỰ THỰC HIỆN Bước 1: Tạo Cơ sở liệu CREATE DATABASE
Bước 2: Tạo cấu trúc bảng CREATE TABLE, ALTER TABLE +tạo bảng phía trước, tạo bảng phía nhiều sau
+khi tạo bảng lưu ý ràng buộc: PRIMARY KEY, CHECK, REFERENCES, …
Bước 3: Tạo sơ đồ liên kết bảng (Diagram)
Bước 4: Nhập liệu vào bảng, nhập bảng phía trước bảng phía nhiều sau INSERT INTO, UPDATE, DELETE
(2)THỰC HÀNH BỔI 1:
Bước 1: Xem mơ hình sở liệu toán để xác định bảng cần tạo Mỗi bảng cần xác định: Tên bảng, thuộc tính, kiểu thuộc tính, ràng buộc (khố chính, giá trị, tham chiếu – khố ngoại, ràng buộc có)
Bước 2: Thực yêu cầu 1.1.a,
Bước 3: Viết đoạn script có sẵn thực hành (trang 4) thực chạy lần lượt đoạn script (Đã tạo bảng: tblLoaiHang, tblNhaCungCap,
tblMatHang)
Bước 4: Viết mã thực yêu cầu sau để tạo đầy đủ CSDL toán
-Tạo bảng tblKhachHang, tblNhanVien theo cấu trúc có, lưu ý thiết lập khố khố ngoại
-Thêm thuộc tính sCMND khơng có giá trị trùng vào bảng tblNhanVien -Đặt ràng buộc: ngày vào làm phải đảm bảo tối thiểu 18 tuổi so với ngày sinh -Thêm thuộc tính sDonvitinh cho bảng tblMatHang, bGioiTinh cho bảng tblKhachHang
-Tạo mục cho cột sTenHang bảng tblMatHang
-Tạo bảng tblDonNhapHang tblChiTietNhapHang theo cấu trúc có, lưu ý thiết lập khố khoá ngoại
-Tạo bảng tblDonDatHang tblChiTietDatHang theo cấu trúc có, lưu ý thiết lập khố khố ngoại
-Trong bảng tblChiTietNhapHang đặt ràng buộc: fGiaNhap>0 fSoLuongNhap>0
(3)Cơ sở liệu Quản lý Bán Hàng:
1. tblLoaiHoang( sMaloaihang, sTenloaihang )
2 tblNhaCungCap( iMaNCC, sTenNhaCC, sTengiaodich, sDiachi, sDienthoai)
3 tblMatHang( sMahang, sTenhang, iMaNCC, sMaloaihang, fSoluong, sDonvitinh, fGiahang)
4 tblKhachHang( iMaKH, sTenKH, sDiachi, sDienthoai, bGioiTinh)
5 tblNhanVien( iMaNV, sTenNV, sDiachi, sDienthoai, dNgaysinh, dNgayvaolam, fLuongcoban, fPhucap, sCMND)
6. tblDonDatHang( iSoHD, iMaNV, iMaKH, dNgaydathang, dNgaygiaohang, sDiachigiaohang)
7 tblChiTietDatHang( iSoHD, sMahang, fGiaban, fSoluongmua, fMucgiamgia)
8 tblDonnhaphang( iSoHD, iMaNV, dNgaynhaphang)
(4)YÊU CẦU THỰC HÀNH BUỔI 02
Viết câu lệnh thực yêu cầu sau 1 Chèn 03 ghi vào bảng tblLoaiHoang
2 Chèn 05 ghi vào bảng tblNhaCungCap 3 Chèn 10 ghi vào bảng tblMatHang
Yêu cầu: Đơn vị tính nhận giá trị: “Hộp”, “Cái”, “Chiếc”
4 Cập nhật Số lượng cho mặt hàng có Đơn vị “Cái” với giá trị 10
5 Chèn 05 ghi vào bảng tblKhachHang u cầu: có đủ giới tính Nam Nữ 6 Chèn 10 ghi vào bảng tblNhanVien
7 Cập nhật phụ cấp 500.000 cho nhân viên làm năm 8 Xoá nhân viên có Tuổi 20
9 Chèn 08 ghi vào bảng tblDonDatHang
Yêu cầu: Ngày đặt hàng để đủ năm 2018, 2019 Dàn số tháng 10 Chèn ghi vào bảng tblChiTietDatHang (chèn cho hoá đơn)
Yêu cầu: Mỗi Đơn Đặt Hàng có mặt hàng Giảm giá tỷ lệ % giảm giá 11 Cập nhật Mức giảm giá 10% cho Đơn hàng lập vào tháng năm
2019
Viết câu lệnh Select để lấy liệu từ bảng 12 Chèn 05 ghi vào bảng tblDonnhaphang
(5)YÊU CẦU THỰC HÀNH BUỔI 03 (SQL VIEW) Lưu ý: ghi rõ yêu cầu thực trước viết code xử lý
A. Viết câu lệnh truy vấn thực hiện
Câu 1: Cho danh sách Khách hàng nữ “Hà Nội”
Câu 2: Cho danh sách tên nhân viên làm >5 năm lương dưới triệu
Câu 3: Tính tổng số tiền bán hàng năm 2019
Câu 4: Cho biết danh sách mặt hàng không bán năm 2019 Câu 5: Cho biết năm 2019, mặt hàng mua 01 lần
Câu 6: Cho danh sách khách hàng Nữ chưa đặt mua hàng lần nào
B. Tạo view thực theo yêu cầu sau:
Câu 7: Thống kê tổng hợp theo đơn đặt hàng, gồm: số đơn đặt hàng, ngày
đặt hàng, tổng số tiền, tổng số mặt hàng vvTongHopDonDat Câu 8: Liệt kê nhân viên có phụ cấp vvNVPhuCap
Câu 9: Thống kê tên mặt hàng bán năm 2019 vvMHBan2019 Câu 10: Thống kê tên mặt hàng không bán năm 2019 vvMHKhongBan2019
Câu 11: Cho biết số lượng tổng tiền bán mặt hàng năm 2019
vvTKeMatHangBan2019
(6)YÊU CẦU THỰC HÀNH BUỔI 04 (THỦ TỤC - PROC)
Lưu ý: - Ghi rõ yêu cầu thực trước viết code xử lý
- Viết câu lệnh chạy thủ tục sau thực thi biên dịch thủ tục
Câu 1: Tạo thủ tục cho danh sách mặt hàng không bán trong năm đó, với năm tham số truyền vào
Câu 2: Tạo thủ tục cho biết tên hàng, tổng số lượng tổng số tiền đã nhập mặt hàng tháng – năm đó
Câu 3: Tạo thủ tục thực tăng lương lên gấp rưỡi cho nhân viên đã bán hàng với số lượng hàng nhiều số lượng hàng truyền vào, số lượng hàng tham số truyền vào
Câu 4: Tạo thủ tục cho biết tên thông tin gồm: tên mặt hàng, số lượng, đơn giá, thành tiền mặt hàng hoá đơn đó theo mã hố đơn
Câu 5: Tạo thủ tục cho biết tên khách hàng mua hàng tháng - năm đó
Câu 6: Tạo thủ tục thực giảm giá cho mặt hàng đặt trong tháng thoả mãn:
- (fGiaban*fSoluongmua)>=Giá trị fMucGiamgia=0 - Giá trị mức giảm giá tham số truyền vào
(7)YÊU CẦU THỰC HÀNH BUỔI 05 (TRIGGER - USER)
Câu 1: Tạo trigger cho nhập mặt hàng số lượng của mặt hàng kho tăng lên tương ứng với số lượng nhập vào
+bảng chịu tác động: tblCTNhapHang
+Bảng thay đổi liệu(update): tblMATHANG
Câu 2: Tạo trigger cho giá nhập mặt hàng phải đảm bảo nhỏ hơn giá mặt hàng tại
+bảng chịu tác động: tblCTNhapHang
+Bảng thay đổi liệu(update): tblMATHANG
Câu 3: Thêm cột TongTienHang (float) vào bảng tblKhachHang, sau đó tại Trigger cho giá trị TongTienHang tự động tăng lên khách hàng thực mua mặt hàng đó
+bảng chịu tác động: tblCTDatHang
+Bảng thay đổi liệu(update): tblKhachHang
Câu 4: Thêm cột TongSoMatHang (int) vào bảng tblDONDATHANG, tạo trigger cho giá trị TongSoMatHang tự động tăng lên bổ sung thêm mặt hàng khách đặt mua đơn đặt hàng tương ứng
+bảng chịu tác động: tblCTDatHang
+Bảng thay đổi liệu(update): tblDonDatHang
Câu 5: Tạo tài khoản đăng nhập SQLServer có tên tên sinh viên mật khẩu tuỳ ý Tạo user tương ứng với login vừa tạo thực cấp quyền Insert, Update, Delete bảng tblNhaCungCap Kiểm trả kết phân quyền bằng việc thực lệnh Select, Insert bảng tblNhaCungCap Câu 6: Tạo Role có tên “BPNhapHang” cấp quyền:
○ Được Thêm Xem liệu tblNhaCungCap, tblDonNhapHang, tblChiTietNhapHang
(8)YÊU CẦU THỰC HÀNH BUỔI 06 (PHÂN TÁN)
Lựa chọn cài đặt phân tán tuỳ ý Quy ước máy – máy 2 - Máy thật – máy ảo
- Máy – máy 2
- SQL Server phiên khác nhau Máy 1: Cơ Sở Dữ Liệu: quanlysinhvien
-tblSinhVien( MaSV, HoTen, NgaySinh)
-tblDiem( MaDiem, maSV, maMon, Diem): chứa Diem >=5
Máy 2: Cơ Sở Dữ Liệu: quanlysinhvien
-tblSinhVien( MaSV, DienThoai, Email)
-tblDiem( MaDiem, maSV, maMon, Diem): chứa Diem <5
Máy 1: thực yêu cầu sau
- Thủ tục chèn thêm 01 sinh viên, với đủ thông tin: Mã sinh viên, Họ tên, Ngày sinh, Điện thoại, Email
- Thủ tục chèn thêm 01 điểm sinh viên, với thông tin chèn điểm gồm: mã điểm, mã SV, mã môn, Điểm
- View: cho danh sách đầy đủ thông tin SV gồm: mã SV, họ tên, ngày sinh, điện thoại, email
(9)*Tạo Database
CREATE DATABASE <database-name>
*Tạo Table
CREATE TABLE <table-name> (
column1 data-type [RBTV], [ column2 data-type [RBTV], …
[ columnn data-type [RBTV]] [RBTV]
)
*Chỉnh sửa cấu trúc bảng
ALTER TABLE Tên_bảng
ADD Tên_cột Kiểu_dữ_liệu [RBTV] [, ]
ALTER TABLE Tên_bảng DROP COLUMN Tên_cột [, ]
ALTER TABLE Tên_bảng
ALTER COLUMN Tên_cột Kiểu_dữ_liệu_mới
ALTER TABLE Tên_bảng
ADD CONSTRAINT Tên_ràng_buộc Loại_ràng_buộc
ALTER TABLE Tên_bảng