1. Trang chủ
  2. » Nghệ sĩ và thiết kế

SQL-HD Thực hành - Buổi 3

9 69 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 3,55 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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]

Trang 1

YÊU CẦU CHUNG:

- Tạo file sql để lưu toàn bộ 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 sẽ lưu toàn bộ bài làm thực hành các buổi

- Trong các buổi thực hành thực hiện làm bài theo yêu cầu của GV

- Các bài còn lại của 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ự bài – thứ tự ý thực hiện)

+ file sql sẽ yêu cầu nộp để chấm điểm cuối cùng

NGUYÊN TẮC THỨ TỰ THỰC HIỆN Bước 1: Tạo Cơ sở dữ liệu  CREATE DATABASE

Bước 2: Tạo cấu trúc các bảng  CREATE TABLE, ALTER TABLE

+tạo bảng phía một trước, tạo bảng phía nhiều sau

+khi tạo bảng lưu ý các ràng buộc: PRIMARY KEY, CHECK, REFERENCES,

Bước 3: Tạo sơ đồ liên kết giữa các bảng (Diagram)

Bước 4: Nhập dữ liệu vào các bảng, nhập bảng phía một trước bảng phía nhiều sau

 INSERT INTO, UPDATE, DELETE

Bước 5: Khai thác cơ sở dữ liệu (SELECT, VIEW, TRIGGER, PROC, …)

Trang 2

THỰC HÀNH BỔI 1:

Bước 1: Xem mô hình cơ sở dữ liệu của bài toán để xác định được các bảng cần được

tạo Mỗi bảng cần xác định: Tên bảng, các thuộc tính, kiểu thuộc tính, các ràng buộc (khoá chính, giá trị, tham chiếu – khoá ngoại, ràng buộc nếu có)

Bước 2: Thực hiện yêu cầu 1.1.a,

Bước 3: Viết các đoạn script đã có sẵn trong vở thực hành (trang 4) và thực hiện chạy

lần lượt các đoạn script đó (Đã tạo được các bảng: tblLoaiHang, tblNhaCungCap,

tblMatHang)

Bước 4: Viết mã thực hiện lần lượt yêu cầu sau để tạo đầy đủ CSDL của bài toán

-Tạo bảng tblKhachHang, tblNhanVien theo cấu trúc đã có, lưu ý thiết lập khoá

chính và khoá ngoại

-Thêm thuộc tính sCMND không có giá trị trùng nhau 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 chỉ mục cho cột sTenHang trong bảng tblMatHang

-Tạo bảng tblDonNhapHang và tblChiTietNhapHang theo cấu trúc đã có, lưu ý

thiết lập khoá chính và khoá ngoại

-Tạo bảng tblDonDatHang và tblChiTietDatHang theo cấu trúc đã có, lưu ý

thiết lập khoá chính và khoá ngoại

-Trong bảng tblChiTietNhapHang đặt ràng buộc: fGiaNhap>0 và

fSoLuongNhap>0

Trong bảng tblChiTietDatHang đặt ràng buộc: fGiaBan>0, fSoLuongMua>0

và fMucgiamgia>=0

Trang 3

Cơ sở dữ 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)

9 tblChiTietNhapHang ( iSoHD , sMahang , fGianhap, fSoluongnhap)

Trang 4

YÊU CẦU THỰC HÀNH BUỔI 02

Viết các câu lệnh thực hiện các yêu cầu sau

1 Chèn 03 bản ghi vào bảng tblLoaiHoang

2 Chèn 05 bản ghi vào bảng tblNhaCungCap

3 Chèn 10 bản ghi vào bảng tblMatHang

Yêu cầu: Đơn vị tính nhận các giá trị: “Hộp”, “Cái”, “Chiếc”

4 Cập nhật Số lượng cho các mặt hàng có Đơn vị là “Cái” với giá trị là 10

5 Chèn 05 bản ghi vào bảng tblKhachHang Yêu cầu: có đủ giới tính Nam và Nữ

6 Chèn 10 bản ghi vào bảng tblNhanVien

7 Cập nhật phụ cấp là 500.000 cho các nhân viên đã đi làm được trên 5 năm

8 Xoá các nhân viên có Tuổi dưới 20

9 Chèn 08 bản ghi vào bảng tblDonDatHang

Yêu cầu: Ngày đặt hàng để đủ cả năm 2018, 2019 Dàn ra một số tháng

10 Chèn các bản ghi vào bảng tblChiTietDatHang (chèn cho 5 hoá đơn)

Yêu cầu: Mỗi Đơn Đặt Hàng có ít nhất 3 mặt hàng Giảm giá là tỷ lệ % giảm giá

11 Cập nhật Mức giảm giá là 10% cho các Đơn hàng được lập vào tháng 9 năm

2019

Viết câu lệnh Select để lấy dữ liệu từ bảng

12 Chèn 05 bản ghi vào bảng tblDonnhaphang

Yêu cầu: Ngày nhập hàng để đủ cả năm 2018, 2019 Dàn ra một số tháng

13 Chèn các bản ghi vào bảng tblChiTietNhapHang (chèn cho 5 hoá đơn)

Yêu cầu: Mỗi Đơn Nhập Hàng có ít nhất 3 mặt hàng.

Trang 5

YÊU CẦU THỰC HÀNH BUỔI 03 (SQL và VIEW) Lưu ý: ghi rõ yêu cầu thực hiện trước khi 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 các Khách hàng nữ ở “Hà Nội”

Câu 2: Cho danh sách tên các nhân viên đã đi làm được >5 năm và lương

dưới 5 triệu

Câu 3: Tính tổng số tiền đã bán hàng trong năm 2019

Câu 4: Cho biết danh sách các mặt hàng không được bán trong năm 2019 Câu 5: Cho biết trong năm 2019, những mặt hàng nào chỉ được mua đúng 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 các view thực hiện theo các yêu cầu sau:

Câu 7: Thống kê tổng hợp theo từng đơ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ê các nhân viên có phụ cấp  vvNVPhuCap

Câu 9: Thống kê tên mặt hàng đã bán được trong năm 2019  vvMHBan2019 Câu 10: Thống kê tên các mặt hàng không được bán trong năm 2019  vvMHKhongBan2019

Câu 11: Cho biết số lượng và tổng tiền đã bán của từng mặt hàng trong năm 2019

vvTKeMatHangBan2019

Câu 12: Cho biết tên mặt hàng đã bán được > 10 triệu tiền hàng trong năm 2019

Trang 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 hiện trước khi viết code xử lý

- Viết câu lệnh chạy thủ tục sau khi đã thực thi biên dịch thủ tục

Câu 1: Tạo thủ tục cho danh sách các mặt hàng không được bán trong

năm nào đó, với năm là 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 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ác nhân viên

đã bán hàng với số lượng hàng nhiều hơn số lượng hàng được truyền vào,

số lượng hàng là tham số truyền vào

Câu 4: Tạo thủ tục cho biết tên các thông tin gồm: tên mặt hàng, số

lượng, đơn giá, thành tiền của các mặt hàng trong một hoá đơn nào đó theo mã hoá đơn

Câu 5: Tạo thủ tục cho biết tên khách hàng đã mua hàng trong một tháng

- một năm nào đó

Câu 6: Tạo thủ tục thực hiện giảm giá cho các mặt hàng được đặt trong

tháng hiện tại thoả mãn:

- (fGiaban*fSoluongmua)>=Giá trị và fMucGiamgia=0

- Giá trị và mức giảm giá là tham số truyền vào

Câu 7: Tạo thủ tục cho tên các khách hàng đã đến mua hàng từ 3 lần

trong một năm nào đó

Trang 7

YÊU CẦU THỰC HÀNH BUỔI 05 (TRIGGER - USER)

Câu 1: Tạo trigger sao cho mỗi khi nhập một mặt hàng nào đó thì số lượng

của mặt hàng đó trong kho được tăng lên tương ứng với số lượng được nhập vào

+bảng chịu tác động: tblCTNhapHang

+Bảng thay đổi dữ liệu(update): tblMATHANG

Câu 2: Tạo trigger sao cho giá nhập của một mặt hàng phải đảm bảo nhỏ hơn

giá của mặt hàng đó hiện tại

+bảng chịu tác động: tblCTNhapHang

+Bảng thay đổi dữ liệu(update): tblMATHANG

Câu 3: Thêm cột TongTienHang (float) vào bảng tblKhachHang, sau đó tại Trigger sao cho giá trị TongTienHang tự động tăng lên mỗi khi khách

hàng thực hiện mua một mặt hàng nào đó

+bảng chịu tác động: tblCTDatHang

+Bảng thay đổi dữ liệu(update): tblKhachHang

Câu 4: Thêm cột TongSoMatHang (int) vào bảng tblDONDATHANG, tạo trigger sao cho giá trị của TongSoMatHang tự động tăng lên mỗi khi bổ

sung thêm một mặt hàng khách đặt mua trong đơn đặt hàng tương ứng

+bảng chịu tác động: tblCTDatHang

+Bảng thay đổi dữ liệu(update): tblDonDatHang

Câu 5: Tạo tài khoản đăng nhập SQLServer có tên là tên sinh viên và mật

khẩu tuỳ ý Tạo user tương ứng với login vừa tạo và thực hiện cấp quyền

Insert, Update, Delete trên bảng tblNhaCungCap Kiểm trả kết quả phân quyền bằng việc thực hiện lệnh Select, Insert trên bảng tblNhaCungCap

Câu 6: Tạo Role có tên “BPNhapHang” và cấp quyền:

○ Được Thêm và Xem dữ liệu của tblNhaCungCap, tblDonNhapHang, tblChiTietNhapHang

○ Được Xem dữ liệu của tblNhanvien, tblMatHang

Trang 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 1 – máy 2

- Máy thật – máy ảo

- Máy 1 – máy 2

- SQL Server các phiên bản khác nhau

Máy 1: Cơ Sở Dữ Liệu: quanlysinhvien

-tblSinhVien( MaSV, HoTen, NgaySinh)

-tblDiem( MaDiem, maSV, maMon, Diem): chỉ chứa Diem >=5

Máy 2: Cơ Sở Dữ Liệu: quanlysinhvien

-tblSinhVien( MaSV, DienThoai, Email)

-tblDiem( MaDiem, maSV, maMon, Diem): chỉ chứa Diem <5

Máy 1: lần lượt thực hiện các yêu cầu sau

- Thủ tục chèn thêm 01 sinh viên, với đủ các 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 của 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 của các SV gồm: mã SV, họ tên, ngày sinh, điện thoại, email

- View: cho danh sách tất cả điểm của sinh viên

Trang 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

DROP CONSTRAINT Tên_ràng_buộc

Ngày đăng: 17/12/2020, 14:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w