- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver
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
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à:
-
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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!