Hiểu Thứ Tự Các Thành Phần Trong Câu SQL SELECT
Khi làm việc với SQL, nắm rõ thứ tự và chức năng của các thành phần trong câu lệnh SELECT là rất quan trọng. Dưới đây là một cái nhìn sâu sắc về cách thức hoạt động của từng phần và sự liên kết giữa chúng.
FROM: Nguồn Dữ Liệu
Bắt đầu từ phần FROM, đây là nơi xác định nguồn dữ liệu mà bạn muốn truy xuất. Mặc dù một số hệ quản trị cơ sở dữ liệu như MySQL và MS SQL cho phép bạn bỏ qua phần này, nhưng theo chuẩn SQL, nó là bắt buộc. Nếu không có FROM, SQL sẽ tự động lấy dữ liệu từ một nguồn mặc định. Việc xác định chính xác nguồn dữ liệu là bước đầu tiên giúp bạn tránh những kết quả sai lệch.
Vì sao lại là FROM?
- Đầ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? 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.
- 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.
WHERE: Lọc Dữ Liệu
Sau khi xác định nguồn dữ liệu, bước tiếp theo là sử dụng WHERE để lọc ra những hàng mà bạn quan tâm. Ví dụ, nếu bạn muốn chỉ lấy các hàng có id=9
, điều này giúp bạn thu hẹp kết quả truy vấn và chỉ làm việc với dữ liệu cần thiết. Đây là một bước quan trọng trong việc xử lý và phân tích dữ liệu.
SELECT *
FROM users
WHERE id = 9;
GROUP BY: Gộp Dữ Liệu
Nếu bạn cần gộp các hàng có cùng giá trị, phần GROUP BY sẽ phát huy tác dụng. Gộp dữ liệu giúp bạn tổ chức thông tin và tìm ra những xu hướng hoặc mẫu trong tập dữ liệu. Chẳng hạn, bạn có thể gộp các hàng theo tên, từ đó dễ dàng phân tích hơn.
HAVING: Lọc Sau Khi Gộp
Sau khi gộp dữ liệu, nếu bạn muốn thực hiện thêm một lần lọc, phần HAVING sẽ rất hữu ích. Điều này cho phép bạn áp dụng điều kiện trên các nhóm đã được tạo ra trước đó. Ví dụ, bạn có thể chỉ lấy những nhóm có tổng số lượng lớn hơn 5. Đây là cách để tinh chỉnh kết quả của bạn một cách hiệu quả.
SELECT: Chọn Cột Dữ Liệu
Phần SELECT là phần bắt buộc và xác định rõ ràng các cột mà bạn muốn lấy từ nguồn dữ liệu. Đây là nơi bạn có thể chỉ định chính xác thông tin mà bạn cần, giúp bạn tối ưu hóa kết quả truy vấn.
ORDER BY: Sắp Xếp Kết Quả
Cuối cùng, sau khi đã có dữ liệu cần thiết, bạn có thể sử dụng ORDER BY để sắp xếp kết quả theo một hoặc nhiều tiêu chí. Việc sắp xếp này giúp bạn dễ dàng theo dõi và phân tích dữ liệu, đặc biệt khi làm việc với các tập dữ liệu lớn.
LIMIT: Giới Hạn Kết Quả
Một phần quan trọng không thể thiếu trong câu lệnh SELECT là LIMIT. Phần này cho phép bạn giới hạn số lượng kết quả mà câu truy vấn trả về. Điều này rất hữu ích khi bạn chỉ cần một số lượng nhỏ dữ liệu từ một tập lớn. Ví dụ, nếu bạn chỉ muốn lấy 10 hàng đầu tiên từ kết quả, bạn có thể thêm LIMIT 10
vào cuối câu lệnh.
Kết Luận
Trong một câu lệnh SQL SELECT, phần SELECT là bắt buộc, nhưng các phần khác như FROM, WHERE, GROUP BY, HAVING và ORDER BY là tùy chọn và sẽ được sử dụng theo nhu cầu truy vấn cụ thể của bạn.
Tham khảo nguồn: https://sqlbolt.com/lesson/select_queries_order_of_execution