03

Chuyên viên phân tích dữ liệu · Bước 3/8 · 12 phút

SQL căn bản

Bạn viết được câu truy vấn để lọc, gộp nhóm và nối bảng, và biết chỗ luyện tập miễn phí.

Vì sao SQL hơn hẳn sao chép thủ công

Dữ liệu doanh nghiệp nằm trong cơ sở dữ liệu, thường lớn hơn nhiều so với sức chứa của một bảng tính. SQL (Structured Query Language, ngôn ngữ truy vấn có cấu trúc) là cách bạn yêu cầu cơ sở dữ liệu trả về đúng những dòng và con số cần. Đây là kỹ năng được nhắc đến nhiều nhất trong tin tuyển data analyst.

Một câu truy vấn cũng là một bản ghi chép. Tháng sau ai cũng chạy lại được với cùng logic, an toàn hơn nhiều so với một chuỗi thao tác sao chép, dán, lọc mà không ai lặp lại được.

SELECT, FROM, WHERE

Khung cơ bản: SELECT các cột cần lấy, FROM một bảng, WHERE điều kiện đúng. Ví dụ: SELECT order_id, amount FROM orders WHERE order_date >= '2026-01-01'. Thêm ORDER BY amount DESC để sắp xếp và LIMIT 10 để xem mười dòng đầu.

Gặp bảng mới, hãy bắt đầu bằng SELECT * FROM tên_bảng LIMIT 10 để xem các cột thực sự chứa gì trước khi viết thứ gì phức tạp.

GROUP BY: tổng theo nhóm

GROUP BY là phiên bản SQL của pivot table. SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue FROM orders GROUP BY region cho bạn mỗi khu vực một dòng.

Dùng WHERE để lọc dòng trước khi gộp nhóm, và HAVING để lọc nhóm sau khi gộp, ví dụ HAVING SUM(amount) > 10000000.

JOIN: nối các bảng

Cơ sở dữ liệu chia dữ liệu ra nhiều bảng: đơn hàng một bảng, khách hàng một bảng, liên kết với nhau bằng mã. JOIN ghép chúng lại: FROM orders o JOIN customers c ON o.customer_id = c.id.

Inner JOIN chỉ giữ những dòng khớp ở cả hai bên. LEFT JOIN giữ mọi dòng của bảng thứ nhất, để trống nếu không có dòng khớp. Hãy so số dòng trước và sau khi nối; số dòng tăng vọt thường là do khóa bị trùng làm nhân bản dòng.

Luyện tập miễn phí ở đâu

SQLBolt có các bài học tương tác ngắn ngay trên trình duyệt. SQL Tutorial của Mode hướng dẫn với dữ liệu kinh doanh giống thật. DB Fiddle cho phép tạo bảng nhỏ và thử truy vấn. Google BigQuery có môi trường sandbox miễn phí với nhiều bộ dữ liệu công khai, không cần thẻ tín dụng.

Mỗi hệ quản trị có chút khác biệt (nhất là hàm xử lý ngày), nhưng SELECT, WHERE, GROUP BY và JOIN chạy được gần như ở mọi nơi.

Thử ngay

Mười câu truy vấn đầu tiên

  1. 1.Mở SQLBolt (sqlbolt.com) và làm các bài đầu tiên cho đến phần JOIN đơn giản (giao diện tiếng Anh).
  2. 2.Tự viết một câu truy vấn có dùng GROUP BY.
  3. 3.Nhờ chatbot giải thích từng dòng bằng câu lệnh bên dưới.
Tôi đang học SQL. Đây là câu truy vấn của tôi: [DÁN CÂU TRUY VẤN]. Hãy giải thích từng dòng bằng lời dễ hiểu, cho biết kết quả sẽ trông như thế nào, và chỉ ra một lỗi người mới hay mắc với câu này.
Sau khi nối bảng đơn hàng với bảng khách hàng, số dòng nhiều hơn hẳn số đơn. Bạn nên nghi ngờ điều gì?

Tự kiểm tra

Sau khi nối bảng đơn hàng với bảng khách hàng, số dòng nhiều hơn hẳn số đơn. Bạn nên nghi ngờ điều gì?