You are on page 1of 4

Bài thực hành môn Hệ quản trị CSDL

Hướng dẫn thực hành môn Hệ quản trị CSDL

Bài tập Chủ đề 1


Stored-Procedure & Trigger & Function

Table of Contents
1. Bài tập về Stored-Procedure ............................................................................. 2
1.1. Store-Prodedure đơn giản ............................................................................................................... 2
1.2. Store-Prodedure có vòng lặp........................................................................................................... 2
1.3. Store-Prodedure có đệ quy ............................................................................................................. 3
2. Bài tập về Cursor............................................................................................... 3
3. Bài tập về Trigger.............................................................................................. 3

Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin – Đại học Khoa học tự nhiên
1
Bài thực hành môn Hệ quản trị CSDL

1. Bài tập về Stored-Procedure


Vào Query Analysis, viết các store-procedure trong CSDL hiện hành:

1.1. Store-Prodedure đơn giản


1) Viết stored-procedure In ra dòng ‘Hello’
2) Viết stored-procedure In ra dòng ‘Xin chào’.
3) Viết stored-procedure In ra dòng ‘Xin chào’ + @ten với @ten là tham số đầu vào là tên của bạn.
4) Viết stored-procedure In ra dòng ‘Xin chào’ + @ten với @ten là tham số đầu vào là tên Tiếng Việt
có dấu của bạn. Gợi ý :
♦ sử dụng UniKey để gõ Tiếng Việt
♦ chuỗi unicode phải bắt đầu bởi N (vd: N’Tiếng Việt’)
♦ dùng hàm cast (<biểuThức> as <kiểu>) để đổi thành kiểu <kiểu> của <biểuThức>
5) Viết stored-procedure Nhập vào 2 số @s1,@s2. In ra tổng @s1+@s2.
6) Viết stored-procedure Nhập vào 2 số @s1,@s2. In ra câu ‘Tổng là : @tg’ với @tg=@s1+@s2.
7) Viết stored-procedure Nhập vào 2 số @s1,@s2. Xuất tổng @s1+@s2 ra tham số @tong. Cho thực thi
và in giá trị của tham số này để kiểm tra.
8) Viết stored-procedure Nhập vào 2 số @s1,@s2. Xuất tổng @s1+@s2 ra tham số @tong. Cho thực thi
và in giá trị của tham số này để kiểm tra dưới dạng ‘Tổng là : @tg’ với @tg =@s1+@s2.
9) Viết stored-procedure Nhập vào 2 số @s1,@s2. In ra max của chúng.
10) Viết stored-procedure Nhập vào 2 số @s1,@s2. In ra câu ‘Số lớn nhất của @s1 và @s2 là @max’ với
@s1,@s2,max là các giá trị tương ứng.
11) Viết stored-procedure Nhập vào 2 số @s1,@s2. Xuất min và max của chúng ra tham số @max,
@min. Cho thực thi và in giá trị của các tham số này để kiểm tra.

1.2. Store-Prodedure có vòng lặp


12) Viết stored-procedure Nhập vào số nguyên @n. In ra các số từ 1 đến @n.
13) Viết stored-procedure Nhập vào số nguyên @n. In ra tổng các số chẵn từ 1 đến @n
14) Viết stored-procedure Nhập vào số nguyên @n. In ra tổng, và số lượng các số chẵn từ 1 đến @n
15) Viết stored-procedure Nhập vào 2 số. In ra ước chung lớn nhất của chúng theo gợi ý dưới đây.
b1. Không mất tính tổng quát giả sử a <= A
b2. Nếu A chia hết cho a thì : (a,A) = a
ngược lại : (a,A) = (A%a,a) hoặc (a,A) = (a,A-a)
b3. Lặp lại b1,b2 cho đến khi điều kiện trong b2 được thỏa
16) Viết stored-procedure Nhập vào 2 số nguyên @s1,@s2. Xuất ước chung lớn nhất của @s1 và @s2 ra
tham số @gcd. Cho thực thi và in bằng lệnh select giá trị của tham số này để kiểm tra dưới dạng
‘Kết quả : ucln(@s1,@s2) = @gcd’ trong đó thay thế @s1,@s2,@gcd bởi các giá trị tương ứng.

Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin – Đại học Khoa học tự nhiên
2
Bài thực hành môn Hệ quản trị CSDL
1.3. Store-Prodedure có đệ quy
17) Viết stored-procedure Cài đặt có dùng đệ quy, thuật toán Euler tìm ước chung lớn nhất (a,A).
18) Viết stored-procedure Nhập vào 2 số. In ra ước chung lớn nhất của chúng. Bắt buộc viết bằng đệ
quy.
19) Viết stored-procedure Nhập vào số nguyên @n <= 5. In ra tất cả các số nhị phân có @n bit.
Ví dụ : @n=2 thì kết quả in được là
00
01
10
11

2. Bài tập về Cursor


20) Viết một stored proc có nội dung:
Dùng lệnh print để in ra danh sách mã các tựa sách.
21) Viết một stored proc có nội dung:
Dùng lệnh print để in ra danh sách mã và họ tên các độc giả.

3. Bài tập về Trigger


22) Viết trigger khi thêm mới, sửa tên tác giả, thêm/sửa một tựa sách thì in ra câu thông báo bằng Tiếng
Việt ‘Đã thêm mới tựa sách’. Gợi ý :
Kiểm tra trigger đã tạo bằng khối lệnh để dữ liệu không bị thay đổi :
begin tran
--khối lệnh thêm,xóa,sửa
rollback
23) Viết trigger khi sửa tên tác giả cho một (hoặc nhiều) tựa sách thì in ra:
- Danh sách mã các tựa sách vừa được sửa.
- Danh sách mã tựa sách vừa được sửa và tên tác giả mới.
- Danh sách mã tựa sách vừa được sửa và tên tác giả cũ.
- Danh sách mã tựa sách vừa được sửa cùng tên tác giả cũ và tác giả mới.
Gợi ý :
+ Câu lệnh insert into T select… from … cho phép insert cùng lúc nhiều dòng.
+ Dùng bảng Inserted (hoặc/và Deleted).
- Câu thông báo bằng Tiếng Việt ‘Vừa sửa thông tin của tựa sách có mã số xxx’ với xxx là mã
tựa sách vừa được sửa.
Gợi ý :
+ Sử dụng cursor để duyệt qua các tựa

Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin – Đại học Khoa học tự nhiên
3
Bài thực hành môn Hệ quản trị CSDL
+ Sách được sửa trong bảng Inserted (hoặc Deleted).
24) Viết trigger khi Khi thêm mới một tựa sách thì kiểm tra xem đã có tựa sách trùng tên với tựa sách
vừa được thêm hay không. Xử lý 2 trường hợp :
- Trường hợp xử lý 1 : chỉ thông báo vẫn cho insert
- Trường hợp xử lý 2 : thông báo và không cho insert

Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin – Đại học Khoa học tự nhiên
4

You might also like