Bài tập hệ quản trị cơ sở dữ liệu | Cơ sở dữ liệu | Trường Đại học Công nghiệp TP.HCM

Bài tập hệ quản trị cơ sở dữ liệu môn Cơ sở dữ liệu của Trường Đại học Công nghiệp Thành phố Hồ Chí Minh. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

Môn:
Thông tin:
28 trang 3 tuần trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Bài tập hệ quản trị cơ sở dữ liệu | Cơ sở dữ liệu | Trường Đại học Công nghiệp TP.HCM

Bài tập hệ quản trị cơ sở dữ liệu môn Cơ sở dữ liệu của Trường Đại học Công nghiệp Thành phố Hồ Chí Minh. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

32 16 lượt tải Tải xuống
lOMoARcPSD|45470709
BÀI T P TU N 1
M c tiêu:
Thao tác đ c v i giao di n c a SQL Server 2008 ượ
T o Database - c s d li u (CSDL) và th c hi n các thao tác c b n trên ơ ơ
CSDL b ng l nh và b ng công c design
T o các Table (B ng d li u) và nh p d li u b ng công c design
T o l c đ quan h (Relationship Diagram) ượ
Bi t các ki u d li u (DataType) trong SQL Server 2008 ế
Bi t t o, s a, xóa và áp d ng các ki u d li u trong SQL Server 2008 ế
Bi t s d ng m t s th t c tr giúp v Database và Datatype ế
1. T o CSDL QLSach b ng công c design có tham s nh sau: ư
Tham s Giá tr
Database name QLSach
Tên logic c a data file chính QLSach_Data
Tên t p tin và đ ng d n c a data file ườ
chính
T:\QLSach_Data.mdf
Kích c kh i t o c a CSDL 20 MB
Kích c t i đa c a CSDL 40 MB
Gia s gia tăng t p tin CSDL 1 MB
Tên logic c a transaction log QLSach_Log
Tên t p tin và đ ng ườ d n c a T:\QLSach_Log.ldf
Kích c kh i t o c a transaction log 6 MB
Kích c t i đa c a transaction log 8 MB
Gia s gia tăng t p tin transaction log 1 MB
a. Xem l i thu c tính (properties) c a CSDL QLSach. (HD: Nh p ph i chu t
t i tên CSDL, ch n properties). Quan sát cho bi t các trang th hi n ế
thông tin gì?
lOMoARcPSD|45470709
b. T i c a s properties c a CSDL, khai báo thêm
M t Group File m i có tên là DuLieuSach
M t t p tin d li u (data file) th hai n m trong Group file v a t o trên
thông s nh sau Tên login c a data file QLSach_Data2; Tên t p ư
tin và đ ng d n v t lý c a data file là T:\QLSach_Data2.ndf. ườ
Ch n thu c tính ReadOnly, sau đó đóng c a s properies. Quan sát màu
s c c a CSDL. B thu c tính ReadOnly.
Thay đ i Owner: tên server đang k t n i. ế
2. t i Query Analyzer (l u ý: sau m i l n s thay đ i thì ph i dùng các ư
l nh đ ki m tra s thay đ i đó)
a. Dùng l nh Create DataBase, t o m t CSDL v i các tham s đ c li t ượ
nh trong b ng d i. L u ý r ng CSDL này g m m t data file đ cư ướ ư ượ
n m trong primary filegroup
THAM S GIÁ TR
Database name QLBH
Tên logic c a data file chính QLBH_data1
Tên t p tin và đ ng d n c a data file ườ
chính
T:\QLBH_data1.mdf
Kích c kh i t o c a CSDL 10 MB
Kích c t i đa c a CSDL 40 MB
Gia s gia tăng t p tin CSDL 1 MB
Tên logic c a transaction log QLBH_Log
Tên t p tin và đ ng ườ
d n c a transaction log
T:\QLBH.ldf
Kích c kh i t o c a transaction log 6 MB
Kích c t i đa c a transaction log 8 MB
Gia s gia tăng t p tin transaction log 1 MB
b. Xem l i thu c tính c a CSDL QLBH b ng cách Click ph i vào tên CSDL
ch n Property b ng th t c h th ng sp_helpDb, sp_spaceused,
sp_helpfile.
c. Thêm m t filegroup có tên là DuLieuQLBH (HD: dùng l nh Alter DataBase
<Tên Database> ADD FILEGROUP <Tên filegroup>)
d. Khai báo m t secondary file tên logic QLBH_data2, tên v t
QLBH_data2.ndf n m T:\, các thông s khác tuỳ b n ch n, data file này
n m trong file group DuLieuQLBH. (HD: Dùng l nh Alter Database ….
ADD
FILE …. TO FILEGROUP …)
lOMoARcPSD|45470709
e. Cho bi t th t c h th ng sp_helpfilegroup dùng đ làm gì? ế
f. Dùng l nh Alter Database Set đ c u hình cho CSDL QLBH thu c
tính Read_Only. Dùng sp_helpDB đ xem l i thu c tính c a CSDL. H y
b thu c tính Read_Only.
g. Dùng l nh Alter DataBase … MODIFY FILE … đ tăng SIZE c a QLBH_data1
thành 50 MB. T ng t tăng SIZE c a t p tin QLBH_log thành 10 MB. Đươ
thay đ i SIZE c a các t p tin b ng công c Design b n làm nh th nào? ư ế
B n hãy th c hi n thay đ i kích th c c a t p tin QLBH_log v i kích ướ
th c 15MB. N u thay đ i kích c nh h n ban đ u đ c không?ướ ế ơ ượ
N u thay đ i kích c MAXSIZE nh h n kích c SIZE thì đ c không?ế ơ ượ
Gi i thích.
3. T o CSDL QLSV, các thông s tùy ch n. Dùng công c design t o c u trúc
c a các b ng sau trong CSDL QLSV:
LOP (MaLop char(5) , TenLop NVarchar(20), SiSoDuKien Int,
NgayKhaiGiang DateTime)
SINHVIEN (MaSV char(5), TenHo NVarchar(40), NgaySinh DateTime,
MALOP char(5))
MONHOC(MaMh char(5), Tenmh Nvarchar(30), SoTC int)
KETQUA(MaSV char(5), MAMH char(5), Diem real)
L u ý: c t in đ m g ch chân là khóa chính và không ch p nh n giá tr Null,ư
c t in đ m không ch p nh n giá tr Null
a. T o Diagram gi a hai b ng v a t o.
b. Nh p d li u tùy ý vào hai các b ng b ng công c design, m i b ng
kho ng 3 m u tin. Gi s b n nh p d li u cho b ng KETQUA tr c, sau ướ
đó m i nh p d li u cho các b ng còn l i thì b n nh p đ c không? ượ
sao? Theo b n nên nh p d li u theo th t nào?
c. Dùng tác v General Script, đ t o đo n Script cho CSDL t t c các đ i
t ng c a CSDL thành m t t p tin Script có tên là QLSV.SQL ượ
d. Vào Query Analyzer, m t p tin Script v a t o và kh o sát công d ng và cú
pháp c a các l nh có trong t p tin script.
e. Đ i tên CSDL QLSV thành QLHS
f. Dùng thao tác xóa đ xoá toàn b CSDL QLHS 4. Tìm hi u v ki u d li u
(datatype):
a. Tìm hi u và tr l i các câu h i sau:
- Có m y lo i datatype, hãy li t kê.
- Các system datatype đ c SQL Server l u tr trong Table nào ượ ư
trong CSDL nào.
- Các User-defined datatype đ c SQL Server l u tr trong Table nào,ượ ư
trong CSDL nào?
lOMoARcPSD|45470709
b. Vào Query Analyzer, ch n QLBH CSDL hi n hành, đ nh nghĩa các
datatype:
Ki u d li u (Data
type)
Mô t d li u (Description of data)
Mavung 10 ký t
STT STT không v t quá 30,000 ượ
SoDienThoai 13 ký t , ch p nh n NULL
Shortstring S ký t thay đ i đ n 15 ký t ế
HD: Dùng th t c sp_addtype đ đ nh nghĩa
Ví d : EXEC sp_addtype SODienThoai, 'char(13)', NULL
c. Các User-defined datatype v a đ nh nghĩa đ c l u tr đâu ph m vi ượ ư
s d ng c a đâu (trong toàn b m t instance hay ch trong CSDL
hi n hành).
d. bao nhiêu cách li t danh sách các User-Defined datatype v a đ nh
nghĩa.
SELECT domain_name, data_type, character_maximum_length
FROM information_schema.domains ORDER BY domain_name Ho c
SELECT * From Systype
e. T o 1 b ng tên ThongTinKH(MaKH (khóa chính) ki u d li u STT ,
Vung ki u Mavung, Diachi ki u Shortstring, DienThoai ki u
SoDienThoai) trong CSDL QLBH và s d ng User-defined data type v a
đ nh nghĩa trên. B n t o đ c không? N u đ c b n nh p th d ượ ế ượ
li u 2 record b ng design.
f. Mu n User-Defined datatype đ c dùng trong t t c các CSDL thì b n ượ
đ nh nghĩa nó đâu?
g. Xóa ki u d li u SoDienThoai.
h. Th c hi n vi c Backup và Restore CSDL QLBH
lOMoARcPSD|45470709
BÀI T P 1:
Cho mô t nghi p v c a h th ng qu n lý bán hàng c a m t siêu th nh sau: ư
Siêu th bán nhi u s n ph m khác nhau. Các s n ph m đ c phân lo i ượ
theo t ng nhóm s n ph m, m i nhóm s n ph m m t nhóm
(MANHOM) duy nh t, m i nhóm hàng xác đ nh n nhóm hàng
(TENNHOM), t t nhiên m t nhóm hàng th nhi u s n ph m. M i
s n ph m đ c đánh m t s (MASP) duy nh t, m i s s n ph m ượ
xác đ nh các thông tin v s n ph m đó nh : tên s n ph m (TENSP), mô t ư
s n ph m (MoTa), đ n v tính n v tính), đ n giá mua (ĐONGIA), s ơ ơ ơ
l ng t n (SLTON). ượ
Siêu th l y hàng v t nhi u nhà cung c p khác nhau. M i s n ph m
đ c l y t m t nhà cung c p. H th ng ph i l u tr các thông tin v cácượ ư
nhà cung c p hàng cho siêu th . M i nhà cung c p m t s (MaNCC)
duy nh t, m i nhà cung c p sẽ xác đ nh tên nhà cung c p (TenNCC),
đ a ch (Diachi), s đi n tho i (Phone), s fax (Sofax) đ a ch mail
(DCMail).
Siêu th bán hàng cho nhi u lo i khách hàng khác nhau. M i khách hàng có
m t mã khách hàng (MAKH) duy nh t, m i MAKH xác đ nh đ c các thông ượ
tin v khách hàng nh : h tên khách hàng (HOTEN), đ a ch (ĐIACHI), s ư
đi n tho i (ĐIENTHOAI), Ngày đăng th thành viên (NgayDKThe), đ a
ch mail (DCMail), đi m tích lũy (DiemTL). Siêu th chia khách hàng thành
3 lo i khách hàng: VIP, TV, VL. Khách hàng VIP nh ng khách hàng đã
thành viên trên 5 năm và t ng s hóa đ n mua hàng trên 100, khách ơ
hàng TV(thành viên các khách hàng đã làm th thành viên nh ng không ư
đ đi u ki n c a khách hàng VIP). Khách hàng vãng lai (VL) khách hàng
ch a th thành viên. Đ i v i khách hàng vãng lai thì MaKH sẽ đ c hư ượ
th ng t c p phát MaKH cho m i l n mua hàng do đó h th ng không c n
l u các thông tin còn l i c a khách hàng vãng lai. ư
M i l n mua hàng, khách hàng m t hóa đ n. M i hóa đ n bán hàng ơ ơ
m t s hóa đ n (SOHĐ) duy nh t, m i s hóa đ n xác đ nh đ c khách ơ ơ ượ
hàng ngày l p hóa đ n (NGAYLAPHĐ), ngày giao hàng (NGAYGIAO) và ơ
n i chuy n hàng (NoiChuyen). ng v i m i hóa đ n siêu th qui đ nh nhơ ơ ư
sau: N u khách hàng VIP sẽ đ c t ng 20% t ng ti n vào đi m tích lũyế ượ
c a khách hàng, n u thành viên 10%t ng ti n, vãng lai thì không ế
đ c t ng đi m tích lũy. D a vào đi m tích lũy siêu th sẽ t ng phi u quàượ ế
t ng
vào cu i năm cho các khách hàng. M i đ n hàng th mua nhi u s n ơ
ph m, V i m i s n ph m trong m t hóa đ n cho bi t s l ng bán ơ ế ượ
(SLBAN) c a m t hàng đó.
1. D a vào nghi p v trên, vẽ hình th c th k t h p ERD, sau đó chuy n ế
qua l c đ c s d li u cho h th ng trên và xác đ nh các ràng bu c khóaượ ơ
chính và khóa ngo i cho l c đ CSDL. ượ
2. Xác đ nh các qui t c nghi p v c a h th ng trên.
3. T i c a s Query analyzer, th c hi n:
lOMoARcPSD|45470709
a. Dùng l nh Create Table đ t o c u trúc c a các b ng sau trong CSDL
QLBH:
L u ýư : Các b ng KHACHHANG, HOADON, CT_HOADON khai báo c t Null
ho c Not Null, không c n khai o khóa chính, khóa ngo i. B ng
NhomSanPham, SanPham, NhaCungCap yêu c u t o khóa chính và khóa ngo i
trong l nh Create Table luôn, các b ng còn l i thì dùng l nh Alter Table đ
t o khóa chính và khóa ngo i.
NhomSanPham
MaNhom Int Not null
TenNhom Nvarchar(15)
SanPham
MaSp int Not null
TenSp nvarchar(40) Not null
MaNCC Int
MoTa nvarchar(50)
MaNhom int
Đonvitinh nvarchar(20)
GiaGoc Money >0
SLTON Int >0
HoaDon
MaHD Int Not null
NgayLapHD DateTime >=Ngày hi n hành
Giá tr m c đ nh là
ngày hi n hành
NgayGiao DateTime
Noichuyen NVarchar(60) Not Null
MaKh Nchar(5)
CT_HoaDon
MaHD Int Not null
MaSp int Not null
Soluong SmallInt >0
Dongia Money
ChietKhau Money >=0
NhaCungCap
MaNCC Int Not null
lOMoARcPSD|45470709
TenNcc Nvarchar(40) Not Null
Diachi Nvarchar(60)
Phone NVarchar(24)
SoFax NVarchar(24)
DCMail NVarchar(50)
KhachHang
MaKh NChar(5) Not null
TenKh Nvarchar(40) Not null
LoaiKh Nvarchar(3) Ch nh p VIP, TV, VL
DiaChi Nvarchar(60)
Phone NVarchar(24)
SoFax NVarchar(24)
DCMail NVarchar(50)
DiemTL Int >=0
b. Dùng l nh Alter Table khai o các ràng khóa chính (Primary Key
Constraint) các b ng còn l i KHACHHANG, HOADON, CT_HOADON.
c. Dùng l nh Alter Table khai báo c ràng khóa ngo i (Foreign Key
Constraint) các b ng còn l i KHACHHANG, HOADON, CT_HOADON. .
d. Dùng l nh Alter Table … khai báo các ràng bu c mi n giá tr (Check
Constraint) và ràng bu c giá tr m c đ nh cho các b ng trên
e. Thêm c t LoaiHD vào b ng HOADON, LoaiHD ki u d li u char(1), Ch
nh p N(Nh p), X(Xu t), C(Chuy n t c a hàng này sang c a hàng khác), T
(Tr ), giá tr m c đ nh là ‘N’.
f. T o ràng bu c cho b ng HoaDon v i yêu c u NgayGiao>=NgayLapHD
4. Th c hi n phát sinh t p tin script cho CSDL QLBH v i các l a ch n sau, l u ư
v i tên TableQLBH.sql:
All Tables, All user-defined data types
Generate the CREATE <object> command for each object
Generate the DROP <object> command for each object
Generate the Constraint <object> command for each object
5. T o s đ quan h cho CSDL QLBH ơ
BÀI T P 2 (làm thêm t i nhà và n p l i cho GV):
1. Dùng T-SQL t o CSDL Movies v i các tham s sau:
T p tin Datafile có: Name: Movies_data;
pathname: C:\Movies\Movies_data.mdf; Size: 25 MB; Maxsize: 40
MB; FileGrowth: 1 MB.
lOMoARcPSD|45470709
T p tin Log file có: Name: Movies_log; pathname:
C:\Movies\Movies_log.ldf; Size: 6 MB; Maxsize: 8 MB; FileGrowth: 1 MB.
2. Th c hi n, ki m tra k t qu sau m i l n th c hi n: ế
Thêm m t Datafile th 2 Name: Movies_data2; pathname: C:\Movies\
Movies_data2.ndf; Size: 10 MB; thông s khác không c n ch đ nh.
L n l t c u hình CSDL Movies v i ch đ single_user, restricted user, ượ ế
multi user. Sau đó cài đ t l i multi_user. Nh dùng l nh đ ki m tra
l i.
Tăng kích c c a data file th 2 t 10 MB lên 15 MB. Ki m tra l i.
C u hình CSDL v ch đ t đ ng SHRINK ế
Phát sinh t p tin Script t CSDL Movies, t o script cho t t c các đ i
t ng k c database. L u vào đĩa v i tên là Movies.SQL. ượ ư Xoá CSDL
Movies
3. M t p tin Movies.SQL. Th c hi n:
B sung thêm câu l nh t o m t filegroup tên là Data. Hi u
ch nh maxsize c a t p tin transaction log thành 10 MB Size
c a t p tin datafile th 2 thành 10 MB.
Cho datafile th 2 n m trong filegroup có tên là Data.
L u t p tin scrip ư
Cho th c thi toàn b t p tin script.
Dùng sp_helpDB đ ki m tra s t n t i c a Movies các thông s c a
nó.
4. Các b ng có trong CSDL Movies là
Tên b ng N i dung l u ch a ư
Movie Danh sách các phim có trong c a hàng
Customer Thông tin khách hàng
Category Danh sách các lo i phim
Rental Thông tin thuê phim
Rental_detail Chi ti t thuê phim ế
B n hãy suy nghĩ xem m i b ng trên c n l u nh ng thông tin c th nào ư
(t c các c t nào), ki u d li u ra sao? Khóa chính c a t ng b ng, m i
quan h gi a các b ng, có nh ng ràng bu c toàn v n nào?
5. Th c hi n đ nh nghĩa c user-defined datatype sau vào trong CSDL
Movies. Ki m tra sau khi t o.
Ki u d li u (Data
type)
Mô t d li u (Description of data)
Movie_num Int, không ch p nh n Null
Category_num Int, không ch p nh n Null
lOMoARcPSD|45470709
Cust_num Int, không ch p nh n Null
Invoice_num Int, không ch p nh n Null
6. Th c hi n t o các b ng vào CSDL Movies, nh ki m tra l i c u trúc b ng
sp_help Customer
Tên c t ki u d li u cho phép Null
Cust_num cust_num IDENTITY(300,1) No
Lname varchar(20) No
Fname varchar(20) No
Address1 varchar(30) Yes
Address2 varchar(20) Yes
City varchar(20) Yes
State Char(2) Yes
Zip Char(10) Yes
Phone Varchar(10) No
Join_date Smalldatetime No
Category
Tên c t ki u d li u cho phép Null
Category_num category_num
IDENTITY(1,1)
No
Description Varchar(20) No
Movie
Tên c t ki u d li u cho phép Null
Movie_num Movie_num No
Title Cust_num No
Category_Num category_num No
Date_purch Smalldatetime Yes
Rental_price Int Yes
Rating Char(5) Yes
Rental:
Tên c t Ki u d li u cho phép Null
Invoice_num Invoice_num No
Cust_num Cust_num No
Rental_date Smalldatetime No
Due_date Smalldatetime No
lOMoARcPSD|45470709
Rental:_Detail
Tên c t Ki u d li u cho phép Null
Invoice_num Invoice_num No
Line_num Int No
Movie_num Movie_num No
Rental_price Smallmoney No
7. Th c hi n phát sinh t p tin script cho CSDL Movies v i các l a ch n sau,
l u v i tên Table.sql: ư
All Tables, All user-defined data types
Generate the CREATE <object> command for each object
Generate the DROP <object> command for each object
8. Th c hi n t o Diagram cho các b ng trong Movies. B n t o đ c ư
không? T i sao? T m th i l u diagram v i tên là Movies. ư
9. Th c hi n đ nh nghĩa các khoá chính (Primary Key Constraint) cho các
b ng nh sau, nh ki m tra các Constraint b ng l nh sp_helpconstraint ư
Tên b ng c t làm khóa Tên c a Primary Constraint
Movie Movie_num PK_movie
Customer Cust_num PK_customer
Category Category_num PK_category
Rental Invoice_num PK_rental
10.Th c hi n đ nh nghĩa các khoá ngo i (Foreign Key Constraint) cho các
b ng nh sau, nh ki m tra các Constraint b ng l nh sp_helpconstraint ư
Tên b ng C t làm khóa Tên
b ng
đ c ượ
tham
chi u ế
đ n ế
C t đ c ượ
tham chi u ế
Tên c a
Primary
Constraint
Cascade
Movie Category_num Category Category_num FK_movie
Rental Cust_num Customer Cust_num FK_rental
Rental_detail Invoice_num Rental Invoice_num FK_detail_invoice delete
Rental_detail Movie_num Movie Movie_num PK_detail_movie
11.M l i Diagram có tên Movie, xem khóa chính, m i quan h gi a các b ng.
lOMoARcPSD|45470709
12.Th c hi n đ nh nghĩa các giá tr m c đ nh (Default Constraint) cho các c t
các b ng nh sau, nh ki m tra các Constraint b ng l nh ư
sp_helpconstraint
Tên b ng C t có giá
tr Default
Giá tr Default Tên c a Primary
Constraint
Movie Date_purch Ngày hi n hành DK_movie_date_purch
Customer join_date Ngày hi n hành DK_customer_join_date
Rental Rental_date Ngày hi n hành DK_rental_rental_date
Rental Due_date Ngày hi n hành +
2
DK_rental_due_date
13.Th c hi n đ nh nghĩa các mi n giá tr (Check Constraint) cho các c t các
b ng nh sau, nh ki m tra các Constraint b ng l nh sp_helpconstraint ư
Tên b ng C t có giá
tr Default
Mi n giá tr Tên c a
Constraint
Primary
Movie Rating ‘G’, ‘PG’, ‘R’, ‘NC17’, ‘NR’ CK_movie
Rental Due_date >= Rental_date CK_Due_date
14.Th c hi n phát sinh t p tin script cho các đ i t ng trong CSDL Movie. ượ
Tên c a t p tin Constraint.sql. V i l a ch n Script Primary Keys,
Foreign Keys, Default, and Check Constraints.
BÀI T P 3:
Dùng ch c năng Import/Export (ki m tra k t qu sau m i l n th c hi n): ế
T t c các thông tin nhân viên có trong b ng Employees trong NorthWind ra
thành t p tin NhanVien.txt.
D li u c a các b ng Products, Orders, Order Details trong b ng
NorthWind vào t p tin QLHH.MDB. L u ý: T p tin QLHH.MDB ph i t n t i ư
trên đĩa tr c khi th c hi n Export. ướ
D li u các b ng Products, Suppliers trong NorthWind ra thành t p tin
SP_NCC.XLS
Các khách hàng City LonDon t b ng Customers trong NorthWind ra
thành t p tin KH.TXT.
Danh sách các s n ph m Products trong NorthWind thành t p tin
SanPham.TXT, thông tin c n l y bao g m ProductID, ProductName,
QuantityPerUnit, Unitprice.
Các s n ph m SupplierID 1 ho c 2 ho c 3 b ng Products trong
NorthWind vào b ng SanPham trong QLBH. L u ý ch ch n nh ng c t ư
trong b ng s n ph m c n.
Các nhà cung c p Country USA b ng Suppliers trong NorthWind vào
b ng NhaCungCap trong QLBH. L u ý: ch ch n nh ng c t trong b ng ư
Nhacungcap c n.
Danh sách các nhân viên có trong t p tin Nhanvien.TXT vào b ng NhanVien
lOMoARcPSD|45470709
BÀI T P 4: M CSDL QLBH, th c hi n các l nh sau:
1. Thêm vào m i Table 2 dòng d li u thông qua c a s Design. D li u sinh viên
t nghĩ. Chú ý: Các ràng bu c c a các Table
2. Dùng l nh Insert thêm d li u vào các b ng sau: N u b ng nào có d li u b n ế
hãy xóa h t các d li u đó tr c r i m i nh p vào ế ướ
Table NhomHang
Table NhaCungCap
Table SanPham
Table KhachHang
Table HoaDon
lOMoARcPSD|45470709
Table CT_HoaDon
3. Dùng l nh Update s a ch a d li u theo yêu c u sau
a) Tăng đ n giá bán lên 5% cho các s n ph m có mã là 2 ơ
b) Tăng s l ng t n lên 100 cho các s n ph m nhóm m t hàng 3 c a ượ
nhà cung c p có mã là 2
c) Tăng đi m tích lũy lên 50 cho nh ng khách hàng không ph i khách
hàng vãng lai
d) C p nh t c t t cho s n ph m tên vi sóng (d li u c t t
sinh viên t thêm)
e) Tăng đ n giá g c lên 2% cho nh ng s n ph m ph n tên ch a chơ
u
4. Dùng l nh Delete th c hi n các yêu c u sau:
a) Xóa các s n ph m có SLTon <2
b) Xóa các hóa đ n c a khách hàng vãng lai ơ
c) Xóa khách hàng thu c lo i VIP mà có đi m tích lũy b ng 0
BÀI T P TU N 2-3
lOMoARcPSD|45470709
Ch n CSDL hi n hành NorthWind, tìm hi u c u trúc d li u c a các b ng.
Xây d ng s đ quan h cho các b ng d i. Sau đó dùng câu l nh Select From ơ ướ
… Where … đ truy v n d li u nh sau, v i c u trúc c a các b ng nh sau: ư ư
Products(ProductID,ProductName, SupplierID, UnitPrice, UnitInStock, … )
Customers(CustomerID, CompanyName, Address, City, Region, Country, …)
Employees(EmployeeID, LastName, FirstName, BirthDate, City, …)
Orders(OderID, CustomerID, EmployeeID, OrderDate,…)
Order Details(OrderID, ProductID, UnitPrice, Quantity, Discount)
Suppliers(SupplierID, SupplierName,…)
Chú ý: N u câu nào b n đánh đúng l nh k t qu không có, b n cho bi tế ế ế
t i sao?
BÀI T P 1: L NH SELECT – TRUY V N Đ N GI N Ơ
1. Li t kê thông tin c a t t c các s n ph m (Products)
2. Li t danh sách các customers. Thông tin bao g m CustomerID,
CompanyName, City, Phone.
3. Li t danh sách các products. Thông tin bao g m ProductId,
ProductName, UnitPrice.
4. Li t danh sách các employees. Thông tin bao g m EmployeeId,
EmployeeName, Phone, Age. Trong đó EmployeeName đ c ghép tượ
LastName FirstName; Age tu i đ c tính t năm hi n hành ượ
(GetDate()) và năm c a Birthdate.
5. Li t kê danh sách các Customers có ContactTitle b t đ u b ng ch O
6. Danh sách các customers thành ph Paris.
7. Li t kê danh sách Customers thành ph LonDon, Boise và Paris
8. Li t danh sách Customers tên b t đ u b ng ch V thành ph
Lyon
9. Li t kê danh sách các Customers không có s fax
10. Li t kê danh sách các Customers có s Fax
11. Li t kê danh sách employees có năm sinh <=1960.
12. Li t kê danh sách các products có t ‘Boxes’ trong c t QuantityPerUnit.
13. Li t kê danh sách các products có Unitprice l n h n 10 và nh h n 15. ơ
14. Li t danh sách các orders OrderDate đ c l p trong tháng 9 năm ượ
1996.
15. Li t danh sách các products ng v i ti n t n v n. Thông tin bao g m
ProductId, ProductName, Unitprice, UnitsInStock, TotalAccount. Trong đó
TotalAccount= UnitsInStock * Unitprice.
16. Li t kê danh sách 5 customers có city b t đ u ‘M’.
17. Li t danh sách 2 employees tu i l n nh t. Thông tin bao g m
EmployeeID, EmployeeName, Age. Trong đó, EmployeeName đ c ghépượ
t LastName và FirstName; Age là năm hi n hành tr năm sinh.
lOMoARcPSD|45470709
18. Li t kê danh sách các Products có s l ng t n nh h n 5 ượ ơ
19. Li t danh sách các Orders g m OrderId, Productid, Quantity, Unitprice,
Discount, ToTal = Quantity * unitPrice – 20%*Discount.
20. Li t kê danh sách các Employees không thành ph London và Redmond
BÀI T P 2: L NH SELECT – TRUY V N CÓ K T N I
1. Li t kê các customer không có l p hóa đ n trong tháng 7/1997 ơ
2. Li t kê các customer có l p hóa đ n trong 15 ngày đ u tiên c a 7/1997 ơ
3. Li t kê danh sách các s n ph m đ c giao vào ngày 16/7/1996 ượ
4. Li t kê danh sách các hóa đ n c a các Customers mua hàng trong tháng 4, ơ
9 c a năm 1997. Thông tin g m Orderid, CompanyName, OrderDate,
RequiredDate, đ c s p x p theo CompanyName, cùng Companyname thìượ ế
theo OrderDate gi m d n.
5. Li t kê danh sách các hóa đ n do nhân viên có Lastname là Fuller l p. ơ
6. Li t danh sách các Products do nhà cung c p (supplier)1,3,6 bán
đ c trong tháng 6,7 c a năm 1997, đ c s p x p theo nhà cung c pượ ượ ế
(SupplierID), cùng mã nhà cung c p thì s p x p theo ProductID. ế
7. Li t kê danh sách các Products đã bán có Discount là 1
8. Li t kê danh sách các Products có đ n giá bán b ng đ n giá mua. ơ ơ
9. Li t kê danh sách các Products mà hóa đ n có OrderID là 10248 đã mua. ơ
10.Li t kê danh sách các Employers đã l p các hóa đ n trong tháng 7 c a năm ơ
1996
11.Li t danh sách các s n ph m Products ch a bán đ c trong tháng 6 ư ượ
năm 1996
12.Li t kê danh sách các Employes không l p hóa đ n vào ngày hôm nay ơ
13.Li t kê danh sách các Customers ch a mua hàng trong năm 1997 ư
14.Li t danh sách các nhà cung c p Suppliers không cung c p Products
mã là 59.
15.Tìm t t c các Customers mua các s n ph m tên b t đ u b ng ch T
trong tháng 7.
BÀI T P 3: L NH SELECT – TRUY V N GOM NHÓM
1. Danh sách các orders ng v i t ng ti n c a t ng hóa đ n. Thông tin bao ơ
g m OrdersId, OrderDate, TotalAccount. Trong đó TotalAccount Sum
c a Quantity * Unitprice, k t nhóm theo OrderId. ế
2. Danh sách các orders ng v i t ng ti n c a t ng hóa đ n Shipcity ơ
‘Madrid’. Thông tin bao g m OrdersId, OrderDate, TotalAccount. Trong đó
TotalAccount là Sum c a Quantity * Unitprice, k t nhóm theo OrderId. ế
3. Danh sách các products có t ng s l ng l p hóa đ n l n nh t. ượ ơ
4. Cho bi t m i customers đã l p bao nhiêu hóa đ n. Thông tin g mế ơ
CustomerID, CompanyName, CountOfOrder. Trong đó CountOfOrder (t ng
s hóa đ n) đ c đ m (Count) theo t ng Customers. ơ ượ ế
5. Cho bi t m i Employee đã l p đ c bao nhiêu hóa đ n, ng v i t ng ti n. ế ượ ơ
lOMoARcPSD|45470709
6. Danh sách các customer ng v i t ng ti n các hoá đ n đ c l p t ơ ượ
31/12/1996 đ n 1/1/1998. ế
7. Danh sách các customer ng v i t ng ti n các hoá đ n, các hóa đ n ơ ơ
đ c l p t 31/12/1996 đ n 1/1/1998 và t ng ti n các hóa đ n >20000. ượ ế ơ
8. Danh sách các customer ng v i t ng s hoá đ n, t ng ti n các hoá đ n, ơ ơ
các hóa đ n đ c l p t 31/12/1996 đ n 1/1/1998 t ng ti n cácơ ượ ế
hóa đ n >20000. Thông tin đ c s p x p theo CustomerID, cùng thìơ ượ ế
s p x p theo t ng ti n gi m d n. ế
9. Danh sách các Category t ng s l ng t n (UnitsInStock) l n h n 300, ượ ơ
đ n giá trung bình nh h n 25. Thông tin k t qu bao g m CategoryID,ơ ơ ế
CategoryName, Total_UnitsInStock, Average_Unitprice.
10.Danh sách các Category t ng s product l n h n 10. Thông tin k t qu ế
bao g m CategoryID, CategoryName, Total_UnitsInStock.
11.Danh sách các product theo t ng CategoryName, thông tin bao g m:
Productname, CategoryName, Unitprice, UnitsinStock. dùng m nh đ
COMPUTE đ li t đ n giá trung bình, t ng s l ng t n (sum of ơ ượ
UnitsinStock) theo t ng CategoryName.
12.Danh sách các Customer ng v i t ng ti n c a các hóa đ n t ng tháng. ơ
Thông tin bao g m CustomerID, CompanyName, Month_Year, Total. Trong
đó Month_year tháng năm l p hóa đ n, Total t ng c a Unitprice* ơ
Quantity, th ng k t ng c a total theo t ng Customer Month_Year . ế
(có dùng COMPUTE)
13.Cho bi t Employees nào bán đ c nhi u ti n nh t trong 7 c a năm 1997ế ượ
14. Danh sách 3 khách có nhi u đ n hàng nh t c a năm 1996. ơ
15. Cho bi t khách hàng nào có s l n mua hàng l n h n 10 trong năm 1997. ế ơ
BÀI T P 4: L NH SELECT – TRUY V N CON SUBQUERY
1. Các product có đ n giá l n h n đ n giá trung bình c a các product. ơ ơ ơ
2. Các product đ n giá l n h n đ n giá trung bình c a các product ơ ơ ơ
ProductName b t đ u là ‘N’
3. Cho bi t nh ng s n ph m tên b t đ u b ng ch Nđ n giá > đ n giáế ơ ơ
c a s n ph m khác
4. Danh sách các products đã khách hàng đ t hàng (t c ProductId
trong Order Details). Thông tin bao g m ProductId, ProductName,
Unitprice
5. Danh sách các products có đ n giá nh p l n h n đ n giá bán nh nh t c aơ ơ ơ
t t c các Products
6. Danh sách các hóa đ n c a nh ng Customers Customers thành phơ
LonDon và Madrid.
7. Danh sách các products đ n v tính ch Box đ n giá mua nhơ ơ
h n đ n giá trung bình c a t t c các Products. ơ ơ
8. Danh sách các Products có s l ng (Quantity) bán đ c l n nh t. ượ ượ
lOMoARcPSD|45470709
9. Danh sách các Customer ch a t ng l p hóa đ n (vi t b ng ba cách: dùngư ơ ế
NOT EXISTS, dùng LEFT JOIN, dùng NOT IN )
10.Cho bi t các s n ph m có đ n giá bán cao nh t ế ơ
11.Cho bi t các s n ph m đ n v tính ch a ch box đ n giá bánế ơ ơ
cao nh t
12.Danh sách các products có đ n giá bán l n h n đ n giá bán trung bình c aơ ơ ơ
các Products có ProductId<=5
13.Danh sách các Customers và các Employees không cùng thành ph
14.Cho bi t nh ng s n ph m nào t ng s l ng bán đ c l n h n sế ượ ượ ơ
l ng trung bình bán ra ượ
15.Li t danh sách các khách hàng mua các hóa đ ncác hóa đ n này ch ơ ơ
mua nh ng s n ph m có mã >=3
16.Li t danh sách các khách hàng mà các khách hàng này mua các hóa đ n ơ
do các nhân viên l p hóa đ n cùng thành ph v i khách hàng ơ
17.Danh sách các Customers các Customers đã mua hàng trong tháng 7, 9
năm 1997
18.Danh sách các City có nhi u h n 3 customer. ơ
19.Tìm t t c các Customers mua ít nh t 2 đ n hàng. ơ
20.B n hãy đ a ra câu h i cho 3 câu truy v n sau: ư
Select ProductId, ProductName, UnitPrice from [Products]
Where Unitprice>ALL (Select Unitprice from [Products] where
ProductName like ‘B%’)
Select ProductId, ProductName, UnitPrice from [Products]
Where Unitprice>ANY (Select Unitprice from [Products] where
ProductName like ‘B%’)
Select ProductId, ProductName, UnitPrice from [Products]
Where Unitprice=ANY (Select Unitprice from [Products] where
ProductName like ‘B%’)
BÀI T P 5: L NH SELECT – CÁC LO I TRUY V N KHÁC
1. Li t kê danh sách các City có Customers ho c Employee (dùng Union)
2. Li t kê danh sách các Country có Customers ho c Employee (dùng Union)
3. K t danh sách các Customer và Employee l i v i nhau. Thông tin g m ế
CodeID, Name, Address, Phone. Trong đó
CodeID là CustomerID/EmployeeID, Name là
Companyname/LastName + FirstName, Phone là Homephone.
4. Danh sách các Suppliers cung c p t t c các m t hàng.
5. Danh sách các Customers đã mua t t c các m t hàng
lOMoARcPSD|45470709
BÀI T P TU N 4
1. T o view vw_Products_Info hi n th danh sách các s n ph m t b ng Products
b ng Categories. Thông tin bao g m CategoryName, Description,
ProductName, QuantityPerUnit, UnitPrice, UnitsInStock
2. T o view List_Product_view ch a danh sách các s n ph m d ng h p (box)
đ n giá > 16, thông tin g m ProductID, ProductName, UnitPrice,ơ
QuantityPerUnit, COUNT of OrderID
3. T o view vw_CustomerTotals hi n th t ng ti n bán đ c t m i khách hàng ượ
theo tháng theo năm. Thông tin g m CustomerID, YEAR(OrderDate) AS
OrderYear, MONTH(OrderDate) AS OrderMonth, SUM(UnitPrice*Quantity).
4. T o view tr v t ng s l ng s n ph m bán đ c c a m i nhân viên ượ ượ
(Employee) theo t ng năm. Thông tin g m EmployeeID, OrderYear,
sumOfOrderQuantity
5. T o view ListCustomer_view ch a danh sách các khách hàng trên 5 hóa đ n ơ
đ t hàng t năm 1997 đ n 1998, thông tin g m mã khách (CustomerID) , h tên ế
(CompanyName), S hóa đ n (CountOfOrders). ơ
6. T o view ListProduct_view ch a danh sách nh ng s n ph m nhóm Beverages
Seafood t ng s l ng bán trong m i năm trên 30 s n ph m, thông tin ượ
g m CategoryName, ProductName, Year, SumOfOrderQuantity.
7. T o view vw_OrderSummary v i t khóa WITH ENCRYPTION g m OrderYear
(năm c a ngày l p hóa đ n), OrderMonth (tháng c a ngày l p hóa đ n), ơ ơ
OrderTotal (t ng ti n, =UnitPrice*Quantity). Sau đó xem thông tin tr giúp
v mã l nh c a view này
8. T o view vwProducts v i t khóa WITH SCHEMABINDING g m ProductID,
ProductName, Discount. Xem thông tin c a View. Xóa c t Discount. xóa đ c ượ
không? Vì sao?
9. T o view vw_Customer v i t khóa WITH CHECK OPTION ch ch a các khách
hàng thành ph London Madrid, thông tin g m: CustomerID,
CompanyName,
City.
a. Chèn thêm m t khách hàng m i không thành ph London Madrid
thông qua view v a t o. Có chèn đ c không? Gi i thích. ượ
b. Chèn thêm m t khách hàng m i thành ph London m t khách hàng
m i thành ph Madrid. Dùng câu l nh select trên b ng Customers đ xem
k t qu .ế
lOMoARcPSD|45470709
BÀI T P TU N 5-6
I) Batch
1. Vi t m t batch khai báo bi n @tongsoHD ch a t ng s hóa đ n c a s nế ế ơ
ph m ProductID=’31’, n u @tongsoHD>50 thì in ra chu i “S n ph m ế
31 trên 50 đ n hàng”, ng c l i tin ra chu i “S n ph m 31 ít đ nơ ượ ơ
đ t hàng”
2. Vi t m t đo n Batch v i tham s @makh và @n, ch a s hóa đ n @n c aế ơ
khách ng @makh, tham s @nam ch a năm l p hóa đ n (ví d ơ
@nam=1996), n u @n>0 thì in ra chu i:”Khách hàng @n hóa đ nế ơ
trong năm 1996”, ng c l i n u @n=0 thì in ra chu i “Khách hàng khôngượ ế
có hóa đ n nào trong năm 1996” ơ
3. Vi t m t batch tính s ti n gi m cho nh ng hóa đ n (OrderID) t ngế ơ
ti n>500, thông tin g m OrderID, TongTien=sum(UnitPrice*Quantity),
Ti n gi m, v i Ti n gi m đ c tính nh sau: ư ư
Nh ng hóa đ n có TongTien <500 thì không gi m, ơ
TongTien t 500 đ n <5000 thì gi m 5% c a TongTien ế
TongTien t 5000 đ n <10000 thì gi m 10% c a TongTien ế
TongTien t 10000 tr lên thì gi m 15% c a TongTien
(G i ý: Dùng c u trúc Case… when …then …)
4. Vi t m t Batch v i 3 tham s : @MaNCC, @MaSP, @SoLuongCC, ch a giáế
tr c a các field SupplierID, ProductID,Quantity, v i giá tr truy n cho các
bi n @MaNCC, @MaSP (vd: @MaNCC =5, @MaSP =11, thì ch ng trình sẽế ươ
gán giá tr t ng ng c a field Quantity cho bi n @SoLuongCC, n u ươ ế ế
@SoLuongCC tr v giá tr null thì in ra chu i “Nha cung cap 5 khong
cung cap san pham 11”, ng c l i (vd: @SoLuongCC =12) thì in chu iượ
“Nha cung cap 5 cung cap san pham 11 v i s l ng là 12” ượ
5. Vi t m t batch th c hi n tăng đ n giá (UnitPrice) trung bình c a đ nế ơ ơ
hàng (Orders) theo đi u ki n sau: Khi trung bình c a đ n giá trong đ n ơ ơ
hàng <
50 thì c p nh t tăng đ n giá c a đ n hàng lên 10%, n u sau khi c p nh t ơ ơ ế
mà đ n giá l n nh t c a đ n hàng >300 thì d ng. ơ ơ
M
c tiêu:
Hi
u và bi
ế
t cách l
p trình trong SQL
Vi
ế
t các batch
T
o và th
c thi các lo
i function và stored procedure
Function g
m 3 lo
i:
o
Scalar function
o
Table valued Function
o
Multi Statement table valued Function
Stored Procedure
o
Tham s
input và output
lOMoARcPSD|45470709
II) Function: (Nh ki m tra t ng hàm sau khi làm xong, b ng cách g i hàm
truy n tham s )
Scalar Function:
1. Vi t hàm tên ế CountOfProducts (d ng scalar function) v i tham s
@MaNhom, giá tr truy n vào l y t field CategoryID, hàm tr v s s n
ph m t ng ng v i mã nhóm hàng. Áp d ng hàm đã vi t vào câu truy v n ươ ế
li t danh sách các nhóm hàng cùng v i s s n ph m thu c m i nhóm,
thông tin g m: CategoryID, CategoryName, CountOfProduct.
2. Vi t hàm tên ế InstockProd (d ng scalar function) v i tham s vào
@ProductID @SupplierID. Hàm tr v s l ng t n kho (UnitInStock) ượ
c a s n ph m @ProductID do nhà cung c p @SupplierID cung c p.
3. Vi t hàm tên ế SalesOfEmp (d ng scalar function) tr v t ng doanh thu bán
hàng (SUM(UnitPrice*Quantity)) c a m t nhân viên trong m t tháng tùy ý
trong m t năm tùy ý, v i tham s vào @EmployeeID, @MonthOrder,
@YearOrder
Table Valued Functions
1. Vi t hàm ế SumofOrder v i hai tham s @thang @nam, tr v danh sách
các hóa đ n (OrderID) l p trong tháng và năm đ c truy n vào t 2 thamơ ượ
s @thang @nam, t ng ti n >5000, thông tin g m OrderID,
OrderDate, SubTotal, trong đó SubTotal =sum(Quantity*UnitPrice).
2. Vi t hàm tên ế SumOfProduct v i tham s đ u vào @MaNCC
(SupplierID), hàm dùng đ tính t ng s l ng ( ư SumOfQuantity) chi tế
kh u cao nh t ( MaxOfDiscount) c a các s n ph m do nhà cung c p
@MaNCC cung c p, thông tin g m ProductID, SumOfQuantity,
MaxOfDiscount
3. Vi t hàm tên ế Discount_Func tính s ti n gi m trên các hóa đ n (OrderID), ơ
thông tin g m OrderID, Quantity, Discount, trong đó, Discount đ c tính ượ
nh sau: ư
N u Quantity< 10 thì Discount=0, ế
N u 10<= Quantity <30 thì Discount = 5% [ế UnitPrice*Quantity] N uế
30<= Quantity <50 thì Discount = 10%[UnitPrice*Quantity]
N u Quantity >=50 thì Discount = 15% [ế UnitPrice*Quantity]
G i ý: S d ng Case When …Then …
Select Discount=
Case
when Quantity <10 then 0 when Quantity >=10 and Quantity <30
then 5%* (UnitPrice*Quantity) when Quantity >=30 and Quantity <50
then 10% *(UnitPrice*Quantity) else 15% *(UnitPrice*Quantity)
End
From [Order Details]
4. Vi t hàm ế TotalOfEmp v i tham s @MonthOrder, @YearOrder đ tính
t ng doanh thu c a các nhân viên trong tháng năm đ c truy n vào 2 ượ
| 1/28