SQL Server: Practical 9

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Cho CSDL lưu trữ thông tin về 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 như sau:

Sach: Chứa danh sách các quyển sách có trong  cửa hàng Rạng Đông

Field

Description

MaSach

Mã sách, là Primary key

TenSach

Tên sách

TacGia

Tác giả

NhaXB

Tên nhà xuất bản

ChuDe

Chủ đề

DonGia

Đơn giá

TrongKho

Số lượng còn trong kho

Ví dụ,  bảng Sach có thể chứa các thông tin như sau:

MaSach

TenSach

TacGia

NhaXB

ChuDe

DonGia

TrongKho

1

Hoang hon tren song

Gia Phong

Van hoa

Tinh yeu

120

11

2

Cay lua nuoc

Le May

KHKT

Khoa hoc

30

24

3

Tam ly truoc mua thi

Hai Dang

Giao duc

Tam ly

42

32

KhachHang: Chứa danh sách khách hàng của cửa hàng

Field

Description

MaKH

Mã khách hàng, là Primary key

TenKH

Tên khách hàng

DiaChi

Địa chỉ kháchhàng

Quan

Tên quận hoặc huyện nơi khách hàng cư trú

DienThoai

Số điện thoại của kháchàng

NguoiGT

Người giới thiệu

Ví dụ,  bảng KhachHang có thể chứa các thông tin như sau:

MaKH

TenKH

DiaChi

Quan

DienThoai

NguoiGT

1

Le Cong

22 Hang Buom

Hoan Kiem

098123654

Hoang Kim

2

Van Nghe

19 Lo Duc

Hoan Kiem

 

 

3

Tran Thong

19 Doi Can

Ba Dinh

 

 

4

Hoang Tin

38 Linh Nam

Hoang Mai

 

 

SachBan: Chứa danh sách các quyển 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 tại thời điểm bán sách

SoLuong

Số lượng sách bán

Ví dụ, bảng SachBan có thể chứa các thông tin như sau:

SoHD

MaKH

MaSach

NgayMua

DonGia

Soluong

1

1

2

22/11/2006

30

5

2

1

3

15/7/2005

 

4

3

2

1

24/5/2006

 

7

4

3

1

15/11/2005

 

9

Quan hệ giữa các bảng như sau:

Trong bảng SachBan thì field  MaKH là khóa ngoại tham chiếu đến field MaKH trong bảng KhachHang, còn field MaSach là khóa ngoại tham chiếu đến field MaSach trong bảng Sach.

Mô tả:

Trong bảng KhachHang thì mã số khách hàng (MaKH) là duy nhất, và các field dữ liệu về khách hàng là bắt buộc nhập (not NULL), ngoại trừ field NguoiGT.

Một khách hàng lần đầu tiên mua hàng ở của hàng sách Rạng Đông, nhân viên sẽ hỏi thông tin về khách hàng và nhập vào bảng KhachHang. Ví dụ, khách hàng là Tân đến mua sách ở Nhà Sách Rạng Đông thì thông tin về Tân có thể được lưu trữ trong bảng KhachHang như sau:

MaKH:              15

TenKH:             Tân

DiaChi:              123 Doi Can

Quan:                Ba Dinh

Dữ liệu mua sách sẽ được cập nhật vào bảng SachBan. Các field trong bảng này đều yêu cầu nhập dữ liệu (not NULL). Bảng Sach lưu các thông tin về từng đầu sách như đã giới thiệu ở trên.

Chú ý: Các thuộc tính có gạch chân là khoá chính (primary key) của bảng

YÊU CẦU:

Tạo database có tên RangDong và thực hiện các công việc sau:

Câu 1: Tạo bảng và nhập dữ liệu

a. Viết các câu SQL tạo bảng có đủ các khoá chính và khoá ngoại theo lược đồ và mô tả trên.

b. Viết các câu SQL nhập đầy đủ và chính xác những dữ liệu theo mô tả trên vào các bảng vừa tạo. (Lưu ý thứ tự nhập dữ liệu).         

Câu 2: Viết các câu truy vấn dữ liệu (query)

a. Viết câu lệnh SQL cho kết quả là số đầu sách xuất bản bởi nhà xuất bản “KHKT”.

b. Viết câu lệnh SQL cho kết quả là danh sách các nhà xuất bản cùng với số đầu sách tương ứng của từng NXB, theo thứ tự tăng dần của tên NXB

c. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng sống trong quận "Ba Dinh", cùng với tên các đầu sách mà từng khách hàng đó đã mua.

d. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng, cùng với tổng số các cuốn sách (total quantity) mà từng khách hàng đó đã mua.                                  

e. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng, cùng với tên các nhà xuất bản của những đầu sách mà khách hàng đó đã mua.

f. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng, cùng với số lần mua sách của từng khách hàng đó (mỗi record trong bảng SachBan là một lần mua sách).

g. Viết câu lệnh SQL cho kết quả là danh sách các quận, cùng với tổng giá trị mua sách của các khách hàng sống trong quận đó. Sắp xếp theo thứ tự giảm dần của giá trị.

h. Viết thủ tục lưu trữ để tìm kiếm sách theo tên sách.

i. Tạo trigger để nếu update MaSach của bảng Sach thì cũng update MaSach của bảng SachBan.

k. Tạo trigger để nếu xóa bản ghi của bảng KhachHang thì các bản ghi tương ứng ở bảng SachBan cũng được xóa.

» Tiếp: Practical 10
« Trước: Practical 8
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!