Bài Tập Truy Vấn CSDL | Nền Tảng

NenTang.vn
  • Trang chủ
  • Về chúng tôi
    • Giới thiệu
    • Liên hệ
  • Đào tạo
    • Các khóa học
    • Giáo vụ
  • Tin tức
    • Các tin tức
    • Tuyển dụng
  • Đăng nhập
đôi cánh Nền tảng bay tới tương lai đôi cánh Nền tảng bay tới tương lai
  1. Trang chủ Giáo dục
  2. Cơ sở dữ liệu MySQL
  3. Bài tập Truy vấn CSDL
Nền tảng Kiến thức - Hành trang tới Tương lai | NenTang.vn
  1. Giới thiệu, cài đặt môi trường thực hành 1
    1. Database Online dành cho học tập và thực hành các ví dụ
  2. Tổng quan, khái niệm về database 2
    1. Tổng quan, khái niệm về database và các thành phần trong database RDMS
    2. Các kiểu dữ liệu trong MySQL
  3. Các lệnh tạo cấu trúc (schema database) 7
    1. Mô hình thực thể ER của cơ sở dữ liệu (database) NetaShop
    2. Tạo cơ sở dữ liệu (database) NetaShop - Sử dụng HeidiSQL
    3. Tạo bảng (table) Danh mục phẳng - Sử dụng HeidiSQL
    4. Tạo bảng (table) Danh mục có liên kết khóa ngoại (có quan hệ) - Sử dụng HeidiSQL
    5. Tạo bảng (table) theo quan hệ Nhiều - Nhiều (N-N) - Sử dụng HeidiSQL
    6. Tạo bảng (table) có Quan hệ Tự thân (self foreign key) - Sử dụng HeidiSQL
    7. Cơ sở dữ liệu mẫu salomon
  4. Các lệnh cập nhật dữ liệu (Insert - Update - Delete) 3
    1. Câu lệnh Thêm dữ liệu (INSERT)
    2. Câu lệnh Cập nhật dữ liệu (UPDATE)
    3. Câu lệnh Xóa dữ liệu (DELETE)
  5. Các lệnh truy vấn dữ liệu (query data) 6
    1. Câu lệnh Truy vấn dữ liệu SELECT Đơn giản
    2. Câu lệnh Truy vấn dữ liệu SELECT với bộ lọc dữ liệu WHERE
    3. Câu lệnh Truy vấn dữ liệu SELECT với sắp xếp dữ liệu ORDER BY
    4. Câu lệnh Truy vấn dữ liệu SELECT với mệnh đề giới hạn dữ liệu LIMIT OFFSET
    5. Tìm hiểu cơ chế phân trang (Pagination) và cách viết câu lệnh truy vấn dữ liệu SELECT áp dụng cơ chế phân trang (Pagination) với LIMIT OFFSET
    6. Bài tập Truy vấn CSDL
  6. Các lệnh truy vấn dữ liệu (query data) - Nâng cao 5
    1. Các loại Kết nối LEFT JOIN, FULL JOIN, RIGHT JOIN
    2. Kết nối các bảng dữ liệu INNER JOIN
    3. Kết nối các bảng dữ liệu LEFT JOIN
    4. Kết nối các bảng dữ liệu RIGHT JOIN
    5. Kết nối các bảng dữ liệu FULL OUTER JOIN
  7. Bài tập Tổng hợp 1
    1. Truy vấn dữ liệu cho Nghiệp vụ Bán hàng
  8. Phân tích, thiết kế Hệ thống 8
    1. Các mối quan hệ giữa các Thực thể (Entity)
    2. Bài tập thiết kế Cơ sơ dữ liệu quản lý Nhân viên và Phòng ban
    3. Bài tập thiết kế Cơ sở dữ liệu Quản lý Giảng viên và Sinh viên
    4. Bài tập thiết kế Cơ sở dữ liệu Quản lý Chấm công Tiền lương
    5. Bài tập thiết kế Cơ sở dữ liệu Quản lý Nhân sự
    6. Bài tập thiết kế Cơ sở dữ liệu Quản lý Bán hàng Thương mại điện tử (Có quản lý Nhập, Xuất, Kho hàng)
    7. Kho sách, nguồn tài liệu tham khảo Cơ sở dữ liệu MySQL
    8. Plugin tự động sinh tài liệu mô tả cấu trúc của các bảng cho MySQL Workbench
  9. Quản trị người dùng và cấp quyền trong MySQL 1
    1. Tìm hiểu về các loại quyền có trong MySQL
  10. Tham khảo 2
    1. Thiết kế Cơ sở dữ liệu Bán hàng TMĐT có quản lý Kho hàng, Nhập xuất, Tồn kho, Phân quyền, Khuyến mãi, Tin tức
    2. Sinh số ngẫu nhiên RANDOM NUMBER trong MySQL
Chương 5-Bài 6. Bài tập Truy vấn CSDL
  • IN
Tác giả: Dương Nguyễn Phú Cường Số phút học: 94 phút Ngày đăng: 20/1/2026, 9:11 Lượt xem: 3992

1. Sử dụng câu lệnh truy vấn dữ liệu đơn giản với các yêu cầu sau.

1.1. Lấy danh sách tất cả sản phẩm
SELECT * FROM products;
1.2. Chỉ lấy các thông tin về mã sản phẩm, tên sản phẩm, giá nhập, giá niêm yết (giá bán), số lượng, % giảm giá của các sản phẩm
SELECT product_code, product_name, standard_cost, list_price, quantity_per_unit, discount FROM products;
1.3. Lấy mã sản phẩm, tên sản phẩm, giá nhập, giá niêm yết (giá bán) của những sản phẩm có số lượng còn lại > 60
SELECT product_code, product_name, standard_cost, list_price, quantity_per_unit, discount FROM products WHERE quantity_per_unit > 60;
1.4. Lấy 3 sản phẩm mới nhất vừa được thêm vào Hệ thống
SELECT id, product_code, product_name, standard_cost, list_price, quantity_per_unit, discount FROM products ORDER BY id DESC LIMIT 3;
1.5. Lấy sản phẩm mà tên sản phẩm có chứa chữ 'Samsung'
SELECT * FROM products WHERE product_name LIKE '%Samsung%';
1.6. Lấy các sản phẩm với tên có chứa 'MacBook' và giá niêm yết (giá bán) trên 7,000,000
SELECT * FROM products WHERE product_name LIKE '%Macbbook%' AND list_price > 7000000;
1.7. Lấy các sản phẩm với tên có giá niêm yết (giá bán) từ 8,000,000 đến 10,000,000
-- Xài BETWEEN SELECT * FROM products WHERE list_price BETWEEN 8000000 AND 10000000; -- Xài AND SELECT * FROM products WHERE list_price >= 8000000 AND list_price <= 10000000;
1.8. Liệt kệ Danh sách các Đơn hàng trong tháng 07/2016?
-- Xài BETWEEN SELECT * FROM orders WHERE order_date BETWEEN '2016-07-01 00:00:00' AND '2016-07-31 23:59:59'; -- Xài >= <= SELECT * FROM orders WHERE order_date >= '2016-07-01 00:00:00' AND order_date <= '2016-07-31 23:59:59';
1.9. Lấy danh sách ID nhà cung cấp (duy nhất) có sản phẩm trong hệ thống
SELECT DISTINCT supplier_id FROM products;

2. Sử dụng kết nối các bảng với lệnh truy vấn SQL để:

2.1. Lấy mã sản phẩm, tên sản phẩm, giá nhập, giá niêm yết (giá bán), số lượng, tên nhà cung cấp của tất cả sản phẩm
SELECT p.product_code, p.product_name, p.standard_cost, p.list_price, p.quantity_per_unit, s.supplier_name FROM products AS p JOIN suppliers AS s ON p.supplier_id = s.id;
2.2. Lấy mã sản phẩm, tên sản phẩm, giá nhập, giá niêm yết (giá bán), số lượng, mã nhà cung cấp, tên nhà cung cấp, mã loại sản phẩm, tên loại sản phẩm của những sản phẩm có giá lớn hơn 5.000.000.
SELECT p.product_code, p.product_name, p.standard_cost, p.list_price, p.quantity_per_unit, s.supplier_name, c.category_code, c.category_name FROM products AS p JOIN suppliers AS s ON p.supplier_id = s.id JOIN categories AS c ON p.category_id = c.id WHERE p.list_price > 5000000;
2.3. Lấy tất cả sản phẩm là máy tính bảng (tablet)
SELECT p.product_code, p.product_name, p.standard_cost, p.list_price, p.quantity_per_unit, c.category_code, c.category_name FROM products AS p JOIN categories AS c ON p.category_id = c.id WHERE c.category_name LIKE '%Tablet%';
2.4. Hiển thị sản phẩm có giá cao nhất
2.5. Hiển thị thông tin của các đơn đặt hàng, bao gồm:
Mã đơn hàng "Order_" + id Họ tên Khách hàng first_name + last_name Địa chỉ khách hàng address1 Địa chỉ giao hàng ship_address1 Phí vận chuyển shipping_pee Hình thức thanh toán payment_type
SELECT CONCAT('Order_', o.id) AS order_code, CONCAT(c.last_name, ' ', c.first_name) AS full_name, c.address1, o.ship_address1, o.shipping_fee, o.payment_type FROM orders o JOIN customers c ON o.customer_id = c.id;
2.6. Hiển thị thông tin các Đơn hàng và danh sách Các sản phẩm mà khách hàng "Sanchez Sean" (ID=40) đã mua trong năm 2017
SELECT CONCAT(c.last_name, ' ', c.first_name) AS full_name, o.id, o.order_date, p.product_code, p.product_name, p.list_price FROM orders o JOIN customers c ON o.customer_id = c.id JOIN order_details od ON od.order_id = o.id JOIN products p ON od.product_id = p.id WHERE c.last_name = 'Sanchez' AND c.first_name = 'Sean' AND o.order_date BETWEEN '2017-01-01 00:00:00' AND '2017-12-31 23:59:59';

3. Thực hiện câu lệnh Group By và Having để thực hiện các thống kê sau

3.1. Hiển thị mỗi Loại sản phẩm có bao nhiêu sản phẩm.
SELECT c.category_name, COUNT(*) AS SoLuong FROM products p JOIN categories c ON p.category_id = c.id GROUP BY c.category_name;
3.2. Tính tổng số lượng sản phẩm Còn lại của từng loại sản phẩm
SELECT c.category_name, SUM(p.quantity_per_unit) AS TongSoLuongConLai FROM products p JOIN categories c ON p.category_id = c.id GROUP BY c.category_name;
3.3. Tìm loại sản phẩm mà có tổng số lượng Sản phẩm đang có trong hệ thống > 50
SELECT c.category_name, SUM(p.quantity_per_unit) AS TongSoLuongConLai FROM products p JOIN categories c ON p.category_id = c.id GROUP BY c.category_name HAVING SUM(p.quantity_per_unit) > 150;

4. Thực hiện câu lệnh truy vấn trả lời các yêu cầu sau:

4.1. Tìm nhà cung cấp không bán được sản phẩm nào trong Hệ thống?
[su_spoiler title="Bài giải (Nên nhớ tự làm trước khi click vào đây)"] SELECT * FROM suppliers s WHERE s.id NOT IN (     SELECT distinct p.supplier_id     FROM order_details od     JOIN products p ON od.product_id = p.id ); [/su_spoiler]
4.2. Tìm top 3 Khách hàng mua nhiều nhất trong năm nay để tri ân khách hàng?
[su_spoiler title="Bài giải (Nên nhớ tự làm trước khi click vào đây)"] SELECT * FROM (     SELECT concat(c.first_name, ' ', c.last_name) AS full_name, COUNT(*) AS order_count     FROM customers c     JOIN orders o ON o.customer_id = c.id     GROUP BY c.id ) AS tmp ORDER BY tmp.order_count DESC LIMIT 3; [/su_spoiler]
4.3. Thống kê danh sách các sản phẩm nào đã bán gần hết số lượng (số lượng < 10 xem như gần hết), để Chủ SHOP nhập thêm hàng về?
4.3. Hình thức thanh toán phổ biến nhất là gì?
Về trang chủ Về Chương trình học Bài học trước Bài học tiếp theo

Ủng hộ tác giả

Bình luận

Bình luận của bạn

Vui lòng đăng nhập để gởi bình luận!

Đăng nhập Danh sách bình luận

Chưa có bình luận nào!

Mục lục

Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...
  1. Giới thiệu, cài đặt môi trường thực hành 1
    1. Database Online dành cho học tập và thực hành các ví dụ
  2. Tổng quan, khái niệm về database 2
    1. Tổng quan, khái niệm về database và các thành phần trong database RDMS
    2. Các kiểu dữ liệu trong MySQL
  3. Các lệnh tạo cấu trúc (schema database) 7
    1. Mô hình thực thể ER của cơ sở dữ liệu (database) NetaShop
    2. Tạo cơ sở dữ liệu (database) NetaShop - Sử dụng HeidiSQL
    3. Tạo bảng (table) Danh mục phẳng - Sử dụng HeidiSQL
    4. Tạo bảng (table) Danh mục có liên kết khóa ngoại (có quan hệ) - Sử dụng HeidiSQL
    5. Tạo bảng (table) theo quan hệ Nhiều - Nhiều (N-N) - Sử dụng HeidiSQL
    6. Tạo bảng (table) có Quan hệ Tự thân (self foreign key) - Sử dụng HeidiSQL
    7. Cơ sở dữ liệu mẫu salomon
  4. Các lệnh cập nhật dữ liệu (Insert - Update - Delete) 3
    1. Câu lệnh Thêm dữ liệu (INSERT)
    2. Câu lệnh Cập nhật dữ liệu (UPDATE)
    3. Câu lệnh Xóa dữ liệu (DELETE)
  5. Các lệnh truy vấn dữ liệu (query data) 6
    1. Câu lệnh Truy vấn dữ liệu SELECT Đơn giản
    2. Câu lệnh Truy vấn dữ liệu SELECT với bộ lọc dữ liệu WHERE
    3. Câu lệnh Truy vấn dữ liệu SELECT với sắp xếp dữ liệu ORDER BY
    4. Câu lệnh Truy vấn dữ liệu SELECT với mệnh đề giới hạn dữ liệu LIMIT OFFSET
    5. Tìm hiểu cơ chế phân trang (Pagination) và cách viết câu lệnh truy vấn dữ liệu SELECT áp dụng cơ chế phân trang (Pagination) với LIMIT OFFSET
    6. Bài tập Truy vấn CSDL
  6. Các lệnh truy vấn dữ liệu (query data) - Nâng cao 5
    1. Các loại Kết nối LEFT JOIN, FULL JOIN, RIGHT JOIN
    2. Kết nối các bảng dữ liệu INNER JOIN
    3. Kết nối các bảng dữ liệu LEFT JOIN
    4. Kết nối các bảng dữ liệu RIGHT JOIN
    5. Kết nối các bảng dữ liệu FULL OUTER JOIN
  7. Bài tập Tổng hợp 1
    1. Truy vấn dữ liệu cho Nghiệp vụ Bán hàng
  8. Phân tích, thiết kế Hệ thống 8
    1. Các mối quan hệ giữa các Thực thể (Entity)
    2. Bài tập thiết kế Cơ sơ dữ liệu quản lý Nhân viên và Phòng ban
    3. Bài tập thiết kế Cơ sở dữ liệu Quản lý Giảng viên và Sinh viên
    4. Bài tập thiết kế Cơ sở dữ liệu Quản lý Chấm công Tiền lương
    5. Bài tập thiết kế Cơ sở dữ liệu Quản lý Nhân sự
    6. Bài tập thiết kế Cơ sở dữ liệu Quản lý Bán hàng Thương mại điện tử (Có quản lý Nhập, Xuất, Kho hàng)
    7. Kho sách, nguồn tài liệu tham khảo Cơ sở dữ liệu MySQL
    8. Plugin tự động sinh tài liệu mô tả cấu trúc của các bảng cho MySQL Workbench
  9. Quản trị người dùng và cấp quyền trong MySQL 1
    1. Tìm hiểu về các loại quyền có trong MySQL
  10. Tham khảo 2
    1. Thiết kế Cơ sở dữ liệu Bán hàng TMĐT có quản lý Kho hàng, Nhập xuất, Tồn kho, Phân quyền, Khuyến mãi, Tin tức
    2. Sinh số ngẫu nhiên RANDOM NUMBER trong MySQL
Về trang chủ Về Chương trình học Bài học trước Bài học tiếp theo

Menu Tiện ích

    Trang chủ Chia sẻ Facebook Liên hệ Hỏi đáp/Chat trợ giúp

Menu Hướng dẫn Học tập

  • Nhắc nhở
  • Các bước cần thực hiện

❤🧡💛💚💙💜 Học là phải THỰC HÀNH ❤🧡💛💚💙💜

Thực hiện các bước tuần tự theo nội dung Bài học nhé!

Nền tảng các kiến thức học tập

Cùng nhau học tập, khám phá các kiến thức nền tảng về Lập trình web, mobile, database nhé.

Nền tảng kiến thức - Hành trang tới tương lai hân hạnh phục vụ Quý khách!

Khám phá, trải nghiệm ngay

Từ khóa » Bài Tập Mysql