MySQL: Practical 7

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

1. Tạo một file có tên dạng: Họ_và_tên_Lab7.sql, ví dụ: DangTranLongLab7.sql.

2. Tạo một Cơ sở dữ liệu tên trùng với tên file, ví dụ: DangTranLongLab7.

3. Tạo ba bảng và chèn dữ liệu như sau:

Customer (lưu trữ Khách hàng)

CustomerID

(int)

Name

(varchar (30))

Birth

(date)

Gender

(bit)

1

Jonny Owen

10/10/1980

1

2

Christina Tiny

10/03/1989

0

3

Garry Kelley

16/03/1990

Null

4

Tammy Beckham

17/05/1980

0

5

David Phantom

30/12/1987

1

 Product (Lưu trữ Sản phẩm)

ProductID

(int)

Name

(varchar (30))

Pdesc

(text)

Pimage

(varchar(200))

PStatus

(bit)

1

Nokia N90

Mobile Nokia

image1.jpg

1

2

HP DV6000

Laptop

image2.jpg

NULL

3

HP DV2000

Laptop

image3.jpg

1

4

SamSung G488

Mobile SamSung

image4.jpg

0

5

LCD Plasma

TV LCD

image5.jpg

0

Comment (lưu trữ bình luận của Khách đối với Sản phẩm). Ví dụ: bản ghi đầu tiên của bảng dưới thể hiện rằng ‘Jonny Owen’ (mã là 1 ở bảng Customer) đã bình luận cho sản phẩm ‘Nokia N90’ (mã là 1 ở bảng Product)   vào ngày ‘15/03/09’).

ComID(int

identity(1,1))

ProductID

(int)

CustomerID

(int)

Date

(datetime)

Title

(varchar(200)

Content

(text)

Status

(bit)

1

1

1

15/03/09

Hot product

null

1

2

2

2

14/03/09

Hot price

Very much

0

3

3

2

20/03/09

Cheapest

Unlimited

0

4

4

2

16/04/09

Sale off

50%

1


- Ràng buộc Default cho cột Date của bảng Comment với giá trị mặc định là ngày hiện tại.
Các ràng buộc phải tạo:

- Ràng buộc khóa chính trên cột: CustomerID của bảng Customer, ProductID của bảng Product và ComID của bảng Comment.

- Ràng buộc khóa ngoại trên cột: ProductID của bảng Comment tham chiếu đến bảng Product và CustomerID cũng của bảng Comment tham chiếu đến bảng Customer.

- Ràng buộc Unique cho cột Pimage trên bảng Product.

4. Hiển thị những sản phẩm có PStatus là null hoặc 0.

5. Hiển thị những sản phẩm không có bình luận nào.

6. Hiển thị những Khách có nhiều bình luận nhất.

7. Tạo View có tên ‘vwFull_Information’ để xem tất cả các bình luận gồm các cột sau:

Mã bình luận, tên Khách, tên Sản phẩm, ngày bình luận, tiêu đề bình luận, nội dung bình luận và trạng thái bình luận, trong đó trạng thái bình luận hiển thị là ‘Accept’ thay cho 1 và ‘Not Accept’ thay cho 0.

8. Tạo View có tên ‘vwCustomerList’ để liệt kê thông tin của tất cả các Khách hàng gồm tất cả các cột của bảng Customer và cột Status, trong đó cột Gender hiển thị là ‘Male’ thay cho 1, ‘Female’ thay cho 0 và ‘Unknow’ thay cho Null, cột Status hiển thị là ‘Old’ nếu tuổi của khách>=30 và ‘Young’ nếu tuổi của khách<30.

9. Sửa View ‘vwCustomerList’ để nó chỉ chứa các cột CustomerID, Customer Name, Birth, Gender của bảng Customer và tạo chỉ mục (index) có tên ixCustomerName trên cột [Customer Name] của view này.

10. Tạo thủ tục lưu trữ có tên ‘spStudent’ có một tham số tên @Name.

- Nếu tìm thấy @Name trong cột Name của bảng Product thì sẽ liệt kê tất cả những bình luận cho những Sản phẩm có tên tương tự (like) @Name.

- Nếu không thì kiểm tra @Name nếu tìm thấy trong Name của bảng Customer thì sẽ liệt kệ tất cả những bình luận của những Khách có tên tương tự (like) @Name

- Còn nếu @Name nhận giá trị ‘*’ thì sẽ liệt kê tất cả các bình luận đang có.

11. Tạo Trigger có tên ‘tgUpdateProduct’ trên bảng Product để khi cập nhật giá trị trên cột ProductID của bảng Product thì trigger sẽ tự cập nhật giá trị tương ứng lên trên cột ProductID của bảng Comment.

12. Tạo thủ tục lưu trữ có tên ‘spDropOut’ có một  tham số là tên của Khách hàng, nếu tìm thấy tên này trong cột Name của bảng Customer thì sẽ xóa tất cả những thông tin của tất cả những Khách hàng có tên tương ứng đó trên tất cả các bảng liên quan của Cơ sở dữ liệu.

» Tiếp: Practical 8
« Trước: Practical 6
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 !!!