Thứ tự run câu lệnh SQL

1. FROM

Điểm xuất phát của 1 câu SQL Select sẽ là FROM (Required). Đó là lý do trong cuốn Simply SQL, ngta nói cái đó đầu tiên.

from sách: Simply SQL

Vì sao?

  • Đầu tiên bạn phải xác định được data mà bạn cần ở nơi đâu? ở 1 hay nhiều tables? Xác định sai thì nhận kết quả sai.
  • Và đó là phần đầu tiên mà DB sẽ parse từ câu SQL của bạn, nói đơn giản, đó là phần chạy đầu tiên.

Nếu cái bạn cần ở nhiều table, thì bạn cần phải “nối” những table này theo các tiêu chí khác nhau, đó chính là JOIN table.

2. WHERE

Tiếp theo, bạn sẽ sử dụng WHERE chọn lấy những row nào thỏa mãn điều kiện (Optional)

VD: Chỉ lấy row nào mà có id=9

3. GROUP BY

Đôi khi, bạn cần GROUP BY gộp nhiều row có cùng điều kiện lại (Optional)

VD: gộp những row nào mà có name trùng nhau

from sách: Simply SQL

4. HAVING

Sau khi đã group, bạn có thể 1 filter row thêm 1 lần nữa bằng cách dùng HAVING (Optional)

VD: đã group theo name rồi, nhưng chỉ lấy những cái group thỏa mãn điều kiện:

SUM(cartitems.qty) > 5

from sách: Simply SQL

5. SELECT

Bây giờ, bạn mới dùng SELECT để chỉ rõ bạn muốn lấy column nào (Required)

Bạn có thể làm nhiều thứ với nó, nhưng đơn giản nhất chỉ là nói cái cột (column) mà bạn muốn lấy.

from sách: Simply SQL

6. ORDER BY

Bạn đã có cái bạn cần rồi, nhưng để dễ theo dõi, bạn sẽ dùng ORDER BY để sắp xếp dữ liệu theo 1 hoặc nhiều tiêu chí (Optional)

SELECT 
   name, price 
FROM 
   items 
ORDER BY 
   price   

VD: lấy nameprice, rồi sắp xếp data theo price

7. Tổng kết

Như vậy, trong 1 câu SQL select thì chỉ có 2 thành phần bắt buộc phải có FROMSELECT, những thành phần khác không bắt buộc, tùy từng hoàn cảnh mà dùng thôi.

Nhưng tại sao người ta lại viết SELECT FROM, mà không phải là FROM SELECT?

Theo mình, vì SQL là 1 ngôn ngữ dạng declarative language, nôm na là dạng ngôn ngữ tập trung vào “What – mong muốn cái gì”, không phải là “How – làm cách nào để lấy”. Do vậy, người ta xếp SELECT lên trước, để người dùng có thể nhìn thấy ngay data nào sẽ được trả lại, nó tập trung vào What.

Vậy khi viết câu query, mình nên viết từ SELECT rồi FROM, hay viết FROM rồi quay lại SELECT?

Cá nhân mình thấy, viết theo thứ tự run của SQL như trên (bắt đầu từ FROM) sẽ giúp ích cho mình viết đúng câu query, mắc ít lỗi hơn kiểu viết SELECT đầu tiên.

Trên đây là những thứ mình biết về thứ tự run 1 câu SQL, hi vọng qua đây các bạn thấy rõ ràng, không còn mù mờ về cách viết câu SQL nữa. Nếu có ích cho bạn, xin hãy để lại 1 Like động viên tác giả. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *