NEWS

[DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver

[DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver
Đăng bởi: Thảo Meo - Lượt xem: 2489 11:27:40, 10/05/2023DATABASE   In bài viết

Xin chào các bạn, bài viết hôm nay mình liệt kê thứ tự thực hiện một mệnh đề SELECT trong Sqlserver, để các bạn dễ hình dung, khi Sqlserver thực hiện nó sẽ chạy lần lượt như thế nào.

[DATABASE] Thứ tự thực hiện mệnh đề SELECT trong sqlserver

foreignkey_sql

Ví dụ: Chúng ta có đoạn lệnh truy vấn Sqlserver dưới đây

SELECT distinct top 10 location, COUNT(*) AS cnt
FROM Users u
    INNER JOIN Posts p ON u.Id = p.OwnerUserId
WHERE PostTypeId = 2
GROUP BY location
HAVING location LIKE '%vietnam%' AND COUNT(*) > 10
ORDER BY cnt

Trong câu truy vấn SQL Server của bạn, thứ tự thực hiện các mệnh đề SELECT là:

  1. FROM: Mệnh đề FROM: Xác định bảng hoặc tập hợp dữ liệu từ nơi bạn muốn truy vấn dữ liệu. Trong trường hợp này, bạn đang truy vấn dữ liệu từ bảng Users u và Posts p.

  2. INNER JOIN: Mệnh đề INNER JOIN: Kết hợp các bảng Users và Posts dựa trên điều kiện u.Id = p.OwnerUserId. Điều này xảy ra sau khi mệnh đề FROM đã được thực hiện.

  3. WHERE: Mệnh đề WHERE: Áp dụng điều kiện lọc dữ liệu. Trong trường hợp này, chỉ lấy các bài đăng (Posts) có PostTypeId = 2.

  4. GROUP BY: Mệnh đề GROUP BY: Nhóm các dòng dữ liệu dựa trên cột location. Sau đó, bạn có thể áp dụng các hàm tổng hợp như COUNT(*) để đếm số lượng dòng dữ liệu trong mỗi nhóm.

  5. HAVING: Mệnh đề HAVING: Áp dụng điều kiện lọc dữ liệu cho các nhóm đã được tạo bởi GROUP BY. Trong trường hợp này, chỉ lấy các nhóm có location chứa từ 'vietnam' và có số lượng dòng dữ liệu (COUNT(*)) lớn hơn 10.

  6. SELECT: Mệnh đề SELECT: Chọn cột location và COUNT(*) (được đặt tên là cnt) từ kết quả truy vấn. Đây là mệnh đề cuối cùng trong câu truy vấn SELECT.

  7. DISTINCT: Mệnh đề DISTINCT: Loại bỏ các giá trị trùng lặp từ kết quả truy vấn. Trong trường hợp này, chỉ lấy 10 bản ghi đầu tiên (top 10) từ kết quả sau khi áp dụng DISTINCT.

  8. ORDER BY: Mệnh đề ORDER BY: Sắp xếp kết quả theo cột cnt (số lượng dòng dữ liệu) theo thứ tự tăng dần.

 

Ở đoạn truy vấn trên là các câu lệnh truy vấn mà chúng ta thường thấy.

 

Thanks for watching!

 

 

THÔNG TIN TÁC GIẢ

[DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver
Đăng bởi: Thảo Meo - Lượt xem: 2489 11:27:40, 10/05/2023DATABASE   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp