MySQL: 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

1. Tạo một file có tên Lab8.sql.

2. Tạo một CSDL có tên DBLab8.

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

Bảng Food lưu danh sách các món ăn gồm mã món ăn (fID), tên món ăn (Name), giá món ăn (Price):

fID (int, PK)

Name (nvarchar(30))

Price (money)

1

Gà hấp xì dầu

27000

2

Sườn nõn sốt chanh

33000

3

Bò xào hành tỏi

23000

4

Cá thu sốt

31000

Bảng FoodStuff lưu danh sách thực phẩm dùng để chế biến món ăn gồm mã thực phẩm (sID), tên thực phẩm (Name), loại thực phẩm (Type):

sID (int, PK)

Name (nvarchar(30))

Type (int)

1

Thịt  gà

1

2

Thịt lợn

1

3

Thịt bò

1

4

Cá thu

1

5

Hành

2

6

Tỏi

2

7

Cà chua

2

8

Xì dầu

2

9

Chanh

2

10

Hạt tiêu

2

Bảng FoodDetail mô tả các thực phẩm dùng để chế biến thành mỗi món ăn gồm fID, sID:

fID (int, FK tham chiếu tới fID của

            Food)

sID (int, FK tham chiếu tới sID của      FoodStuff)

1

1

1

8

2

2

2

9

2

7

2

5

3

3

3

5

3

6

4

4

4

7

4. Hiển thị tên các món ăn và tên các thực phẩm dùng để chế biến các món ăn đó:

 

Món ăn

Thực phẩm

1

Bò sào hành tỏi

Thịt bò

2

Bò sào hành tỏi

Hành

3

Bò sào hành tỏi

Tỏi

4

Cá thu sốt

Cá thu

5

Cá thu sốt

Cà chua

6

Gà hấp xì dầu

Thịt gà

7

Gà hấp xì dầu

Xì dầu

8

Sườn nõn sốt chanh

Thịt lợn

9

Sườn nõn sốt chanh

Hành

10

Sườn nõn sốt chanh

Cà chua

11

Sườn nõn sốt chanh

Chanh

 
5. Hiện danh sách những loại thực phẩm mà ko chế biến bất cứ món ăn nào như hình sau:
 

sID

Name

Type

10

Hạt Tiêu

2

 
6. Hiển thị tên những loại thực phẩm dùng cho nhiều hơn một món ăn như hình sau:
 

 

Name

1

Hành

2

Cà chua

 
7. Món ăn nào được chế biến từ nhiều loại thực phẩm nhất?
 

 

Name

1

Sườn nõn sốt chanh

 
8. Hiển thị danh sách các loại thực phẩm ra màn hình,trong đó trường Type hiện 'Thực phẩm chính' thay cho 1, và 'Gia vị' thay cho 2:
 

Name

Type

Thịt  gà

Thực phẩm chính

Thịt lợn

Thực phẩm chính

Thịt bò

Thực phẩm chính

Cá thu

Thực phẩm chính

Hành

Gia vị

Tỏi

Gia vị

Cà chua

Gia vị

Xì dầu

Gia vị

Chanh

Gia vị

Hạt tiêu

Gia vị

 
9. Tạo view tên là  vw_FoodList chứa danh sách các món ăn sắp xếp theo thứ tự giá tiền giảm dần:
 

 

fID

Name

Price

1

2

Sườn nõn sốt chanh

33000.000

2

4

Cá thu sốt

31000.000

3

1

Gà hấp xì dầu

27000.000

4

3

Bò sào hành tỏi

23000.000

 

10. Tăng giá các món ăn lên 10%. Sau đó hiển thị danh sách các món ăn và giá lên màn hình. Cuối cùng phục hồi lại giá ban đầu cho tất cả các món ăn.

11. Viết một thủ tục lưu trữ là sp_FoodChoice nhận vào 1 tham số là số tiền, thủ tục lữu trữ này sẽ hiển thị tất cả các món ăn có giá tiền nhỏ hơn số tiền được truyền vào.

12. Sửa thủ tục lưu trữ ở câu trên để nó có thể nhận vào 2 tham số, tham số thứ nhất là tên thực phẩm, tham số thứ 2 là phân loại món ăn theo 2 giá trị 'Rẻ' và 'Đắt'. Thủ tục lưu trữ sẽ hiện ra màn hình tất cả các món ăn và giá tiền thỏa mãn cả 2 điều kiện sau:

Điều kiện 1: Món ăn được chế biến từ các loại thực phẩm mà có tên tương tự tham số thứ nhất.

Điều kiện 2: Nếu tham số thứ 2 là 'Rẻ' thì chỉ lấy món ăn có giá nhỏ hơn 30000, nếu tham số thứ 2 là 'Đắt' thì chỉ lấy món ăn có giá lớn hơn hoặc bằng 30000, nếu tham số thứ 2 là '*' thì lấy các món ăn với giá bất kỳ.

Ví dụ, nếu chạy câu lệnh Exec FoodChoice 'Thịt', 'Rẻ' thì kết quả sẽ hiện ra như sau:

 

Name

Price

1

Gà hấp xì dầu

27000.000

2

Bò xào hành tỏi

23000.000

 

 13. Tạo một trigger tên là tg_NoUpdatePrice trên bảng Food, trigger này sẽ ngăn cản ko cho phép sửa (Update) giá món ăn thành giá trị lớn hơn hoặc bằng 40000, nếu người dùng cố tình sửa giá món ăn thành giá trị lớn hơn thì sẽ nhận được một thông báo 'Giá phải nhỏ hơn 40000'.

14. Tạo một trigger tên tg_delFood trên bảng Food sao cho khi 1 món ăn trong bảng Food bị xóa, trigger này sẽ xóa các thông tin liên quan đến món ăn đó trong bảng FoodDetail.

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