Mmaiqai.com
🗄️ DB Testing

Thứ tự viết SQL khác thứ tự thực thi — kiến thức nền cho QA

5 phút đọcTác giả: maiqai.com

Bạn hay nghĩ SQL thực thi từ SELECT xuống. Thực ra FROM được thực thi trước. Hiểu thứ tự này, bạn đọc và viết câu lệnh không còn bị loạn.

Thứ tự VIẾT so với thứ tự CHẠY

Cùng một câu lệnh, đây là khác biệt giữa thứ tự bạn gõ và thứ tự máy thực thi:

Thứ tự bạn VIẾTThứ tự SQL CHẠYÝ nghĩa (dễ hiểu)
1. SELECT1. FROM / JOINLấy dữ liệu từ bảng nào, gộp lại.
2. FROM / JOIN2. WHERELọc bỏ những dòng không cần.
3. WHERE3. GROUP BYGom các dòng thành nhóm.
4. GROUP BY4. HAVINGLọc tiếp trên các nhóm vừa gom.
5. HAVING5. SELECTChọn cột để hiển thị ra.
6. ORDER BY6. ORDER BYSắp xếp kết quả.
💡 Mẹo nhớ: đọc và viết câu SQL hãy bắt đầu từ FROM — bạn sẽ không bị loạn khi gặp câu phức tạp.

🧠 Vận dụng tư duy: 2 ví dụ áp dụng ngay

Áp thứ tự thực thi vào hai tình huống hay gặp.

  1. 1
    Ví dụ cơ bản — câu SQL 4 bước
    Câu SQL đơn giản nhất chỉ có 4 thành phần. Dù bạn gõ SELECT lên đầu, máy không đọc theo thứ tự đó — hãy thử đọc theo số trong ngoặc bên dưới:
    SELECT name, email       -- (3) chọn cột hiển thị
    FROM customers           -- (1) lấy dữ liệu gốc
    WHERE city = 'HCM'       -- (2) lọc dữ liệu
    ORDER BY name;           -- (4) sắp xếp kết quả
  2. 2
    Ví dụ nâng cao — câu SQL 6 bước
    Khi câu lệnh có thêm GROUP BY và HAVING, thứ tự đọc dài hơn — nhưng quy tắc vẫn như cũ: luôn bắt đầu từ FROM, không bao giờ từ SELECT:
    SELECT user_id, COUNT(*) AS so_don   -- (5) chọn cột hiển thị
    FROM orders                          -- (1) lấy dữ liệu gốc
    WHERE status = 'paid'                -- (2) lọc dữ liệu thô
    GROUP BY user_id                     -- (3) gom nhóm
    HAVING COUNT(*) > 5                  -- (4) lọc nhóm
    ORDER BY so_don DESC;                -- (6) sắp xếp
    💡 Mẹo đọc nhanh cho QA: Khi gặp một câu SQL dài, hãy dùng "Chiến thuật Đọc Ngược": lướt mắt xuống tìm FROM trước để biết gốc dữ liệu nằm ở đâu, sau đó dò ngược lên các điều kiện bên trên.

📚 Tài liệu tham khảo

📌 Tóm lại

Mọi người thường nghĩ SELECT chạy đầu tiên, nhưng theo chuẩn ANSI SQL, FROM mới là bước khởi đầu. Nhớ một điều đơn giản này, bạn sẽ đọc và viết câu SQL rõ ràng hơn hẳn.

Bài viết liên quan