Trình tự xử lý các câu lệnh SQL

Trong bài viết này tôi sẽ cung cấp cho bạn hiểu hơn về thứ tự viết câu SQL và trình tự SQL xử lý các câu lệnh như thế nào.

Cú pháp câu lệnh SQL:

[ WITH { [ XMLNAMESPACES ,] [ <common_table_expression> ] } ]

SELECT select_list [ INTO new_table ]

[ FROM table_source ] [ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

Thứ tự thực hiện các câu lệnh SQL phụ thuộc vào loại câu lệnh bạn đang sử dụng. Dưới đây là trình tự chung cho các câu lệnh truy vấn SELECT:

1. FROM:

  • Xác định nguồn dữ liệu cho truy vấn, có thể là một hoặc nhiều bảng, view hoặc CTE (Common Table Expressions).
  • Nếu có nhiều nguồn dữ liệu, thứ tự liệt kê trong mệnh đề FROM sẽ ảnh hưởng đến thứ tự thực hiện các phép toán nối (JOIN).

2. JOIN:

  • Kết hợp các hàng từ hai hoặc nhiều bảng dựa trên các điều kiện khớp.
  • Loại JOIN (INNER, LEFT, RIGHT, FULL, CROSS) quyết định cách xử lý các hàng không khớp.
  • Thứ tự liệt kê các bảng trong mệnh đề FROM có thể ảnh hưởng đến hiệu suất của phép toán JOIN.

3. ON:

  • Chỉ định điều kiện khớp cho phép toán JOIN.
  • Có thể sử dụng nhiều điều kiện ON cho mỗi phép toán JOIN.

4. WHERE:

  • Lọc các hàng dựa trên các điều kiện cụ thể.
  • Có thể sử dụng nhiều điều kiện WHERE được kết nối bằng các toán tử logic (AND, OR, NOT).

5. GROUP BY:

  • Nhóm các hàng có cùng giá trị theo một hoặc nhiều cột.
  • Tính toán các hàm tổng hợp (COUNT, SUM, AVG, MIN, MAX) cho mỗi nhóm.

6. HAVING:

  • Lọc các nhóm dựa trên các điều kiện tổng hợp.
  • Giống như mệnh đề WHERE nhưng áp dụng cho các nhóm thay vì các hàng riêng lẻ.

7. SELECT:

  • Xác định các cột dữ liệu sẽ được trả về trong kết quả truy vấn.
  • Có thể sử dụng các biểu thức, toán tử và hàm để xử lý dữ liệu.
  • Thứ tự liệt kê các cột trong mệnh đề SELECT quyết định thứ tự các cột trong kết quả.

8. ORDER BY:

  • Sắp xếp các hàng trong kết quả truy vấn theo một hoặc nhiều cột.
  • Có thể sắp xếp theo thứ tự tăng dần (ASC) hoặc giảm dần (DESC).

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA), là người đang tập tành viết lách trên blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. #Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn cần người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận