1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập về nhà hệ quản trị cơ sở dữ liệu

13 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài tập về nhà Hệ quản trị cơ sở dữ liệu
Tác giả Đặng Yến Linh
Người hướng dẫn Trần Anh Tuấn
Trường học Đại học Quốc gia – Đại học Khoa học Tự nhiên
Chuyên ngành Hệ quản trị cơ sở dữ liệu
Thể loại Bài tập về nhà
Năm xuất bản 2023
Định dạng
Số trang 13
Dung lượng 2,83 MB

Nội dung

• Viết trigger khi xóa hóa đơn của khách hàng Id = 1 thì báo lỗi không cho xóa sau đó ROLL BACK lại.. Lưu ý: Đưa trigger này lên làm Trigger đầu tiên thực thi xóa dữ liệu trên bảng Orde

Trang 1

Bài tậ p v ề nhà Hệ qu ản trị cơ sở dữ liệu

Môn học : Hệ ản trị cơ sở dữ qu liệu

Giáo viên giảng dạy : Trần Anh Tuấn

Sinh viên thực hiện : 20280058 - Đặng Yến Linh

Chuyên ngành : Khoa học dữ liệu

Trang 2

LAB 7 HQTCSDL Trigger-Transaction- – –

Cursor-Temp Table

Yêu cầu

1 Trigger :

• Viết trigger khi xóa một OrderId thì xóa luôn các thông tin của Order

đó trong bảng OrderItem Nếu có Foreign Key Constraint xảy ra

không cho xóa thì hãy xóa Foreign Key Constraint đó đi rồi thực thi

• Viết trigger khi xóa hóa đơn của khách hàng Id = 1 thì báo lỗi không cho xóa sau đó ROLL BACK lại Lưu ý: Đưa trigger này lên làm

Trigger đầu tiên thực thi xóa dữ liệu trên bảng Order

• Viết trigger không cho phép cập nhật Phone là NULL hay trong Phone có chữ cái ở bảng Supplier Nếu có thì báo lỗi và ROLL BACK

lại

• Viết một function với input vào Country và xuất ra danh sách các Id

và Company Name ở thành phố đó theo dạng sau

INPUT : ‘USA’

OUTPUT : Companies in USA are : New Orleans Cajun

Delights(ID:2) ; Grandma Kelly's Homestead(ID:3)

3 Transaction:

• Viết các dòng lệnh cập nhật Quantity của các sản phẩm trong bảng OrderItem mà có OrderID được đặt từ khách hàng USA Quantity được cập nhật bằng cách input vào một @DFactor sau đó Quantity được tính theo công thức Quantity = Quantity / @DFactor Ngoài ra còn xuất ra cho biết số lượng hóa đơn đã được cập nhật (Sử dụng TRANSACTION để đảm bảo nếu có lỗi xảy ra thì ROLL BACK lại)

4 Temp Table:

Viết TRANSACTION với Input là hai quốc gia Sau đó xuất thông tin là quốc gia nào có số sản phẩm cung cấp (thông qua SupplierId) nhiều hơn Cho biết luôn số lượng số sản phẩm cung cấp của mỗi quốc gia Sử dụng cả hai dạng bảng tạm (# và @)

Trang 3

S ử dụng Database NorthWind

Ki ểm tra xem có khóa ngoại nào tham chi ếu tới bảng mà ta đang xét không :

Ví dụ table Customer có óa ngoại tham chiếu tới lkh à

FK_ORDER_REFERENCE_CUSTOMER

Trang 4

Viết trigger khi xóa một OrderId thì xóa luôn các thông tin của Order đó trong bảng OrderItem Nếu có Foreign Key Constraint xảy ra không cho xóa thì hãy

xóa Foreign Key Constraint đó đi rồi thực thi

Kiểm tra có khóa ngoại nào tham chiế đến bảng OrderItem ông :u kh

Không có khóa ngoại nào tham chiếu đến OrderItem

Trang 5

Kiểm tra bảng OrderItem ban đầu có chứa 3 hóa đơn có OrderId bằng 5:

Xóa các hóa đơn c OrderId bằó ng 5 :

Kiểm tra lại bảng OrderItem, ta thấy không còn tồn tại hóa đơn nào c OrderId ó bằng 5

Trang 6

Viết trigger khi xóa hóa đơn của khách hàng Id = 1 thì báo lỗi không cho xóa sau đó ROLL BACK lại Lưu ý: Đưa trigger này lên làm Trigger đầu tiên thực thi xóa dữ ệu trên bảng Order.li

Trang 7

Đưa trigger này lên làm Trigger đầu tiên thực thi xóa dữ liệu trên bảng Order

Xóa bỏ Foreign Key Constraint để kiểm nghiệm trigger

Xóa hóa đơn của kh ách hàng có Id bằng 1 :

Viết trigger không cho phép cập nhật Phone là NULL hay trong Phone có chữ

cái ở bảng Supplier Nếu có thì báo lỗi và ROLL BACK lại

Trang 8

Cập nhật số điện thoại là Null

Cập nhật số điện thoại có chữ cái

Trang 9

Câu 2: Viết một function với input vào Country và xuất ra danh sách các Id và

Company Name ở thành phố đó theo dạng sau

INPUT : ‘USA’

OUTPUT : Companies in USA are : New Orleans Cajun Delights(ID:2) ;

Grandma Kelly's Homestead(ID:3)

Trang 10

Câu 3: Viết các dòng lệnh cập nhật Quantity của các sản phẩm trong bảng

OrderItem mà có OrderID được đặt từ khách hàng USA Quantity được cập

nhật bằng cách input vào một @DFactor sau đó Quantity được tính theo công

thức Quantity = Quantity / @DFactor Ngoài ra còn xuất ra cho biết số lượng

hóa đơn đã được cập nhật (Sử dụng TRANSACTION để đảm bảo nếu có lỗi xảy

ra thì ROLL BACK lại)

Trang 11

Câu 4: ết TRANSACTION với Input là hai quốc gia Sau đó xuất thông tin là Vi quốc gia nào có số sản phẩm cung cấp (thông qua SupplierId) nhiều hơn Cho biết luôn số ợng số sản phẩm cung cấp của mỗi quốc gia Sử dụng cả hai dạng lư

bảng tạm (# và @)

Trang 13

Giả sử hai thành phố ta nhập vào l UK và à USA ta được kết quả

Thử ểm tra lại số sản phẩm của UK:ki

Ngày đăng: 16/08/2024, 17:34

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w