ĐỀ CHẴN
ĐỀ THI MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – K61
Thời gian: 90 phút
Lưu ý:
-
Đề gồm 3 trang từ trang 2 đến trang 4, gồm 2 câu: câu 1 tạo lập cơ sở dữ liệu, câu 2 gồm 11 câu nhỏ từ a đến k. Đề tương đối dài nên Anh (Chị) phải tập trung cao độ thì mới làm hết trong thời gian 90 phút.
-
file bài làm sql cần lưu trên ổ D:, đặt tên file là họ tên đầy đủ của Anh(Chị) và mã sinh viên. Ví dụ: bài làm của Nguyễn Văn An, mã sinh viên là K610002 thì tên file là: d:\NguyenVanAn_K610002.sql. Hãy thường xuyên ghi vào file những gì đã làm để tránh mất kết quả.
Cho cơ sở dữ liệu có tên là sieuthisach gồm các bảng sau:
NXB(maNXB,tenNXB, diachi)
sach(masach, tensach, gia, maNXB, namXB)
tacgia(maTG, tenTG, dienthoai)
sach_tacgia(maTG, masach)
Trong đó:
-
maNXB: mã nhà xuất bản, tenNXB: tên nhà xuất bản, diachi: địa chỉ của nhà xuất bản; masach: mã sách, tensach: tên sách, gia: giá bán, namXB: ngày xuất bản; maTG: mã tác giả, tenTG: tên tác giả, dienthoai: điện thoại.
-
Các cột gạch dưới là cột khóa của bảng tương ứng. Các cột trong bảng có tên trùng với tên các cột khóa của bảng khác là cột khóa ngoài
-
Không cho phép hai nhà xuất bản nào trùng tên nhau
Ví dụ về dữ liệu chứa trong các bảng như sau:
Bảng NXB(maNXB,tenNXB, diachi):
-
N001
|
Giáo dục
|
81 - Trần Hưng Đạo - Hà Nội
|
N002
|
Khoa học kỹ thuật
|
70 - Trần Hưng Đạo - Hà Nội
|
N003
|
Thống Kê
|
Hoàng Văn Thụ - Ba Đình - Hà Nội
|
Bảng sach(masach, tensach, gia, maNXB, namXB):
-
S0001
|
Lập trình mạng
|
55000
|
N001
|
2005-01
|
S0002
|
Giải tích
|
45000
|
N002
|
2005-10-22
|
S0003
|
Đại số tuyến tính
|
50000
|
N002
|
2004-11-20
|
S0004
|
Lập trình C++
|
60000
|
N003
|
2009-01-24
|
S0005
|
Cấu trúc dữ liệu và giải thuật
|
80000
|
N001
|
2010-02-21
|
S0006
|
Mạng máy tính
|
20000
|
N003
|
2000-05-02
|
Bảng tacgia(maTG, tenTG, dienthoai):
-
T001
|
Nguyễn Văn Bình
|
0123123421
|
T002
|
Phạm Văn An
|
0936123456
|
T003
|
Đỗ Đức Thái
|
0913445255
|
T004
|
Trần Văn Toản
|
0943454545
|
T005
|
Trần Đức Thịnh
|
096554335
|
T006
|
Nguyễn Thị Vân
|
0437543323
|
T007
|
Nguyễn Thúc Hải
|
0438543432
|
T008
|
Trương Tấn Sang
|
0437549984
|
T009
|
Nguyễn Minh Triết
|
098723456
|
Bảng sach_tacgia(maTG, masach):
-
T001
|
S0003
|
T002
|
S0001
|
T002
|
S0006
|
T003
|
S0005
|
T005
|
S0004
|
T006
|
S0004
|
T007
|
S0006
|
T008
|
S0002
|
T008
|
S0003
|
T008
|
S0006
|
Câu 1:
Hãy viết các câu lệnh TSQL để tạo database sieuthisach lưu các thông tin trên.
(có thể copy và sửa các câu lệnh chèn dữ liệu sau)
USE sieuthisach;
INSERT INTO NXB VALUES ('N001', N'Giáo dục',N'81 - Trần Hưng Đạo - Hà Nội');
INSERT INTO NXB VALUES ('N002', N'Khoa học kỹ thuật', N'70 - Trần Hưng Đạo - Hà Nội');
INSERT INTO NXB VALUES ('N003', N'Thống Kê', N'Hoàng Văn Thụ - Ba Đình - Hà Nội');
SELECT * FROM NXB;
INSERT INTO sach VALUES ('S0001', N'Lập trình mạng',55000, 'N001','2005')
INSERT INTO sach VALUES ('S0002', N'Giải tích',45000, 'N002','2005/10/22')
INSERT INTO sach VALUES ('S0003', N'Đại số tuyến tính',50000, 'N002','2004/11/20')
INSERT INTO sach VALUES ('S0004', N'Lập trình C++',60000, 'N003','2009/1/24')
INSERT INTO sach VALUES ('S0005', N'Cấu trúc dữ liệu và giải thuật',80000, 'N001','2010/2/21')
INSERT INTO sach VALUES ('S0006', N'Mạng máy tính',20000, 'N003','2000/5/2')
SELECT * FROM sach
INSERT INTO tacgia VALUES ('T001', N'Nguyễn Văn Bình','0123123421')
INSERT INTO tacgia VALUES ('T002', N'Phạm Văn An','0936123456')
INSERT INTO tacgia VALUES ('T003', N'Đỗ Đức Thái','0913445255')
INSERT INTO tacgia VALUES ('T004', N'Trần Văn Toản','0943454545')
INSERT INTO tacgia VALUES ('T005', N'Trần Đức Thịnh','096554335')
INSERT INTO tacgia VALUES ('T006', N'Nguyễn Thị Vân','0437543323')
INSERT INTO tacgia VALUES ('T007', N'Nguyễn Thúc Hải','0438543432')
INSERT INTO tacgia VALUES ('T008', N'Trương Tấn Sang','0437549984')
INSERT INTO tacgia VALUES ('T009', N'Nguyễn Minh Triết','098723456')
SELECT * FROM tacgia
INSERT INTO sach_tacgia VALUES ('T002', 'S0001')
INSERT INTO sach_tacgia VALUES ('T008', 'S0002')
INSERT INTO sach_tacgia VALUES ('T001', 'S0003')
INSERT INTO sach_tacgia VALUES ('T008', 'S0003')
INSERT INTO sach_tacgia VALUES ('T005', 'S0004')
INSERT INTO sach_tacgia VALUES ('T006', 'S0004')
INSERT INTO sach_tacgia VALUES ('T003', 'S0005')
INSERT INTO sach_tacgia VALUES ('T007', 'S0006')
INSERT INTO sach_tacgia VALUES ('T008', 'S0006')
INSERT INTO sach_tacgia VALUES ('T002', 'S0006')
SELECT * FROM sach_tacgia
Câu 2: Hãy viết các câu lệnh TSQL thực hiện các yêu cầu sau:
-
Nhập thông tin cuốn sách mới sau vào cơ sở dữ liệu sieuthisach:
Tên sách: Hệ quản trị cơ sở dữ liệu
Tác giả: Nguyễn Thị Kim Anh, Trần Hoài Nam và Nguyễn Thúc Hải
Ngày xuất bản: 23-7-2011
Nhà xuất bản ĐH Sư phạm Hà Nội (Đc: 136 Xuân Thủy – Cầu Giấy – Hà Nội)
Giá bán: 50.000 đ
Tác giả Nguyễn Thị Kim Anh có SĐT là 096734525
Tác giả Trần Hoài Nam có SĐT là 0452345334
Còn tác giả Nguyễn Thúc Hải đã lưu trong cơ sở dữ liệu.
-
Liệt kê các tên sách có giá lớn hơn 50.000 đông.
-
Hãy liệt kê các sách, sắp xếp theo nhà xuất bản. Các thông tin cần liệt kê gồm: tên sách, giá bán, tên nhà xuất bản.
-
Hãy thống kê số lượng sách có trong siêu thị theo nhà xuất bản
-
Liệt kê tên các cuốn sách được viết bởi nhiều hơn 2 tác giả.
-
Hãy viết thủ tục tên là sachxuatban liệt kê các sách viết bởi một tác giả nào đó. Thủ tục có tham số truyền vào là tên tác giả. Sau đó viết lệnh gọi thủ tục này để tìm các sách viết bởi ‘Nguyễn Thúc Hải’
-
Hãy viết một hàm tên là soluongtacgia với tham số là mã sách và trả về số lượng tác giả viết sách có mã sách đó. Sau đó thực hiện câu lệnh SQL gọi hàm này để đưa ra số lượng tác giả viết cuốn sách có tên ‘Hệ quản trị cơ sở dữ liệu’
-
Hãy viết một hàm có tên là DS_TG với tham số đưa vào là tên một cuốn sách và hàm trả về một bảng gòm 2 cột: cột 1 là tên các tác giả viết cuốn sách đó và cột 2 là số điện thoại của tác giả tương ứng. Hãy sử dụng hàm này để tìm ra danh sách tác giả của cuốn sách ‘Hệ quản trị cơ sở dữ liệu’
-
Hãy tạo khung nhìn (bảng ảo) tên là thongtinsach bao gồm các cột sau: masach, tensach, gia, tenNXB.
-
Siêu thị sách có một cái máy tính cho bạn đọc tra cứu. Máy tính này cần một tài khoản SQL server và tài khoản này chỉ có quyền đọc bảng ảo thongtinsach ở câu i, quyền đọc kết quả trả về của hàm DS_TG ở câu h, và quyền thực hiện thủ tục sachxuatban ở câu f. Hãy tạo loginID có tên là bandoc và cấp quyền cho loginID này theo yêu cầu của siêu thị.
-
(Trước khi thực hiện câu này thì nhớ ghi bài làm các câu trước vào file) Mở cửa sổ SQL Query Analyzer mới và login vào SQL server bằng tài khoản bandoc ở câu j và thực hiện lệnh TSQL để:
-
hiển thị các sách có chứa từ ‘Lập trình’
-
cho biết danh sách tác giả viết cuốn ‘Lập trình mạng’
-
cho biết những cuốn sách viết bởi tác giả ‘Phạm Văn An’
Chia sẻ với bạn bè của bạn: |