1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập thực hành môn cơ sở dữ liệu

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 65,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu thực hành môn CƠ SỞ DỮ LIỆU

Trang 1

Bài Thực hành Số 13

Mục tiêu: Tạo cursor, hàm của người dùng (user-defined function)

CSDL mẫu: Northwind,Toyworld

CSDL mẫu Toyworld

1 Tạo 1 view tên là Dolls chứa toàn bộ đồ chơi là búp bê (doll) với tuỳ chọn WITH CHECK OPTION Sau đó thực hiện các lệnh sau trên view vừa tạo

- Chèn 1 đồ chơi mới có tên Boom , chủng loại là games

- Thay đổi chủng loại của đồ chơi tên là Pet Loving Doll thành Infant (mã 008)

Có thực hiện được không? Tại sao?

Sửa lại view loại bỏ tuỳ chọn WITH CHECK OPTION và chạy lại các lệnh trên Có thực hiện được không? Tại sao?

2 Viết 1 câu lệnh SELECT có dùng lệnh CASE để hiển thị nội dung của bảng orders theo mẫu sau:

Order No Shopper Name Note

000001 Barbara Johnson Both wrapping and shipping

000002 Catherine Roberts Both wrapping and shipping

000003 Christopher Davis Only shipping but not wrapping

000004 Charles Brown Both wrapping and shipping

000005 Barbara Johnson Both wrapping and shipping

000006 Donna Anderson Both wrapping and shipping

000007 Cynthia Miller Only shipping but not wrapping

000008 Daniel Wilson Both wrapping and shipping

000009 David Moore Both wrapping and shipping

000010 Betty Williams Both wrapping and shipping

3 Tình trạng của các hóa đơn của mỗi ngày cần được hiển thị Báo cáo nên hiển thị thông báo “high sales” cho những ngày mà tổng doanh thu lơn hơn 170, ngược lại hiển thị thông báo “Low sales” Mẫu báo cáo có dạng như sau:

Trang 2

4 Đọan chương trình sau dùng cursor để hiển thị tổng chi phí chuyển hàng mỗi ngày từ bảng Orders:

declare @orddate char(15)

declare @totalshippingcharges money

declare @msg varchar(120)

declare ordershipcharge cursor for

select dorderdate,sum(mshippingcharges) from orders

group by dorderdate

open ordershipcharge

fetch ordershipcharge

into @orddate,@totalshippingcharges

While (@@fetch_status = 0)

begin

select @msg = @orddate + CONVERT(char(10),

@totalshippingcharges)

select @msg

end

close ordershipcharge

deallocate ordershipcharge

Khi thực hiện đọan mã trên, thì kết quả không được hiển thị Hãy tìm lỗi

và sửa lại chương trình

5 Tạo một transaction để tăng giá mToyRate cho tất cả đồ chơi trong bảng Toys lên $5 nếu tổng đơn giá của tất cả các đồ chơi thấp hơn$100

Trang 3

6 Tạo một cursor để cập nhật cột siToyQOH trong bảng Toys bằng cách giảm đi 1 lượng bằng với giá trị hiện có trong cộtsiQty của bảng

ShoppingCart

CSDL Northwind

7 Viết hàm tính diện tích hình chữ nhật khi cho biết chiều dài và rộng

8 Viết hàm trả về kết quả là một bảng (Table) chứa các thông tin sau: Tên nhà cung cấp (CompanyName), mã sản phẩm (ProductID), tên sản phẩm (Product Name), đơn giá trung bình (price) Lưu ý viết bằng hai cách: Inline Table-Valued Functions và MultiStatement Table-Valued

Function

9 Viết hàm trả về tổng thành tiền của một hóa đơn nào đó

Thanhtien= (SốLượng* đơngiá) *(1- ChiếtKhấu)

10 Viết hàm trả về chiết khấu của sản phẩm dựa vào số lượng sản phẩm được mua trong hóa đơn với quy định sau:

Nếu số lượng <=5 thì chiết khấu là 0.05

Nếu số lượng từ 6 đến 10 thì chiết khấu 0.07

Nếu số lượng từ 11 đến 20 thì chiết khấu là 0.09 ngược lại thì 0.1

11 Tạo hàm để lọc dữ liệu từ 1 view theo trình tự sau:

a Tạo 1 view có tên là vw_QuarterlySales chứa tổng số lượng hàng bán được theo từng quý của mỗi chủng loại (category) hàng hóa

b Tạo 1 inline function để lọc dữ liệu tổng hợp của 1 chủng loại được cho

c Viết lệnh gọi hàm

12 Tạo 1 hàm có hai tham số là họ và tên, hàm trả về tên tắt với dạng như sau:

Ho=’Nguyen’, ten=’Anh’ thì tên tắt có dạng ‘N.A.’

Sử dụng hàm này để khai báo bảng mới tên KhachMoi có 3 trường như sau:

Ngày đăng: 28/03/2014, 21:16

TỪ KHÓA LIÊN QUAN

w