Tải bản đầy đủ (.pdf) (13 trang)

Dropbox đề ôn SQL kết THÚC môn

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 (128.17 KB, 13 trang )

Đề 1
Câu 1: (3 điểm) Cơ sở dữ liệu quản lý sinh viên có chứa 3 table. Viết lệnh tạo các table với
các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là tự
chọn theo ngữ nghĩa.
SinhVien(MSSV, Lop, Ho, Ten, Ngaysinh, Nu)
Tân từ: Mỗi sinh viên có một mã số (MSSV) là số nguyên phân biệt, thuộc một lớp
(Lop), có họ (HO) và tên (Ten) sinh viên, ngày sinh (Ngaysinh), thuộc phái nữ
hay nam (Nu).
MonHoc(MSMon, TenMon)
Tân từ: Mỗi mơn học có một mã số (MSMon) là một số nguyên phân biệt, có tên môn
học (TenMon).
DiemThi(MSSV, MSMon, LanThi, Diem)
Tân từ: Mỗi sinh viên (MSSV) có thể học nhiều mơn (MSMon). Mỗi mơn học có thể
thi nhiều lần (LanThi), mỗi lần thi được đánh số thứ tự từ 1 trở đi và ghi nhận
điểm thi (Diem) của các lần thi đó.
Câu 2: (1 điểm) Khai báo bổ sung các ràng buộc sau:
a) Lần thi (LanThi) trong table DiemThi có giá trị mặc định là 1
b) Điểm thi (Diem) trong table DiemThi được chấm theo thang điểm 10

Câu 3: (2 điểm) Tạo View:
a) Tạo view vwLanThiCuoi dùng liêt kê danh sách lần thi cuối cùng của các sinh viên

gồm: Mã số sinh viên, mã số mơn học, lần thi cuối cùng của mơn học (ví dụ sinh
viên A thi mơn học C ba lần thì lần thi cuối cùng là 3).
b) Tạo view vwDiemThiCuoi dùng liêt kê danh sách sinh viên gồm: Mã số sinh viên,

mã số môn học, lần thi cuối cùng của môn học (ví dụ sinh viên A thi mơn học M
ba lần thì lần thi cuối cùng là 3) và điểm của lần thi cuối cùng đó.
Câu 4: (2 điểm) Tạo trigger Insert cho table DiemThi dùng điền tự động số thứ tự lần thi khi
thêm điểm thi một môn học của một sinh viên. Ví dụ sinh viên A đã thi mơn học M hai lần
thì lần thi mới thêm vào phải là 3.


Câu 5: (2 điểm) Viết thủ tục hoặc hàm liệt kê kết quả thi các môn của một sinh viên khi biết
mã số của sinh viên (MSSV) gồm các thông tin: mã số môn học, lần thi, điểm thi. Trong đó,
mã số sinh viên là giá trị input


Đề 2:
Câu 1: (3 điểm) Cơ sở dữ liệu quản lý các trận đấu bóng đá tại một sân vận động có chứa 3
table. Viết lệnh tạo các table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ.
Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa.
Doi(MSDoi, TenDoi, Phai)
Tân từ: Mỗi đội có 1 mã số (MSDoi) là một số nguyên phân biệt; có tên (TenDoi) và
thuộc phái nam hay nữ (Phai).
TranDau(MSTD, NgayTD, GioBD, GioKT)
Tân từ: Mỗi trận đấu có 1 mã số (MSTD) là một số nguyên phân biệt với những trận
đấu khác, diễn ra vào 1 ngày (NgayTD), bắt đầu ở một giờ (GioBD) và dự kiến
kết thúc tại một giờ (GioKT).
DoiThiDau(MSTD, MSDoi)
Tân từ: Lưu trữ danh sách các đội (MSDoi) tham gia thi đấu trong các trận đấu
(MSTD). Biết rằng, mỗi trận đấu là một cuộc gặp gỡ giữa 2 đội và cả 2 đội phải
thuộc cùng một phái.
Câu 2: (1 điểm) Viết lệnh khai báo bổ sung các ràng buộc sau:
a) Giờ bắt đầu thi đấu (GioTD) phải nhỏ hơn giờ kết thúc (GioKT) trận đấu.
b) Hai trận đấu trong table TranDau diễn ra trong cùng một ngày (NgayTD) thì

khơng bắt đầu ở cùng một giờ thi đấu (GioTD).
Câu 3: (2 điểm) Tạo View:
a) Tạo view vwDoiChuaThiDau dùng liêt kê danh sách các đội chưa có mã số đội

trong table DoiThiDau gồm: Mã số đội, tên đội, phái.
b) Tạo view vwSoTranDau dùng thống kê số trận đấu diễn ra trong từng ngày thi


đấu với các thông tin: Ngày thi đấu và số trận đấu trong ngày.
Câu 4: (2 điểm) Tạo insert trigger cho table DoiThiDau dùng kiểm tra ràng buộc mỗi trận
đấu chỉ là một cuộc gặp gỡ giữa 2 đội và cả 2 đội phải thuộc cùng một phái.
Câu 5: (2 điểm) Tạo thủ tục hoặc hàm hiển thị thông tin 2 đội tham gia trong một trận đấu
khi biết mã số trận đấu. Nếu mã trân đấu không có trong table DoiThiDau thì hiện thị thơng
báo lỗi. Trong đó, mã số trận đấu (MSTD) là giá trị input


Đề 3:
Câu 1: (3 điểm) Cơ sở dữ liệu quản lý hóa đơn bán hàng có chứa 3 table. Viết lệnh tạo các
table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các
Fields là tự chọn theo ngữ nghĩa.
1- MatHang(MSMH, TenMH, DonGia, SoTon)
Tân từ: Mỗi mặt hàng có một mã số (MSMH) là một số nguyên phân biệt, có tên mặt
hàng (TenMH), đơn giá (DonGia) bán mới nhất của mặt hàng đó và số lượng
hàng tồn kho (SoTon).
2- HoaDon(MSHD, NgayLap)
Tân từ: Mỗi hóa đơn có một mã số phân biệt (MSHD), ngày lập hóa đơn (NgayLap)
3- CTHD(MSHD, MSMH, SoLuong, DonGiaHD)
Tân từ: Mỗi hóa đơn (MSHD) ghi một hoặc nhiều mặt hàng (MSMH) cùng với số
lượng (SoLuong) và đơn giá bán tại thời điểm ghi hóa đơn (DonGiaHD).
Câu 2: (1 điểm) Khai báo bổ sung các ràng buộc sau:
a) Số tồn (SoTon) trong table MatHang có giá trị mặc định (Default) bằng 0.
b) Tên mặt hàng trong table MatHang có giá trị phân biệt giữa các mặt hàng.
Câu 3: (2 điểm) Tạo View:
a) Tạo view “vwTienHD” dùng hiển thị tiền bán trên từng hóa đơn gồm các thơng

tin: mã số hóa đơn, ngày lập, tiền hóa đơn bằng tổng tiền bán từng mặt hàng ghi
trên mỗi hóa đơn.

b) Tạo view “vwHangKhongBanDuoc” dùng liêt kê danh sách các mặt hàng không
bán được trong tháng hiện hành.
Câu 4: (2 điểm) Xây dựng Insert trigger cho CTHD thực hiện yêu cầu: khi thêm một chi
tiết hóa đơn phải cập nhật lại số lượng tồn (SoTon) của mặt hàng tương ứng.
Câu 5: (2 điểm) Viết thủ tục hoặc hàm nhận 2 giá trị input kiểu số nguyên là tháng và năm.
Hãy liệt kê doanh thu của từng mặt hàng gồm các thông tin: mã số mặt hàng, doanh thu mặt
hàng trong :
a) Một năm nếu tháng là Null và năm khác Null
b) Một tháng nếu tháng và năm khác Null


Đề 4:
Câu 1: (3 điểm) Cơ sở dữ liệu quản lý việc mượn trả sách có chứa 3 table. Viết lệnh tạo các
table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các
Fields là tự chọn theo ngữ nghĩa.
1- Sach(MaSach, TenSach, SoLuong, SoDaMuon)
Tân từ: Mỗi tựa sách có một mã số (MaSach) là một số nguyên phân biệt, có tên sách
(TenSach), số lượng (SoLuong), và số sách hiện đã cho mượn (SoDaMuon).
2- DocGia(MaDG, TenDG)
Tân từ: Mỗi đọc giả có một mã số đọc giả (MaDG) là một số nguyên phân biệt, có tên
đọc giả (TenDG).
3- PhieuMuon(MaDG, NgayMuon, MaSach, NgayTra)
Tân từ: Mỗi ngày mỗi đọc giả chỉ được mượn một quyển sách. Khi đọc giả mượn sách
cần ghi nhận mã đọc giả (MaDG), ngày mượn (NgayMuon), mã sách
(MaSach), ngày trả sách (NgayTra). Ngày trả sách là Null khi chưa trả sách.
Câu 2: (1 điểm) Khai báo bổ sung các ràng buộc sau:
a) Số lượng sách (SoLuong) trong table Sach không nhỏ hơn số sách đã mượn

(SoDaMuon)
b) Ngày mượn sách (NgayMuon) trong table PhieuMuon có giá trị mặc định là ngày


hiện hành
Câu 3: (2 điểm) Tạo View:
a) Tạo view “vwHetSach” dùng liêt kê các sách có số lượng sách (SoLuong) bằng với

số lượng sách đã cho mượn (SoDaMuon) gồm các thông tin: Mã sách, tên sách.
b) Tạo view “vwChuaTraSach” dùng hiển thị danh sách các đọc giả chưa trả sách (có

ngày trả là rổng) gồm các thông tin: mã đọc giả, tên đọc giả, ngày mượn, tên sách
đã mượn.
Câu 4: (2 điểm) Tạo update trigger trên table PhieuMuon thực hiện yêu cầu sau: Khi sửa
ngày trả của một phiếu mượn từ giá trị Null sang một giá trị khác Null thì phải giảm số lượng
sách đã mượn của tựa sách tương ứng trên table Sach, ngược lại nếu sửa ngày trả từ một giá
trị khác Null sang giá trị Null thì phải tăng số lượng sách đã mượn của tựa sách tương ứng
trên table Sach.
Câu 5: (2 điểm) Tao thủ tục hoặc hàm trả về số sách cịn có thể cho mượn (SoLuong –
SoDaMuon) của một mã sách nào đó. Trong đó, mã sách là giá trị input. Hiển thị thông báo
lỗi nếu mã sách không tồn tại trong table Sach.


Đề 5:
Câu 1: (3 điểm) Cơ sở dữ liệu quản lý lương hành chánh sự nghiệp có chứa 3 table. Viết
lệnh tạo các table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ
liệu của các Fields là tự chọn theo ngữ nghĩa.
1- NgachLuong(MSNgach, MoTa)
Tân từ: Hệ thống lương hành chánh gồm nhiều ngạch, mỗi ngạch lương có một mã số
(MSNgach) là một số nguyên phân biệt, mục mô tả (MoTa) dùng chỉ định nhân
viên thực hiện cơng việc nào, bằng cấp nào thì thuộc ngạch lương này.
2- DMNgachBac(MSNgach, Bac, HSLuong)
Tân từ: Mỗi ngạch lương (MSNgach) có nhiều bậc lương (Bac). Mỗi bậc lương là một

số nguyên có giá trị từ 1 trở đi phân biệt trong cùng một ngạch lương. Mỗi bậc
trong một ngạch lương có một hệ số lương (HSLuong).
3- NhanVien(MSNV, Ho, Ten, MSNgach, Bac, NgayNLCC)
Tân từ: Mỗi nhân viên có một mã số (MSNV) là một số nguyên phân biệt, có họ (Ho),
tên (Ten), thuộc ngạch lương (MSNgach), bậc lương (Bac) và ngày nâng lương
cuối cùng (NgayNLCC).
Câu 2: (1 điểm) Khai báo bổ sung các ràng buộc sau:
a) Trong table DMNgachBac, Hệ số lương (HSLuong) phải phân biệt trong cùng

một ngạch lương (MSNgach).
b) Bậc lương (Bac) trong table NhanVien có giá trị mặc định (Default) bằng 1.

Câu 3: (2 điểm) Tạo View:
a) Tạo view vwHSLuong dùng liêt kê hệ số lương của mỗi nhân viên gồm các thông

tin: mã số nhân viên, mã số ngạch, bậc, hệ số lương.
b) Tạo view vwNangLuong dùng liệt kê nhân viên có số tháng tính từ ngày nâng

lương cuối cùng (NgayNLCC) đến ngày hiện hành có giá trị không nhỏ hơn 24
tháng.
Câu 4: (2 điểm) Tạo update trigger cho table NhanVien để kiểm tra ràng buộc: Khi nâng bậc
lương (Bac) của một nhân viên thì bậc lương mới không lớn hơn bậc lương cao nhất trong
ngạch lương của nhân viên (ví dụ, ngạch lương mã số 15113 có số thứ tự bậc lương từ 1 đến
10 thì bậc lương mới của nhân viên có mã ngạch 15113 không đượt lớn hơn 10).
Câu 5: (2 điểm) Viết thủ tục hay hàm trả về danh sách nhân viên đã được nâng lương trong
một năm (nghĩa là có ngày nâng lương cuối cùng thuộc năm tìm kiếm). Trong đó, năm là một
giá trị Input kiểu số nguyên. Nếu năm là Null thì trả về danh sách nhân viên đã được nâng
lương trong năm hiện hành.



Đề 6:
Câu 1: (3 điểm) Cơ sở dữ liệu địa lý Việt Nam có chứa 3 table. Viết lệnh tạo các table với
các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là
tự chọn theo ngữ nghĩa.
1- Tinh(MSTinh, TenTinh, DienTich, DanSo, TinhBG)

Tân từ: Mỗi tỉnh có một mã tỉnh (MSTinh) là một số ngun phân biệt, có tên tỉnh
(TenTinh), diện tích (DienTich), dân số (DanSo) và là tỉnh biên giới hay
không là tỉnh biên giới (TinhBG).
2- BienGioi(MSTinh, TenNuoc)

Tân từ : Lưu trữ danh sách các tỉnh (MSTinh) biên giới giáp ranh với một nước khác
(TenNuoc)
3- LangGieng(MsTinh, MSTinhLG)

Tân từ : Mỗi tỉnh (MSTinh) giáp ranh với 1 hay nhiều tỉnh láng giềng (MSTinhLG)
Câu 2: (1 điểm) Khai báo bổ sung các ràng buộc sau:
a) Trong table LangGieng, mã tỉnh phải khác mã tỉnh láng giềng.
b) Tên tỉnh trong table Tinh có giá trị phân biệt giữa các tỉnh.

Câu 3: (2 điểm) Tạo View:
a) Tạo view vwTinhLon dùng liêt kê danh sách các tỉnh có diện tích lớn hơn diện

tích các tỉnh láng giềng của tỉnh đó.
b) Tạo view vwSoNuocGiapRanh dùng thống kê số nước giáp ranh của các tỉnh biên

giới với các thông tin: mã tỉnh, tên tỉnh, số nước giáp ranh với tỉnh đó.
Câu 4: (2 điểm) Tạo Insert trigger cho table BienGioi để thực hiện yêu cầu sau: Khi thêm
mẫu tin trong table BienGioi thì cập nhật giá trị 1 cho thuộc tính TinhBG trong table Tinh
của tỉnh có mã số tỉnh (MSTinh) được thêm trong table BienGioi.

Câu 5: (2 điểm) Viết thủ tục hoặc hàm dùng liệt kê thông tin các tỉnh láng giềng của một
tỉnh khi biết mã tỉnh. Trong đó, mã tỉnh là giá trị input. Thơng tin các tỉnh láng giềng cần
hiển thị gồm: số thứ tự, mã tỉnh, tên tỉnh láng giềng. Nếu mã tỉnh không tồn tại thì hiện
thơng báo lỗi.


Đề 7:
Câu 1: (3 điểm) Cơ sở dữ liệu quản lý thi có chứa 3 table. Viết lệnh tạo các table với các
ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là tự
chọn theo ngữ nghĩa.
- ThiSinh(MSTS, Ho, Ten, Ngaysinh, SBD, PhongThi)
Tân từ: Mỗi thí sinh có một mã số (MSTS) là số nguyên phân biệt, có họ (HO) và tên (Ten)
sinh viên, ngày sinh (Ngaysinh), số báo danh (SBD), thuộc một phịng thi (PhongThi).
- MonThi(MSMon, TenMon)
Tân từ: Mỗi mơn thi có một mã số (MSMon) là một số nguyên phân biệt, có tên mơn thi
(TenMon).
- DiemMonThi(MSTS, MSMon, DiemThi)
Tân từ: Ở mỗi mơn thi (MSMon) thí sinh (MSTS) có một điểm thi (DiemThi).
Câu 2: (1 điểm) Khai báo bổ sung các ràng buộc sau:
a) Mỗi thí sinh trong table ThiSinh có một số báo danh (SBD) phân biệt.
b) Điểm thi (DiemThi) trong table DiemMonThi có giá trị từ 0 đến 10.
Câu 3: (2 điểm) Tạo View:
a) Tạo view vwBoThi dung liệt kê danh sách thí sinh bỏ thi. (khơng có trong table
DiemMonThi).
b) Tạo view vwKetQuaThi dùng liệt kê tổng điểm thi các mơn của các thí sinh gồm : Số báo
danh, họ, tên. ngày sinh, phòng thi, tổng điểm thi. Sắp thứ tự ưu tiên theo phịng thi, sau đó
là số báo danh.
Câu 4: (2 điểm) Tạo update trigger cho table ThiSinh để kiểm tra ràng buộc : Khi chuyển
một thí sinh sang phịng thi khác (sửa PhongThi của thí sinh) thí số thí sinh của phịng thi
chuyển đến khơng được q 25 thí sinh.

Câu 5: (2 điểm) Viết thủ tục hoặc hàm sử dụng để điền số báo danh tự động (SBD) từ 1 trở
đi theo thứ tự tên và họ.


Đề 8:
Câu 1: Cơ sở dữ liệu quản lý kết quả học tập của học sinh có chứa 3 table. Viết lệnh tạo các
table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các
Fields là tự chọn theo ngữ nghĩa.
1- HocSinh(MSHS, Ho, Ten, TenLop, STTSoDiem)

Tân từ: Mỗi học sinh có một mã số (MSHS) là một số nguyên phân biệt, có họ (Ho),
tên (Ten), học ở một lớp (TenLop) và có số thứ tự học sinh ghi trong sổ điểm
lớn của lớp (STTSoDiem).
2- MonHoc(MSMon, TenMon, HeSoMon)

Tân từ: Mỗi mơn học có mã số là số ngun phân biệt (MSMon). Có tên mơn học
(TenMon) và hệ số mơn học (HeSoMon) dùng để tính điểm trung bình các
mơn của một học sinh.
3- DiemTBMCN(MSHS, MSMon, DTBMon)

Tân từ: Ở mỗi môn học (MSMon), mỗi học sinh (MSHS) có một điểm trung bình cả
năm của mơn học đó (DTBMon).
Câu 2: Khai báo bổ sung các ràng buộc sau:
a) Mỗi mơn học có tên mơn học (TenMon) phân biệt.
b) Điểm trung bình mơn (DTBMon) có giá trị từ 0 đến 10
Câu 3: Tạo View:
a) Tạo view vwDTBCacMon dùng liêt kê điểm trung bình các mơn của các học sinh
gồm: Mã số học sinh, điểm trung bình các mơn. Trong đó, điểm trung bình các
mơn của một học sinh bằng tổng điểm trung bình mơn (DTBMon) của học sinh
đó chia cho tổng hệ số các môn học (HeSoMon)

b) Tạo view vwThoiHoc dùng liêt kê danh sách học sinh không tồn tại trong table
DiemTBMCN.
Câu 4: Tạo Insert trigger cho table HocSinh để thực hiện yêu cầu sau: Khi thêm một học
sinh mới vào một lớp thì cập nhật tự động số thứ tự của học sinh đó bằng số thứ tự lớn nhất
hiện có trong lớp cộng thêm 1.
Câu 5: Viết thủ tục hoặc hàm để điền số thứ tự sổ điểm (STTSoDiem) tự động từ 1 trở đi
theo thứ tự tên và họ của các học sinh trong một lớp. Trong đó, tên lớp là giá trị input.


Đề 9:
Câu 1: Cơ sở dữ liệu quản lý lương sản phẩm có chứa 3 table. Viết lệnh tạo các table với
các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là
tự chọn theo ngữ nghĩa.
1- NhanVien(MaNV, Ho, Ten, LoaiNV)
Tân từ: Mỗi nhân viên có một mã số (MaNV) là một số nguyên phân biệt, có họ (Ho)
và tên (Ten) và thuộc một trong 2 loại (LoaiNV): nhân viên hành chánh có
LoaiNV = 0 và cơng nhân sản xuất có LoaiNV = 1.
2- SanPham(MaSP, TenSP, DonGiaSX)
Tân từ: Mỗi sản phẩm có một mã số là số nguyên phân biệt (MaSP), có tên (TenSP)
và có đơn giá sản xuất một sản phẩm (DonGiaSX) dùng tính lương sản xuất
của cơng nhân.
3- KQSX(MaNV, NgaySX, MaSP, SoLuong)
Tân từ: Mỗi công nhân sản xuất (MaNV) trong một ngày (NgaySX) chỉ sản xuất 1
loại sản phẩm (MaSP) với số lượng sản xuất (SoLuong) được ghi nhận để trả
lương cho công nhân sản xuất.
Câu 2: Khai báo bổ sung các ràng buộc sau:
a) Tên sản phẩm (TenSP) trong table SanPham có giá trị phân biệt giữa các sản phẩm.
b) NgaySX trong table KQSX có giá trị mặc định là ngày hiện hành.

Câu 3: Tạo View:

a) Tạo view vwKQSX dùng liêt kê kết quả sản xuất trong ngày hiện hành của mỗi công
nhân sản xuất gồm các thông tin: mã số nhân viên, mã số sản phẩm, số lượng.
b) Tạo view vwLuongSX dùng liệt kê tiền lương phải trả trong tháng hiện hành của mỗi
công nhân sản xuất, gồm các thông tin: mã số nhân viên, lương sản xuất trong tháng.
Câu 4: Tạo Insert trigger cho table KQSX để kiểm tra ràng buộc: Khi thêm một mẫu tin
mới trong KQSX thì MaNV phải là cơng nhân sản xuất (có LoaiNV=1). Nếu khơng là cơng
nhân sản xuất thì khơng cho lưu mẫu tin mới.
Câu 5: Viết thủ tục hay hàm, có tham số input nhận giá trị tháng và năm, hiển trị bảng
lương tháng của các công nhân bao gồm: MaNV, Họ, Tên, Lương sản phẩm. Nếu tháng
hoặc năm là Null hoặc tháng khơng hợp lệ thì return về giá trị 1.


Đề 10:
Câu 1: Cơ sở dữ liệu quản lý mẫu giáo có chứa 3 table. Viết lệnh tạo các table với các ràng
buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là tự chọn
theo ngữ nghĩa.
1- CapHoc(MaCH, TenCH)
Tân từ: Mỗi cấp học một mã số (MaCH) kiểu số ngun là khóa chính của bảng, có
tên cấp học (TenCH) như: mầm, chồi hay lá.
2- GiaoVien(MaGV, HoTen, NgaySinh, LoaiGV)
Tân từ: Mỗi giáo viên có một mã số kiểu số ngun là khóa chính của bảng, có họ
tên, ngày sinh và thuộc một trong 2 loại (LoaiGV): Dạy học (LoạiGV=0) hay
Bảo mẫu phụ trách ăn uống (LoaiGV=1).
3- LopHoc(MaCH, STTLop, MaGVDH, MaGVBM)
Tân từ: Mỗi lớp học thuộc một cấp học (MaCH) có một số thứ tự lớp (STTLop) phân
biệt trong cùng cấp học. Mỗi lớp có một giáo viên dạy học (MaGVDH) và
một giáo viên bảo mẫu (MaGVBM) là các khóa ngoại tham chiếu đến MaGV
trong table GiaoVien.
Câu 2: Dùng lệnh Alter Table khai báo bổ sung các ràng buộc sau:
a) MaGVDH trong table LopHoc có giá trị phân biệt giữa các lớp học.

b) LoaiGV trong table GiaoVien có giá trị mặc định là 0.

Câu 3: Tạo View:
a) Tạo view vwKiemTraPCGVDH dùng liệt kê danh sách giáo viên dạy học
(LoaiGV=0) chưa được phân công trong table LopHoc gồm các thông tin: MaGV,
HoTen.
b) Tạo view vwPhanCong dùng liêt kê danh sách giáo viên gồm các thông tin: mã số
giáo viên, họ tên, loại giáo viên, mã cấp học, số thứ tự lớp được phân công.
Câu 4: Tạo Update trigger cho table GiaoVien để hỗ trợ công việc: Khi sửa MaGV trong
table GiaoVien thì cập nhật lại mã giáo viên tương ứng ở cột MaGVDH hay MaGVBM
trong table LopHoc.
Câu 5: Viết thủ tục hay hàm, có tham số input nhận giá trị là mã số giáo viên, hiển thị mã
cấp học và số thứ tự lớp được phân công. Hiển thị thơng báo lỗi nếu giáo viên đó chưa được
phân công trong table LopHoc


Đề 11:
Câu 1: Cơ sở dữ liệu quản lý đặt và giao hàng của một nhà cung cấp có chứa 3 table. Viết
lệnh tạo các table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ
liệu của các Fields là tự chọn theo ngữ nghĩa.
1- MatHang(MSMH, TenMH, DonGia)
Tân từ: Mỗi mặt hàng có một mã số là số nguyên phân biệt (MSMH), có tên mặt
hàng (TenMH), đơn giá bán mới nhất của mặt hàng đó (DonGia).
2- DonDatHang(MSDH, MSMH, SLDat, DonGiaDH, NgayDH, KhachHang)
Tân từ: Mỗi đơn đặt hàng có một mã số nguyên tự động điền với giá trị phân biệt
(MSDH), có ngày đặt hàng (NgayDH) và chỉ ghi một mặt hàng (MSMH) với
số lượng cần mua (SLDat) và đơn giá (DonGiaDH) đã thỏa thuận với khách
hàng, cùng với thông tin khách hàng (KhachHang)
3- PhieuGiaoHang(MSPG, MSDH, NgayGH, SLGiao)
Tân từ: Mỗi đơn đặt hàng có thể giao nhiều lần, mỗi lần giao hàng có một phiếu giao

được lập. Mỗi phiếu giao cho một đơn đặt hàng (MSDH) có một mã số
nguyên tự động điền (MSPG) với giá trị phân biệt, có ngày giao hàng
(NgayGH) và số lượng hàng được giao (SLGiao).
Câu 2: Khai báo bổ sung các ràng buộc sau:
a) Số lượng đặt hàng (SLDat) trong table MatHang có giá trị dương.
b) Tên mặt hàng (TenMH) là có giá trị phân biệt giữa các mặt hàng.
Câu 3: Tạo View:
a) Tạo view “vwGiaoHang” dùng tổng hợp số lượng hàng đã giao cho từng đơn đặt
hàng gồm các cột: MSDH và tổng số lượng hàng đã giao (TongDaGiao).
b) Tạo view “vwDDHChuaGiao” dùng liệt kê các đơn đặt hàng chưa có phiếu giao
hàng.
Câu 4: Xây dựng trigger Insert cho table PhieuGiaoHang nhằm kiểm tra ràng buộc: khi
thêm mới một phiếu giao hàng thì ngày giao hàng (NgayGH) khơng nhỏ hơn ngày
đặt hàng (NgayDH) và số lượng giao (SLGiao) không lớn hơn số lượng đã đặt
(SLDat) của đơn đặt hàng được giao.
Câu 5: Viết thủ tục hoặc hàm trả về tổng số lượng hàng đã giao cho một đơn đặt hàng.
Trong đó, mã số đặt hàng (MSDH) là giá trị input.


Đề 12:
Câu 1: Cơ sở dữ liệu quản lý sinh viên có chứa 4 table. Viết lệnh tạo các table với các ràng
buộc khóa chính, khóa ngoại được nêu trong tân từ. Kiểu dữ liệu của các Fields là tự chọn
theo ngữ nghĩa.
Department(Name, Number, Manager, ManagerStartDate)
Tân từ: Bảng Department lữu trữ thông tin về các bộ phân trực thuộc như tên (Name),
mã số (Number) để phân biệt các bộ phận, nhân viên quản lý (Manager), ngày bắt đầu
phụ trách của quản lý (ManagerStartDate).
Project (Name, Number, Location, ControllingDepartment)
Tân từ: Bảng Project lữu trữ các thông tin như tên (Name), mã số project (Number), địa
điểm (Location), bộ phận quản lý project (ControllingDepartment). Trong đó các thuộc

tính Name và Number lữu trữ các giá trị phân biệt.
Employee(Name, SSN, Sex, Address, Salary, Supervisor, Works_On)
Tân từ: Bảng Employee lưu trữ thông tin nhân viên tên (Name), mã số phân biệt (SSN),
giới tính (Sex), địa chỉ (Address), lương (Salary), ngày sinh (BirthDate), thuộc bộ phận
(Department), nhân viên quản lý (Supervisor) và thời gian làm việc (Works_On)
Dependent(Employee, DependentName, Sex, Relationship)
Tân từ: Bảng Dependent lữu trữ thông tin người thân của nhân viên. Trong đó, lưu trữ
tên người thân (DependentName), giới tính (Sex), ngày sinh (BirthDate) và quan hệ
(Relationship) với nhân viên (Employee).
Câu 2: Khai báo bổ sung các ràng buộc sau:
a) Sex trong table Employee có giá trị mặc định là Nam

b) Relationship trong table Dependent có các giá trị như: cha, mẹ, anh, chị, em.
Câu 3: Tạo View:
a) Tạo view vwSalary cho biết tổng số lương của nhân viên (Employee), lương cao
nhất, thấp nhất và trung bình.
b) Tạo view vwDeptInfo cho biết tên bộ phận, tổng số nhân viên và tổng số lương
của nhân viên thuộc bộ phận đó.
Câu 4: Giả sử bảng Department có thêm thuộc tính ToTalSal cho biết tổng thu nhập của các
nhân viên thuộc bộ phân. Viết trigger ràng buộc khi thêm một nhân viên mới thì tổng thu
nhập của bộ phận nhân viên vào làm tự cập nhật.
Câu 5: Viết thủ tục cho biết thông tin về các dự án (project), tên nhân viên quản lý mà một
bộ phận phụ trách. Trong đó, tên dự án là giá trị input.




×