Font size
WorksheetsCƠ SỞ DỮ LIỆU - BÀI 8
Total questions: 29
Worksheet time: 20mins
Mệnh đề nào được sử dụng để sắp xếp kết quả của câu truy vấn?
GROUP BY
ORDER BY
WHERE
HAVING
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:
Ít nhất hai bảng dữ liệu
Duy nhất một bảng dữ liệu
Nhiều hơn hai bảng dữ liệu
Hai bảng dữ liệu
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?
SELECT FROM NhanVien ORDER BY TenNV ASC
SELECT * FROM NhanVien WHERE TenNV ASC
SELECT * FROM NhanVien ORDER BY TenNV ASC
SELECT * FROM NhanVien GROUP BY TenNV
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 )
Câu truy vấn sau sắp xếp kết quả theo thứ tự nào?
Giảm dần theo giới tính, sau đó tăng dần theo tên
Tăng dần theo tên và giới tính
Tăng dần theo giới tính, sau đó giảm dần theo tên
Giảm dần theo tên và giới tính
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 )
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?
SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong WHERE LoaiP
SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong
SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong ORDER BY LoaiP
SELECT LoaiP, COUNT() AS TongSoPhong FROM Phong GROUP BY LoaiP
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?
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?
SELECT MaP, TenP, MAX(Luong) FROM NhanVien GROUP BY MaP
SELECT MaP, Luong FROM NhanVien GROUP BY MaP
SELECT MaP, MAX(Luong) FROM NhanVien ORDER BY MaP
SELECT MaP, MAX(Luong) FROM NhanVien GROUP BY MaP
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?
SELECT NXB, NamXB, COUNT() AS TongSo FROM Sach ORDER BY NamXB
SELECT NXB, NamXB, SUM() AS TongSo FROM SACH GROUP BY NXB
SELECT NXB, NamXB, SUM(SoLuong) AS TongSo FROM SACH GROUP BY NXB, NamXB
SELECT NXB, NamXB, SUM(MaS) AS TongSo FROM SACH GROUP BY NXB, NamXB
Mệnh đề GROUP BY trong SQL được sử dụng để:
Sắp xếp các bản ghi
Lọc các nhóm dữ liệu
Kết nối hai bảng
Nhóm các bản ghi theo một hoặc nhiều cột
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
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
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
Danh sách các hóa đơn có doanh thu từng hóa đơn trên 5.000.000
Mã hàng (MaH) của các mã hàng có tổng doanh thu lớn hơn 5.000.000
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'?
SELECT Đã mua hàng FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'
SELECT KH.MaK, TenK FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'
SELECT KH FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'
SELECT MaK, TenK FROM KH, HDBH WHERE KH.MaK = HDBH.MaK AND SoHD = 'HD01'
Mệnh đề HAVING được sử dụng để:
Lọc dữ liệu theo từng hàng trong bảng
Tìm kiếm dữ liệu
Lọc dữ liệu theo từng bản ghi
Lọc dữ liệu theo từng nhóm dữ liệu
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?
ĐÚNG
SAI
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?
ĐÚNG
SAI
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à:
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)
Kéo thả các truy vấn vào cột tương ứng theo chức năng:
SELECT HoaDon.MaK SUM(HoaDon.TongTien) AS TongDoanhThu FROM HoaDon GROUP BY HoaDon.MaK HAVING SUM(HoaDon.TongTien) > 1000000
Thống kê tổng tiền hóa đơn theo khách hà
SELECT KhachHang.MaK, COUNT(HoaDon.SoHD) AS SoHoaDon FROM KhachHang INNER JOIN HoaDon ON KhachHang.MaK = HoaDon.MaK GROUP BY KhachHang.MaK
Thống kê số hóa đơn theo khách hàng
SELECT MaK, COUNT (MaHD) FROM KhachHang ORDER BY MaK
❌
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) ]
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?
ORDER BY và thứ tự sắp xếp ưu tiên từ trên xuống dưới
ORDER BY và thứ tự sắp xếp ưu tiên từ phải qua trái
ORDER BY và thứ tự sắp xếp ưu tiên từ dưới lên trên
ORDER BY và thứ tự sắp xếp ưu tiên từ trái qua phải
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;
Đ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;
Phong.MaP
ThuePhong.MaHD
SUM
COUNT
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';
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'?
SELECT MaSV, HoTenSV, NS, GT, FROM LH, SV WHERE TenL = 'K18'
SELECT MaSV, HoTenSV FROM LH, SV WHERE MaL.LH = MaL.SV AND TenL = 'K18'
SELECT LH.* FROM LH, SV WHERE LH.MaL = SV.MaL AND TenL = 'K18'
SELECT MaSV, HoTenSV FROM LH, SV WHERE LH.MaL = SV.MaL AND TenL = 'K18
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;
Tên khách hàng (TenKH)
Mã khách hàng (MaK)
Tổng số hòa đơn của tất cả khách hàng (SoHoaDon)
Tổng số hóa đơn của từng khách hàng (SoHoaDon)
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.
SELECT MAP COUNT(*) FROM Thue Phong
SELECT MAP COUNT(*) FROM Thu Phong GROUP BY MaP
SELECT MaK COUNT (SoHD) FROM HoaDon GROUP BY MaK HAVING COUNT(SoHD) > 3
SELECT MaK, COUNT(SoHD) FROM HoaDon WHERE COUNT(SoHD) > 3 GROUP BY MaK
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?
SELECT DC, COUNT(*) FROM R GROUP BY DC
SELECT * FROM R GROUP BY DC
SELECT DC, SUM() FROM R GROUP BY DC
SELECT * FROM R GROUP BY DC, COUNT()
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?
SELECT MaSP, TenSP, GiaBan FROM SanPham ORDER BY GiaBan DESC
SELECT MaSP, TenSP, GiaBan FROM SanPham SORT BY GiaBan ASC
SELECT MaSP, TenSP, GiaBan FROM SanPham WHERE GiaBan ORDER DESC
SELECT MASP, TenSP, GiaBan FROM SanPham ORDER BY GiaBan DSEC
