wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

CƠ SỞ DỮ LIỆU - BÀI 8

Total questions: 29

Worksheet time: 20mins

Name
Class
Date
1.

Mệnh đề nào được sử dụng để sắp xếp kết quả của câu truy vấn?

a)

GROUP BY

b)

ORDER BY

c)

WHERE

d)

HAVING

2.

Phép kết nối dữ liệu KHÔNG được sử dụng khi câu truy vấn chỉ liên quan đến:

a)

Ít nhất hai bảng dữ liệu

b)

Duy nhất một bảng dữ liệu

c)

Nhiều hơn hai bảng dữ liệu

d)

Hai bảng dữ liệu

3.

Câu lệnh SQL nào sau đây sắp xếp danh sách nhân viên trong bảng NhanVien theo cột TenNV theo thứ tự tăng dần?

a)

SELECT FROM NhanVien ORDER BY TenNV ASC

b)

SELECT * FROM NhanVien WHERE TenNV ASC

c)

SELECT * FROM NhanVien ORDER BY TenNV ASC

d)

SELECT * FROM NhanVien GROUP BY TenNV

4.

Cho bảng Hang (MaH, TenH, DVT, SoLuong).

Câu lệnh SQL nào sau đây sẽ lấy 4 cột MaH, TenH, DVT, SoLuong từ bảng Hang và sắp xếp theo TenH tăng dần? ( Hãy chọn 2 đáp án đúng )

a)

b)

c)

d)

5.

Câu truy vấn sau sắp xếp kết quả theo thứ tự nào?

a)

Giảm dần theo giới tính, sau đó tăng dần theo tên

b)

Tăng dần theo tên và giới tính

c)

Tăng dần theo giới tính, sau đó giảm dần theo tên

d)

Giảm dần theo tên và giới tính

6.

Bảng HoaDon (SoHD, Ngay, MaK) và Khach (MaK, TenK, DiaChi, SDT).

Câu lệnh SQL nào dưới đây sẽ lấy số hóa đơn, ngày lập và tên khách hàng bằng cách kết hợp 2 bảng qua cột MaK? ( Hãy chọn 3 đáp án đúng )

a)

b)

c)

d)

7.

Câu truy vấn nào cho biết mỗi loại phòng có tổng số bao nhiêu phòng?

a)

SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong WHERE LoaiP

b)

SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong

c)

SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong ORDER BY LoaiP

d)

SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong GROUP BY LoaiP

8.

Có cơ sở dữ liệu có bảng SINHVIEN (MaSV, HoTen, NgaySinh, GioiTinh, MaTinh) và bảng TINH (MaTinh, TenTinh).

Câu truy vấn nào cho biết mã sinh viên, họ tên và tên tỉnh của sinh viên đang sống ở Thái Nguyên?

a)

b)

c)

d)

9.

Câu truy vấn nào cho biết lương cao nhất của nhân viên trong mỗi phòng?

a)

SELECT MaP, TenP, MAX(Luong) FROM NhanVien GROUP BY MaP

b)

SELECT MaP, Luong FROM NhanVien GROUP BY MaP

c)

SELECT MaP, MAX(Luong) FROM NhanVien ORDER BY MaP

d)

SELECT MaP, MAX(Luong) FROM NhanVien GROUP BY MaP

10.

Câu truy vấn nào cho biết mỗi năm mỗi nhà xuất bản xuất bản bao nhiêu quyển sách?

a)

SELECT NXB, NamXB, COUNT() AS TongSo FROM Sach ORDER BY NamXB

b)

SELECT NXB, NamXB, SUM() AS TongSo FROM SACH GROUP BY NXB

c)

SELECT NXB, NamXB, SUM(SoLuong) AS TongSo FROM SACH GROUP BY NXB, NamXB

d)

SELECT NXB, NamXB, SUM(MaS) AS TongSo FROM SACH GROUP BY NXB, NamXB

11.

Mệnh đề GROUP BY trong SQL được sử dụng để:

a)

Sắp xếp các bản ghi

b)

Lọc các nhóm dữ liệu

c)

Kết nối hai bảng

d)

Nhóm các bản ghi theo một hoặc nhiều cột

12.

Câu truy vấn sau trả về những thành phần nào trong kết quả?

SELECT MaH, SUM(SoLuong * DonGia) AS TongDoanhThu FROM ChiTietHoaDon GROUP BY MaH HAVING SUM(SoLuong * DonGia) > 5000000;

Sinh viên chọn 1 phương án đúng nhất

a)

Tổng doanh thu được tính cho từng mã hàng có tổng doanh thu lớn hơn 5.000.000, đặt tên là TongDoanhThu

b)

Tổng số lượng (SoLuong) của các mã hàng có tổng doanh thu lớn hơn 5.000.000 sai

c)

Danh sách các hóa đơn có doanh thu từng hóa đơn trên 5.000.000

d)

Mã hàng (MaH) của các mã hàng có tổng doanh thu lớn hơn 5.000.000

13.

Câu truy vấn nào cho biết mã và tên khách hàng đã mua hàng có số hóa đơn là 'HD01'?

a)

SELECT Đã mua hàng FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'

b)

SELECT KH.MaK, TenK FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'

c)

SELECT KH FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'

d)

SELECT MaK, TenK FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'

14.

Mệnh đề HAVING được sử dụng để:

a)

Lọc dữ liệu theo từng hàng trong bảng

b)

Tìm kiếm dữ liệu

c)

Lọc dữ liệu theo từng bản ghi

d)

Lọc dữ liệu theo từng nhóm dữ liệu

15.

Câu lệnh SQL sau đây dùng để lấy số hóa đơn, ngày lập và tên khách hàng từ hai bảng:

SELECT HoaDon.SoHD, HoaDon.Ngay, Khach.TenK 

FROM HoaDon, Khach 

WHERE [ __1 __] = MaK = Khach.MaK;

Điền kết quả vào (1) là HoaDon là đúng hay sai?

a)

ĐÚNG

b)

SAI

16.

Cho câu lệnh SQL:

SELECT MaH, SUM(SoLuong) AS TongSoLuong 

FROM HANG [ 1 ]MaH; 

Điền từ khóa ORDER BY vào vị trí [1] sẽ giúp nhóm dữ liệu theo MaH và tính tổng số lượng cho từng mã hàng.

Phát biểu trên là đúng hay sai?

a)

ĐÚNG

b)

SAI

17.

Cơ sở dữ liệu có hai bảng:

Bảng Nha (nhà): gồm các cột MaN (mã ngôi nhà, khóa chính), DiaChi (địa chỉ), DienTich (diện tích). 

Bảng HDTN (hợp đồng thuê nhà): gồm các cột MaHD (mã hợp đồng, khóa chính), MaN (mã ngôi nhà, khóa ngoại tham chiếu Nha.MaN), MaK (mã khách hàng), NgayThue (ngày thuê).

Điền vào chỗ trống để hoàn thành câu lệnh SQL liệt kê mã ngôi nhà (MaN) của các ngôi nhà mà khách hàng có mã 'KH01' đã thuê: 

SELECT Nha.MaN 

FROM Nha, HDTN 

WHERE (a)   AND HDTN.MaK = 'KH01'; 

Đáp án là:

18.

Cơ sở dữ liệu có bảng:

DOCGIA (MaDG, TenDG, DiaChi, SDT) và bảng MUON_TRA (MaDG, MaS, NgayMuon, NgayTra). 

Hoàn thành câu truy vấn sau để tính tổng số lượng sách mà mỗi độc giả đã mượn.

Câu lệnh:

SELECT DOCGIA.MaDG, DOCGIA.TenDG, [……..] AS SoLuongSachMuon

FROM DOCGIA INNER JOIN MUON_TRA ON DOCGIA.MaDG = MUON_TRA.MaDG

GROUP BY DOCGIA.MaDG, DOCGIA.TenDG 

Đáp án là:

(a)  

19.

Kéo thả các truy vấn vào cột tương ứng theo chức năng:

a)

SELECT HoaDon.MaK SUM(HoaDon.TongTien) AS TongDoanhThu FROM HoaDon GROUP BY HoaDon.MaK HAVING SUM(HoaDon.TongTien) > 1000000

1.

Thống kê tổng tiền hóa đơn theo khách hà

b)

SELECT KhachHang.MaK, COUNT(HoaDon.SoHD) AS SoHoaDon FROM KhachHang INNER JOIN HoaDon ON KhachHang.MaK = HoaDon.MaK GROUP BY KhachHang.MaK

2.

Thống kê số hóa đơn theo khách hàng

c)

SELECT MaK, COUNT (MaHD) FROM KhachHang ORDER BY MaK

3.

20.

Cho bảng sau:

KHACH(MaK, TenK, DiaChi, SDT) và bảng HoaDon(SoHD, Ngay, MaK).

Hãy liệt kê các cột MaK, TenK, DiaChi, SDT từ bảng Khach, chỉ chọn những khách hàng có mã khách hàng trùng với mã khách trong HoaDon và có địa chỉ ở Thái Nguyên.

Hoàn thiện câu lệnh SQL bằng cách kéo đáp án đúng vào 3 chỗ trống:

SELECT Khach.MaK, Khach.TenK, Khach.DiaChi, Khach.SDT

FROM Khach, HoaDon

WHERE Khach.MaK = [ ​ (a)   ].MaK AND Khach.[ ​ (b)   ] = N[ ​ (c)   ]

Choose from the below words
HoaDon
DiaChi
“Thái Nguyên”
Khách
21.

Khi muốn sắp xếp kết quả truy vấn, mệnh đề nào được sử dụng và ưu tiên sắp xếp như thế nào?

a)

ORDER BY và thứ tự sắp xếp ưu tiên từ trên xuống dưới

b)

ORDER BY và thứ tự sắp xếp ưu tiên từ phải qua trái

c)

ORDER BY và thứ tự sắp xếp ưu tiên từ dưới lên trên

d)

ORDER BY và thứ tự sắp xếp ưu tiên từ trái qua phải

22.

Cho bảng Hang (MaH, TenH, DVT, SoLuong) và bảng ChiTietHoaDon (SoHD, MaH, SoLuong, DonGia).

Bạn cần lấy mã hàng, tên hàng và tổng số lượng bán, sau đó nhóm theo mã hàng, tên hàng và sắp xếp giảm dần theo tổng số lượng bán.

SELECT Hang.MaH, Hang.TenH, SUM(ChiTietHoaDon.SoLuong) AS TotalSold

FROM Hang INNER

JOIN ChiTietHoaDon ON Hang.MaH = ChiTietHoaDon.MaH [ ​ (a)   ] Hang.MaH, Hang.TenH [​ (b)   ] TotalSold DESC;

Choose from the below words
GROUP BY
ORDER BY
23.

Điền vào chỗ trống để hoàn thành câu lệnh SQL tính tổng số ngày thuê phòng cho mỗi phòng (tổng số ngày được tính bằng cách giữa NgayThue và NgayTra):

SELECT Phong.MaP, Phong.TenP, [ ... ](DATE DIFF(DAY, ThuePhong.NgayThue, ThuePhong.NgayTra)) AS TongSoNgayThue

FROM Phong INNER

JOIN ThuePhong ON Phong.MaP = ThuePhong.MaP GROUP BY [ ... ], Phong.TenP;

a)

Phong.MaP

b)

ThuePhong.MaHD

c)

SUM

d)

COUNT

24.

Cho bảng HoaDon (SoHD, Ngay, MaK) và Khach (MaK, TenK, DiaChi, SDT). Hãy lấy số hóa đơn, ngày lập và tên khách hàng, chỉ chọn những hóa đơn được lập sau ngày '2023-01-01'.

SELECT HoaDon.SoHD, HoaDon.Ngay, Khach.TenK
FROM HoaDon

[ ​ (a)   ] Khach ON HoaDon.MaK = Khach.MaK [ ​ (b)   ] HoaDon.Ngay [ ​ (c)   ] '2023-01-01';

Choose from the below words
INNER JOIN
WHERE
>
25.

Cho bảng LH (MaL, TenL) lưu thông tin lớp học. Bảng SV (MaSV, HoTenSV, NS, GT, MaL) lưu thông tin sinh viên. Câu truy vấn nào cho biết mã sinh viên và tên sinh viên của các sinh viên thuộc lớp học TenL = 'K18'?

a)

SELECT MaSV, HoTenSV, NS, GT, FROM LH, SV WHERE TenL = 'K18'

b)

SELECT MaSV, HoTenSV FROM LH, SV WHERE MaL.LH = MaL.SV AND TenL = 'K18'

c)

SELECT LH.* FROM LH, SV WHERE LH.MaL = SV.MaL AND TenL = 'K18'

d)

SELECT MaSV, HoTenSV FROM LH, SV WHERE LH.MaL = SV.MaL AND TenL = 'K18

26.

Câu truy vấn sau trả về những thành phần nào trong kết quả? ( Chọn 2 phương án )

SELECT MaK COUNT(SoHD) AS SoHoaDon FROM HoaDon GROUP BY MaK;

a)

Tên khách hàng (TenKH)

b)

Mã khách hàng (MaK)

c)

Tổng số hòa đơn của tất cả khách hàng (SoHoaDon)

d)

Tổng số hóa đơn của từng khách hàng (SoHoaDon)

27.

Một nhà phân tích dữ liệu cần viết các câu truy vấn SQL để tạo hai báo cáo sau:

1. Thống kê số lượt thuê cho từng phòng.

2. Tìm mã của những khách hàng có trên 3 hóa đơn.

Trong các câu lệnh dưới đây hãy chọn 2 câu lệnh thực hiện chính xác hai yêu cầu trên.

a)

SELECT MAP COUNT(*) FROM Thue Phong

b)

SELECT MAP COUNT(*) FROM Thu Phong GROUP BY MaP

c)

SELECT MaK COUNT (SoHD) FROM HoaDon GROUP BY MaK HAVING COUNT(SoHD) > 3

d)

SELECT MaK, COUNT(SoHD) FROM HoaDon WHERE COUNT(SoHD) > 3 GROUP BY MaK

28.

Câu lệnh sau cho biết mỗi địa chỉ có tổng số bao nhiêu thuê bao điện thoại?

a)

SELECT DC, COUNT(*) FROM R GROUP BY DC

b)

SELECT * FROM R GROUP BY DC

c)

SELECT DC, SUM() FROM R GROUP BY DC

d)

SELECT * FROM R GROUP BY DC, COUNT()

29.

Câu lệnh SQL nào sau đây sắp xếp danh sách sản phẩm trong bảng SanPham theo cột GiaBan theo thứ tự giảm dần?

a)

SELECT MaSP, TenSP, GiaBan FROM SanPham ORDER BY GiaBan DESC

b)

SELECT MaSP, TenSP, GiaBan FROM SanPham SORT BY GiaBan ASC

c)

SELECT MaSP, TenSP, GiaBan FROM SanPham WHERE GiaBan ORDER DESC

d)

SELECT MASP, TenSP, GiaBan FROM SanPham ORDER BY GiaBan DSEC