TH:DOAN

Màu nền
Font chữ
Font size
Chiều cao dòng

ĐỀ THI SQL 2

I,hãy tạo 1 CSDL FastFood+<tênmáy(tênlab)>

II,Sử dụng SQL Query analyzer để làm việc với CSDL trên theo các bước sau:

(chú ý:toàn bộ câu lệnh phải được lưu vào 1 file tên FastFood.sql)

1,tạo 3 bảng và chèn dữ liệu như hình dưới đây:

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 Primary key)

Name [varchar(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

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 primary key)

Name varchar(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

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 foreign key tham chiếu tới fID của

Food

sID(int foreign key 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

2.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 đó:

Name

Name

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

Gà hấp xì dầu

9

Sườn nõn sốt chanh

Thịt lợn

10

Sườn nõn sốt chanh

Hành

11

Sườn nõn sốt chanh

Cà chua

12

Sườn nõn sốt chanh

Chanh

3.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

4.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

Chanh

2

Hành

3

Tỏi

5.Món ăn nào được chế biến từ nhiều loại thực phẩm nhất?Nếu có nhiều món ăn có cùng số lượng thực phẩm thì chỉ cần hiện 1 trong số đó như hình sau:

Name

1

Sườn nõn sốt chanh

6.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(với câu này học viên chỉ được dùng 1 câu lệnh, nếu dùng nhiều hơn sẽ ko đc điểm):

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ị

7.Tạo view tên là 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(Nếu danh sách ko được sắp xếp học viên chỉ được 0,5 điểm)như hình sau:[2.0]

sID

Name

Price

1

2

Sườn nõn sốt chanh

33000.0000

2

4

Cá thu sốt

31000.0000

3

1

Gà hấp xì dầu

27000.0000

4

3

Bò sào hành tỏi

23000.0000

8.Tạo 1 Exploit Transaction để 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.[1.5]

9.Viết 1 Stored Procedure là FoodChoice nhận vào 1 tham số là số tiền.Stored Procedure 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[1.5]

10.Sửa Stored Procedure ở câu trên để Stored Procedure này 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ị ‘Re’ và ‘Dat’.Stored procedure này 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 bắt đầu bằng tham số thứ nhất.

Điều kiện 2:Nếu tham số thứ 2 là ‘Re’ thì chỉ lấy món ăn có giá nhỏ hơn 30000, nếu tham số thứ 2 là ‘Dat’ 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ì.

VD:Nếu chạy câu lệnh Exec FoodChoice ‘Thit’,’Re’ kết quả sẽ hiện ra như hình sau:

Name

Price

1

Gà hấp xì dầu

27000.0000

2

Bò xào hành tỏi

23000.0000

11.Tạo một trigger tên là 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 40000, sẽ nhận được một thông báo ‘Gia phai nho hon 40000’.[1.5]

12.

Tạo 1 trigger tên 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.[3.0]

***The End***

Bạn đang đọc truyện trên: Truyen2U.Pro