Tải bản đầy đủ (.doc) (18 trang)

Đề thi và đáp án Cơ sở dữ liệu - SQL ĐHBK

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (266.34 KB, 18 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM
ĐỀ THI KẾT THÚC HỌC PHẦN
Tên học phần: CƠ SỞ DỮ LIỆU
Mã học phần: ……………………
Hình thức thi: Tự luận
Đề số: 01
Thời gian làm bài: 60 phút (không kể thời gian phát đề)
Không được sử dụng tài liệu khi làm bài.
Cho hệ thống quản lý việc đăng ký thực hiện các thủ tục hành chính của công tại tại xã/phường có
lược đồ cơ sở dữ liệu quan hệ như sau:


Giải thích:
-

PK là các trường tham gia vào khóa chính của bảng
YEUCAUTHUTUC: Là bảng chứa thông tin các lần đăng ký thực hiện thủ tục hành chính của

-

công dân
CANBOTIEPNHAN: Là bảng chứa thông tin về cán bộ nhận xử lý yêu cầu của công dân
GIAYTOKEMTHEO: Là bảng chứa thông tin các loại giấy tờ được công dân nộp kèm theo khi
đăng ký thực hiện một thủ tục hành chính nào đó. (Vd: Khi đăng ký kết hôn thì công dân cần phải

-

nộp kèm theo bản photo hộ khẩu của 2 vợ chồng)
GIAYTOCANBOSUNG: Là bảng chứa thông tin các loại giấy tờ công dân cần phải bổ sung cho


cán bộ tiếp nhận. (Vd: Khi đăng ký việc chuyển quyền sử dụng đất, một công dân nào đó đã quên
gửi giấy chứng nhận độc thân cho cán bộ tiếp nhận. Khi đó, cán bộ tiếp nhận sẽ yêu cầu công

-

dân phải bổ sung giấy này và thông tin đó sẽ được lưu trữ trong bảng GIAYTOCANBOSUNG).
ThoiDiemTaoYeuCau: là thời điểm công dân tạo yêu cầu thực hiện một thủ tục hành chính
ThoiDiemHenTraKetQua: là thời điểm cán bộ tiếp nhận hẹn trả kết quả cho công dân
TrangThai: là trạng thái xử lý của cán bộ tiếp nhận đối với yêu cầu hiện tại (Bao gồm các giá trị:
Công dân mới đăng ký, Đã tiếp nhận xử lý, Đang yêu cầu bổ sung giấy tờ, Từ chối xử lý, Đã xử lý

-

xong hoặc Đã hủy yêu cầu)
ThoiHanCuoiCungDeBoSung: là hạn cuối để công dân bể sung hồ sơ cho cán bộ tiếp nhận
TinhTrangBoSung: là trạng thái của việc bổ sung hồ sơ (Bao gồm các giá trị: Đang yêu cầu bổ

-

sung, Đã được bổ sung, Đã hủy yêu cầu bổ sung hoặc Yêu cầu bổ sung lại)
ThoiDiemNhanGTKT: là thời điểm cán bộ tiếp nhận nhận được giấy tờ công dân gửi kèm theo
một yêu cầu thủ tục hành chính

Minh họa dữ liệu của các bảng như sau:
CONGDAN
MaCD (PK)
CD001
CD002
CD003


HoTenCD
Tran A1
Tran A2
Tran A3

DiaChi
10 Nguyen Du
11 Nguyen Du
12 Nguyen Du

ToDanPho
To 1
To 2
To 3

GioiTinh
Nam
Nu
Nam

HoTenChuHo
Nguyen Van1
Nguyen Van2
Nguyen Van3

QuanHeVoiChuHo
Ban than
Chong
Vo


2


LOAITHUTUC
MaLoaiTT (PK)
TT001
TT002

TenLoaiTT
Dang ky ket hon
Khai sinh

ThoiHanTraKetQuaToiDa(Ngay)
2
7

MucPhi (VNĐ)
15,000
20,000

CANBOTIEPNHAN
MaCBTN (PK)
CB001
CB002

HoTenCBTN
CBTN001
CBTN002

ChucVu

Nhan vien thoi vu
Can bo ho tich

YEUCAUTHUTUC
MaYeuCau

MaCD

NoiDungYeuCau

MaLoaiTT

ThoiDiemTaoYeuCau

ThoiDiemHenTraKetQua

(hh:mm dd/MM/YYYY)

(hh:mm dd/MM/YYYY)

MaCBTN

TrangThai

YC00001

CD001

Khai sinh cho con


TT002

7:50 15/02/2017

13:00 25/02/2017

CB001

Da tiep nhan

YC00002

CD002

Khai tu cho me

TT010

7:10 15/02/2017

NULL

CB002

xu ly
Cong dan
moi dang ky

GIAYTOKEMTHEO
MaYeuCau


TenGiayToKemTheo

(PK)
YC00001
YC00001

MoTaGiayToKemTheo

ThoiDiemNhanGTKT

(PK)
Giay dang ky ket hon

Giay dang ky ket hon cua

(hh:mm dd/MM/YYYY)
7:50 15/02/2017

Ho khau

cha me
Ho khau thuong tru

7:50 15/02/2017

GIAYTOCANBOSUNG
MaYeuCau

TenGiayToCanBoSung


MoTaGiayToCanBoSung

ThoiHanCuoiCungDeBoSung

TinhTrangBoSung

(PK)
YC00002
YC00002

(PK)
Chung minh nhan dan
Giay khai sinh

Ban sao CMND
Giay khai sinh nguoi khai

(hh:mm dd/MM/YYYY)
7:50 15/02/2017
7:50 15/03/2017

Dang yeu cau bo sung
Da duoc bo sung

Viết câu lệnh SQL để thực hiện các yêu cầu sau (mỗi yêu cầu chỉ được viết tối đa 1 câu lệnh SQL):
Câu 1: Xóa những công dân ở tổ dân phố 13. (1 điểm)
Câu 2: Cập nhật những loại thủ tục có thời hạn trả kết quả tối đa là 2 (ngày) thành 5 (ngày). (1 điểm)
Câu 3: Liệt kê những công dân có họ tên bắt đầu là ký tự 'Ng', kết thúc bằng ký tự 'g' và có độ dài tối đa
là 50 ký tự (kể cả ký tự trắng). (1 điểm)

Câu 4: Liệt kê những yêu cầu có thời điểm tạo nằm trong năm 2016 hoặc năm 2017. (1 điểm)

3


Câu 5: Liệt kê MaYeuCau, MaCD, NoiDungYeuCau, ThoiDiemTaoYeuCau, ThoiDiemHenTraKetQua,
TrangThai của tất cả những yêu cầu có trạng thái là "Da tiep nhan xu ly". Kết quả hiển thị được sắp xếp
giảm dần theo MaCD và tăng dần theo ThoiDiemHenTraKetQua. (1 điểm)
Câu 6: Liệt kê những cán bộ có chức vụ là "Can bo ho tich" và chưa từng tiếp nhận bất kỳ một yêu cầu
nào của công dân. (1 điểm)
Câu 7: Liệt kê họ tên của những công dân đang có trong hệ thống. Nếu họ tên trùng nhau thì chỉ hiển thị
1 lần. Sinh viên cần thực hiện yêu cầu này bằng 2 cách khác nhau (mỗi cách được tính 0.5 điểm). (1
điểm)
Câu 8: Liệt kê MaCD, HoTenCD, MaYeuCau, NoiDungYeuCau, TrangThai của tất cả công dân trong hệ
thống (nếu công dân nào chưa từng tạo một yêu cầu thì cũng phải hiển thị thông tin của công dân đó). (1
điểm)
Câu 9: Liệt kê những công dân là chủ hộ và đã từng tạo ít nhất 10 yêu cầu khác nhau trong nửa đầu
năm 2017. (1 điểm)
Câu 10: Liệt kê những công dân đã từng tạo yêu cầu có loại thủ tục là 'Chung nhan doc than' và chưa
từng tạo yêu cầu nào thuộc loại thủ tục có tên là 'Dang ky ket hon' trong tháng 10 năm 2017. (1 điểm)
…………………………………………………..
Tổng cộng có: 10 câu
Đà Nẵng, ngày ….. tháng …… năm 2017
GIẢNG VIÊN BIÊN SOẠN ĐỀ THI

TRƯỞNG BỘ MÔN

1. Trương Ngọc Châu – Khoa CNTT
2. Nguyễn Tấn Huy – Công ty FSoft


4


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM
ĐÁP ÁN THI KẾT THÚC HỌC PHẦN
Tên học phần: CƠ SỞ DỮ LIỆU
Mã học phần: ……………………
Câu hỏi
1
2
3
4

5

6

7

8

9

Hình thức thi: Tự luận

Đề số: 01

Nội dung

DELETE FROM CONGDAN WHERE ToDanPho = 'To 13'
UPDATE LOAITHUTUC SET ThoiHanTraKetQuaToiDa = 5
WHERE ThoiHanTraKetQuaToiDa = 2
SELECT MaCD FROM CONGDAN WHERE HoTenCD LIKE
'Ng%g' AND LEN(HoTenCD) <= 50
SELECT MaYeuCau FROM YEUCAUTHUTUC WHERE
YEAR(ThoiDiemTaoYeuCau)
=
2016
AND
YEAR(ThoiDiemTaoYeuCau) = 2017
SELECT MaYeuCau, MaCD, NoiDungYeuCau,
ThoiDiemTaoYeuCau, ThoiDiemHenTraKetQua, TrangThai FROM
YEUCAUTHUTUC WHERE TrangThai = ' Da tiep nhan xu ly'
ORDER BY MaCD DESC, ThoiDiemHenTraKetQua
SELECT MaCBTN FROM CANBOTIEPNHAN WHERE ChucVu
= 'Can bo ho tich' AND MaCBTN NOT IN (SELECT MaCBTN
FROM CANBOTIEPNHAN INNER JOIN YEUCAUTHUTUC
ON CANBOTIEPNHAN.MaCBTN =
YEUCAUTHUTUC.MaCBTN)
Cách 1: SELECT DISTINCT HoTenCD FROM CONG DAN
Cách 2: SELECT HoTenCD FROM CONG DAN GROUP BY
HoTenCD
SELECT CONGDAN.MaCD, HoTenCD, MaYeuCau,
NoiDungYeuCau, TrangThai FROM CONGDAN LEFT JOIN
YEUCAUTHUTUC ON CONGDAN.MaCD =
YEUCAUTHUTUC.MaCD
SELECT MaCD
FROM YEUCAUTHUTUC
WHERE YEAR(ThoiDiemTaoYeuCau) = 2017 AND

MONTH(ThoiDiemTaoYeuCau) <=6 AND MaCD IN (SELECT
MaCD FROM CONGDAN WHERE QuanHeVoiChuHo = 'Ban
than')
GROUP BY MaCD

Điểm
1 điểm
1 điểm
1 điểm
1 điểm

1 điểm

1 điểm

1 điểm

1 điểm

1 điểm

5


HAVING COUNT(MaYeuCau) >= 10

10

Hoặc:
(SELECT MaCD FROM CONGDAN WHERE QuanHeVoiChuHo

= 'Ban than')
INTERSECT
(SELECT MaCD
FROM YEUCAUTHUTUC
WHERE YEAR(ThoiDiemTaoYeuCau) = 2017 AND
MONTH(ThoiDiemTaoYeuCau) <=6
GROUP BY MaCD
HAVING COUNT(MaYeuCau) >= 10)
(SELECT MaCD FROM CONGDAN
INNER JOIN YEUCAUTHUTUC ON CONGDAN.MaCD =
YEUCAUTHUTUC.MaCD
INNER JOIN LOAITHUTUC ON YEUCAUTHUTUC.MaLoaiTT
= LOAITHUTUC.MaLoaiTT
WHERE TenLoaiTT = 'Chung nhan doc than')
EXCEPT
(SELECT MaCD FROM CONGDAN
INNER JOIN YEUCAUTHUTUC ON CONGDAN.MaCD =
YEUCAUTHUTUC.MaCD
INNER JOIN LOAITHUTUC ON YEUCAUTHUTUC.MaLoaiTT
= LOAITHUTUC.MaLoaiTT
WHERE TenLoaiTT = 'Dang ky ket hon' AND
YEAR(ThoiDiemTaoYeuCau) = 2017 AND MONTH
(ThoiDiemTaoYeuCau) = 10)

Đề thi có
tổng
cộng: 10
câu

1 điểm


10
điểm

Đà Nẵng, ngày ….. tháng …… năm 2017
GIẢNG VIÊN BIÊN SOẠN ĐỀ THI

TRƯỞNG BỘ MÔN

1. Trương Ngọc Châu – Khoa CNTT
2. Nguyễn Tấn Huy – Công ty FSoft

6


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM
ĐỀ THI KẾT THÚC HỌC PHẦN
Tên học phần: CƠ SỞ DỮ LIỆU
Mã học phần: ……………………
Hình thức thi: Tự luận
Đề số: 02
Thời gian làm bài: 60 phút (không kể thời gian phát đề)
Không được sử dụng tài liệu khi làm bài.
Cho hệ thống quản lý việc sử dụng dịch vụ taxi công nghệ (Grab Taxi) có lược đồ cơ sở dữ liệu
quan hệ như sau:

Giải thích:
-


PK là các trường tham gia vào khóa chính của bảng.
Mỗi chủ xe chỉ được đăng ký 1 xe để chạy (làm tài xế) Grab Taxi.
Mỗi chủ xe phải tham gia vào 1 hợp tác xã vận tải nào đó để Nhà nước có thể quản lý chủ xe.
BienSoXe: là số biển kiểm soát của xe mà chủ xe đang sử dụng để chạy Grab.
DiemDonKhach: là vị trí chủ xe đón khách - DiemTraKhach: là vị trí chủ xe trả khách.
SoTienGDThucTe: là số tiền thực tế khách hàng đã trả cho giao dịch (đã trừ khoản tiền khuyến
mãi nếu có)

Minh họa dữ liệu của các bảng như sau:
7


Viết câu lệnh SQL để thực hiện các yêu cầu sau (mỗi yêu cầu chỉ được viết tối đa 1 câu lệnh SQL):
8


Câu 1: Xóa hợp tác xã có địa chỉ là '123 Tuyet Tinh Coc'. (1 điểm)
Câu 2: Cập nhật những giao dịch có SoTienGDThucTe ít hơn 50000 VNĐ thành 50000 VNĐ. (1 điểm)
Câu 3: Liệt kê những giao dịch có DiemTraKhach kết thúc bằng chuỗi ký tự 'Da Nang' và có độ dài tối
thiểu là 20 ký tự (kể cả ký tự trắng). (1 điểm)
Câu 4: Liệt kê những giao dịch có thời gian giao dịch nằm trong tháng 12 năm 2016. (1 điểm)
Câu 5: Liệt kê MaChuXe, MaKH, ThoiGianGiaoDich, DiemDonKhach, DiemTraKhach của những giao
dịch có khuyến mãi với nội dung là 'Giam 30% cho khach di quang duong tren 100 km'. Kết quả hiển thị
được sắp xếp giảm dần theo MaKH và tăng dần theo DiemTraKhach. (1 điểm)
Câu 6: Liệt kê những khách hàng có số điện thoại bắt đầu bằng '088' và chưa từng giao dịch với chủ xe
nào thuộc hợp tác xã có tên là 'HTX Khong Gia Dinh'. (1 điểm)
Câu 7: Đếm số lượng họ tên khác nhau của tất cả khách hàng đang có trong hệ thống. (Nghĩa là nếu họ
tên nào trùng nhau thì chỉ được đếm 1 lần). Sinh viên cần thực hiện yêu cầu này bằng 2 cách khác nhau
(mỗi cách được tính 0.5 điểm). (1 điểm)

Câu 8: Liệt kê MaChuXe, HoTenChuXe, SoDT, BienSoXe, MaKH, ThoiGianGiaoDich trong hệ thống
(nếu chủ xe nào chưa từng giao dịch lần nào thì cũng phải hiển thị thông tin của chủ xe đó). (1 điểm)
Câu 9: Liệt kê những khách hàng đã từng giao dịch nhiều nhất 5 lần khác nhau với loại xe có tên là
'Xe 7 cho' trong nửa cuối năm 2016 (1 điểm)
Câu 10: Liệt kê những khách hàng đã từng giao dịch với chủ xe thuộc hợp tác xã có tên là 'HTX Tu do'
và chưa từng giao dịch với chủ xe sở hữu xe thuộc loại 'Xe 5 cho'. (1 điểm)
…………………………………………………..
Tổng cộng có: 10 câu
Đà Nẵng, ngày ….. tháng …… năm 2017
GIẢNG VIÊN BIÊN SOẠN ĐỀ THI

TRƯỞNG BỘ MÔN

1. Trương Ngọc Châu – Khoa CNTT
2. Nguyễn Tấn Huy – Công ty FSoft

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
9


BỘ MÔN: CÔNG NGHỆ PHẦN MỀM
ĐÁP ÁN THI KẾT THÚC HỌC PHẦN
Tên học phần: CƠ SỞ DỮ LIỆU
Mã học phần: ……………………
Câu hỏi
1
2
3
4


5

6

7

Hình thức thi: Tự luận

Đề số: 01

Nội dung
DELETE FROM HOPTACXA WHERE DiaChi = '123 Tuyet Tinh
Coc'
UPDATE GIAODICH SET SoTienGDThucTe = 50000 WHERE
SoTienGDThucTe < 50000
SELECT * FROM GIAODICH WHERE DiemTraKhach LIKE
'%Da Nang' AND LEN(DiemTraKhach) >= 20
SELECT * FROM GIAODICH WHERE
MONTH(ThoiGianGiaoDich) = 12 AND
YEAR(ThoiGianGiaoDich) = 2016
SELECT MaChuXe, MaKH, ThoiGianGiaoDich, DiemDonKhach,
DiemTraKhach
FROM GIAODICH INNER JOIN KHUYENMAI ON
GIAODICH.MaKhuyenMai = KHUYENMAI.MaKhuyenMai
WHERE NoiDungKM = ''Giam 30% cho khach di quang duong
tren 100 km'
ORDER BY MaKH DESC, DiemTraKhach
(SELECT MaKH
FROM KHACHHANG

WHERE SoDT LIKE '088%')
EXCEPT
(SELECT kh.MaKH
FROM KHACHHANG kh
INNER JOIN GIAODICH gd ON kh.MaKH = gd.MaKH
INNER JOIN CHUXE cx ON cx.MaChuXe = gd.MaChuXe
INNER JOIN HOPTACXA htx ON htx.MaHTX = cx.MaHTX
WHERE TenHTX = 'HTX Khong Gia Dinh')
Cách 1:
SELECT COUNT(HoTenKH) FROM
(SELECT DISTINCT HoTenKH FROM KHACHHANG) TEMP

Điểm
1 điểm
1 điểm
1 điểm
1 điểm

1 điểm

1 điểm

1 điểm

Cách 2:
SELECT COUNT(HoTenKH) FROM
(SELECT HoTenKH FROM KHACHHANG GROUP BY
HoTenKH) TEMP2
10



8

9

10

SELECT cx.MaChuXe, HoTenChuXe, SoDT, BienSoXe, MaKH,
ThoiGianGiaoDich
FROM CHUXE cx
LEFT OUTER JOIN GIAODICH gd ON cx.MaChuXe =
gd.MaChuXe
SELECT MaKH
FROM GIAODICH gd
INNER JOIN CHUXE cx ON gd.MaChuXe = cx.MaChuXe
INNER JOIN LOAIXE lx ON lx.MaLoaiXe = cx.MaLoaiXe
WHERE (ThoiGianGiaoDich BETWEEN '7/1/2016' AND
'12/31/2016')
AND MoTaLoaiXe = 'Xe 7 cho'
GROUP BY MaKH
HAVING count(MaKH) <= 5
(SELECT kh.MaKH
FROM GIAODICH gd
INNER JOIN CHUXE cx ON cx.MaChuXe = gd.MaChuXe
INNER JOIN HOPTACXA htx ON htx.MaHTX = cx.MaHTX
WHERE TenHTX = 'HTX Tu do')

1 điểm

1 điểm


1 điểm

EXCEPT
(SELECT MaKH
FROM GIAODICH gd
INNER JOIN CHUXE cx ON gd.MaChuXe = cx.MaChuXe
INNER JOIN LOAIXE lx ON lx.MaLoaiXe = cx.MaLoaiXe
WHERE MoTaLoaiXe = 'Xe 5 cho')
Đề thi có
tổng
cộng: 10
câu

10
điểm

Đà Nẵng, ngày ….. tháng …… năm 2017
GIẢNG VIÊN BIÊN SOẠN ĐỀ THI

TRƯỞNG BỘ MÔN

1. Trương Ngọc Châu – Khoa CNTT
2. Nguyễn Tấn Huy – Công ty FSoft

11


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN: CÔNG NGHỆ PHẦN MỀM
ĐỀ THI KẾT THÚC HỌC PHẦN
Tên học phần: CƠ SỞ DỮ LIỆU
Mã học phần: ……………………
Hình thức thi: Tự luận
Đề số: 03
Thời gian làm bài: 60 phút (không kể thời gian phát đề)
Không được sử dụng tài liệu khi làm bài.
Cho hệ thống quản lý việc tiếp nhận và xử lý các yêu cầu của Khách hàng tại phòng khám Nha khoa
Nhân Tâm có cơ sở dữ liệu như sau:

*Giải thích:
- Bảng KHACH_HANG dùng để lưu trữ thông tin của Khách hàng.
- Bảng NHAN_VIEN dùng để lưu trữ thông tin của các Nhân viên.
- Bảng YEU_CAU dùng để lưu trữ thông tin các lần đăng ký yêu cầu sử dụng dịch vụ nha khoa của
Khách hàng tại phòng khám
- Bảng LOAI_DICH_VU dùng để lưu trữ thông tin các loại dịch vụ nha khoa mà phòng khám cung cấp
- Bảng DICH_VU_CHI_TIET dùng để lưu trữ thông tin chi tiết các loại dịch vụ được cung cấp tại
phòng khám
- Bảng CHI_TIET_YEU_CAU dùng để lưu trữ thông tin yêu cầu sử dụng các dịch vụ nha khoa mà
Khách hàng đã và đang được điều trị tại phòng khám.
12


13


*Minh họa dữ liệu cho các bảng

Viết câu lệnh SQL để thực hiện các yêu cầu sau (mỗi yêu cầu chỉ được viết tối đa 1 câu lệnh SQL):

Câu 1: Xóa thông tin của những Nhân viên có địa chỉ là “Son Tra”. (1 điểm)
Câu 2: Cập nhật thông tin nghề nghiệp thành “Sinh vien” của những Khách hàng có năm sinh nhỏ hơn
năm 1995. (1 điểm)
Câu 3: Liệt kê những Khách hàng có tên khách hàng có ký tự bắt đầu là một trong các ký tự “N”, “K”
hoặc “T” và có độ dài ít nhất là 10 ký tự (kể cả ký tự trắng). (1 điểm)
Câu 4: Liệt kê MaYeuCau, MaKhachHang, TenKhachHang, NgheNghiep, MaNhanVienTiepNhan,
NgayTiepNhan của những khách hàng đã yêu cầu sử dụng dịch vụ nha khoa có ngày tiếp nhận nằm trong
năm 2016 và có giới tính là “Nam”. (1 điểm)

14


Câu 5: Liệt kê MaYeuCau, MaKhachHang, MaDichVuChiTiet, TenLoaiDichVu, HinhThucDieuTri,
TinhTrangDieuTri, NgayTaiKham, BacSiDieuTri của những yêu cầu có TenLoaiDichVu là “Nho rang”.
Kết quả hiển thị được sắp xếp tăng dần theo NgayTaiKham và giảm dần theo BacSiDieuTri. (1 điểm)
Câu 6: Liệt kê thông tin những Nhân viên có trình độ là “Trung cap” và chưa từng tiếp nhận yêu cầu lần
nào. (1 điểm)
Câu 7: Liệt kê DiaChi của tất cả những Khách hàng có trong hệ thống. Nếu địa chỉ nào trùng nhau thì
chỉ hiển thị 1 lần. Thí sinh cần thực hiện yêu cầu này bằng 2 cách khác nhau (mỗi cách được tính 0.5
điểm). (1 điểm)
Câu 8: Liệt kê MaKhachHang, TenKhachHang, SoDienThoai, MaYeuCau, TenLoaiDichVu,
TenDichVuChiTiet, TongPhiDieuTri (Tổng phí điều trị = Phí điều trị + Phí phụ thu), HinhThucDieuTri,
TinhTrangDieuTri, BacSiDieuTri của tất cả các Khách hàng có trong hệ thống. Kể cả những Khách hàng
chưa có yêu cầu nào cũng phải liệt kê ra. (1 điểm)
Câu 9: Liệt kê MaNhanVien, TenNhanVien của những Nhân viên có trình độ là “Cao dang” và từng tiếp
nhận yêu cầu cho 5 khách hàng khác nhau. Chỉ xét những yêu cầu có ngày tiếp nhận nằm trong năm
2016 hoặc 2017. (1 điểm)
Câu 10: Liệt kê MaKhachHang, TenKhachHang, NgaySinh, GioiTinh, DiaChi, SoDienThoai,
NgheNghiep của những Khách hàng chưa từng yêu cầu loại dịch vụ có tên là “Nho rang” và đã từng
được Nhân viên có vị trí là “Chuyen vien 1” tiếp nhận yêu cầu. (1 điểm)


…………………………………………………..
Tổng cộng có: 10 câu
Đà Nẵng, ngày ….. tháng …… năm 2017
GIẢNG VIÊN BIÊN SOẠN ĐỀ THI

TRƯỞNG BỘ MÔN

1. Trương Ngọc Châu – Khoa CNTT
2. Nguyễn Tấn Huy – Công ty FSoft

15


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM
ĐÁP ÁN THI KẾT THÚC HỌC PHẦN
Tên học phần: CƠ SỞ DỮ LIỆU
Mã học phần: ……………………
Câu hỏi

Hình thức thi: Tự luận

Đề số: 01

Nội dung

Điểm


1

DELETE FROM NHAN_VIEN WHERE DiaChi = 'Son Tra'

1 điểm

2

UPDATE KHACH_HANG

1 điểm

SET NgheNghiep = 'Sinh vien'
WHERE YEAR(NgaySinh) < '1995'

3

SELECT KHACH_HANG.*

1 điểm

FROM KHACH_HANG
WHERE TenKhachHang LIKE '[NKT]%' AND
LEN(TenKhachHang) >= 10

4

SELECT MaYeuCau, KHACH_HANG.MaKhachHang,
TenKhachHang, NgheNghiep, MaNhanVienTiepNhan,
NgayTiepNhan


1 điểm

FROM KHACH_HANG INNER JOIN YEU_CAU ON
KHACH_HANG.MaKhachHang = YEU_CAU.MaKhachHang INNER
JOIN NHAN_VIEN ON YEU_CAU.MaNhanVienTiepNhan =
NHAN_VIEN.MaNhanVien
WHERE YEAR(NgayTiepNhan)='2016' AND GioiTinh = 'Nam'

5

SELECT YEU_CAU.MaYeuCau, MaKhachHang,
DICH_VU_CHI_TIET.MaDichVuChiTiet, TenLoaiDichVu,
HinhThucDieuTri, TinhTrangDieuTri, NgayTaiKham,
BacSiDieuTri

1 điểm

FROM YEU_CAU INNER JOIN CHI_TIET_YEU_CAU ON
YEU_CAU.MaYeuCau = CHI_TIET_YEU_CAU.MaYeuCau INNER
JOIN DICH_VU_CHI_TIET ON
CHI_TIET_YEU_CAU.MaDichVuChiTiet =
DICH_VU_CHI_TIET.MaDichVuChiTiet INNER JOIN
LOAI_DICH_VU ON DICH_VU_CHI_TIET.LoaiDichVu =
LOAI_DICH_VU.LoaiDichVu
WHERE TenLoaiDichVu = 'Nho rang'
ORDER BY NgayTaiKham ASC, BacSiDieuTri DESC

6


SELECT NHAN_VIEN.*

1 điểm

FROM NHAN_VIEN
WHERE TrinhDo = 'Trung cap'
EXCEPT
SELECT NHAN_VIEN.*

16


FROM NHAN_VIEN INNER JOIN YEU_CAU ON
NHAN_VIEN.MaNhanVien = YEU_CAU.MaNhanVienTiepNhan

7

SELECT DISTINCT(DiaChi)

1 điểm

FROM KHACH_HANG
SELECT DiaChi
FROM KHACH_HANG
GROUP BY DiaChi

8

SELECT KHACH_HANG.MaKhachHang, TenKhachHang,
SoDienThoai, YEU_CAU.MaYeuCau, TenLoaiDichVu,

TenDichVuChiTiet, PhiDieuTri+PhiPhuThu AS
'TongPhiDieuTri', HinhThucDieuTri, TinhTrangDieuTri,
BacSiDieuTri

1 điểm

FROM KHACH_HANG LEFT JOIN YEU_CAU ON
KHACH_HANG.MaKhachHang = YEU_CAU.MaKhachHang LEFT
JOIN CHI_TIET_YEU_CAU ON YEU_CAU.MaYeuCau =
CHI_TIET_YEU_CAU.MaYeuCau LEFT JOIN DICH_VU_CHI_TIET
ON CHI_TIET_YEU_CAU.MaDichVuChiTiet =
DICH_VU_CHI_TIET.MaDichVuChiTiet LEFT JOIN
LOAI_DICH_VU ON DICH_VU_CHI_TIET.LoaiDichVu =
LOAI_DICH_VU.LoaiDichVu

9

SELECT NHAN_VIEN.MaNhanVien, TenNhanVien

1 điểm

FROM NHAN_VIEN INNER JOIN YEU_CAU ON
NHAN_VIEN.MaNhanVien = YEU_CAU.MaNhanVienTiepNhan
WHERE YEAR(NgayTiepNhan) IN ('2016','2017') AND
TrinhDo = 'Cao dang'
GROUP BY NHAN_VIEN.MaNhanVien, TenNhanVien
HAVING COUNT(DISTINCT(MaKhachHang))=5

10


SELECT KHACH_HANG.*

1 điểm

FROM KHACH_HANG
WHERE MaKhachHang NOT IN (SELECT MaKhachHang FROM
YEU_CAU INNER JOIN CHI_TIET_YEU_CAU ON
YEU_CAU.MaYeuCau = CHI_TIET_YEU_CAU.MaYeuCau INNER
JOIN DICH_VU_CHI_TIET =
CHI_TIET_YEU_CAU.MaDichVuChiTiet =
DICH_VU_CHI_TIET.MaDichVuChiTiet INNER JOIN
LOAI_DICH_VU ON DICH_VU_CHI_TIET.LoaiDichVu =
LOAI_DICH_VU.LoaiDichVu WHERE TenLoaiDichVu = 'Nho
rang')
INTERSECT
SELECT KHACH_HANG.*
FROM YEU_CAU INNER JOIN CHI_TIET_YEU_CAU ON
YEU_CAU.MaYeuCau = CHI_TIET_YEU_CAU.MaYeuCau INNER
JOIN DICH_VU_CHI_TIET =
CHI_TIET_YEU_CAU.MaDichVuChiTiet =
DICH_VU_CHI_TIET.MaDichVuChiTiet INNER JOIN NHAN_VIEN
ON YEU_CAU.MaNhanVienTiepNhan = NHAN_VIEN.MaNhanVien

17


WHERE ViTri = 'Chuyen vien 1'

Đề thi có
tổng

cộng: 10
câu

10
điểm

Đà Nẵng, ngày ….. tháng …… năm 2017
GIẢNG VIÊN BIÊN SOẠN ĐỀ THI

TRƯỞNG BỘ MÔN

1. Trương Ngọc Châu – Khoa CNTT
2. Nguyễn Tấn Huy – Công ty FSoft

18



×