Mệnh đề WITH là một trong các cú pháp của SQL giúp bạn đặt tên cho khối truy vấn phụ và có thể được tham chiếu ở nhiều nơi trong truy vấn SQL chính. Trong bài viết này, chúng ta sẽ tìm hiểu mệnh đề WITH trong SQL và cách sử dụng nó.
Giới thiệu về mệnh đề WITH trong SQL
Mệnh đề WITH đã được giới thiệu trong tiêu chuẩn SQL từ năm 1999 và hiện đã có sẵn trong tất cả các loại hệ quản trị cơ sở dữ liệu có quan hệ. Mệnh đề này được coi là "tạm thời" vì kết quả không được lưu trữ vĩnh viễn ở bất kỳ đâu trong lược đồ cơ sở dữ liệu. Nó hoạt động như một dạng "view" tạm thời chỉ tồn tại trong suốt thời gian của truy vấn.
Sử dụng mệnh đề WITH giúp tổ chức và đơn giản hóa các truy vấn phân cấp dài và phức tạp bằng cách chia chúng thành các phần nhỏ hơn, dễ đọc hơn. Nó cũng được coi là một giải pháp thay thế gọn gàng cho các bảng tạm.
Cú pháp của mệnh đề WITH
Cú pháp của mệnh đề WITH trong SQL như sau:
WITH [tên_bảng_tạm] AS ( [truy_vấn_đặt_tên] ) [truy_vấn_chính]
Trong đó:
tên_bảng_tạm
: Tên của bảng tạm mà bạn muốn sử dụng trong truy vấn chính.truy_vấn_đặt_tên
: Phần này xác định truy vấn sẽ điền vào để tạo ra bảng tạm.truy_vấn_chính
: Truy vấn chính sẽ sử dụng bảng tạm được đặt tên.
Ví dụ về mệnh đề WITH
Dưới đây là một ví dụ về việc sử dụng mệnh đề WITH để đếm số các phương thức thanh toán của các đơn hàng trong bảng "orders":
WITH phuong_thuc_thanh_toan AS ( SELECT DISTINCT("Phương thức thanh toán") FROM orders ) SELECT COUNT(*) FROM phuong_thuc_thanh_toan
Lợi ích khi sử dụng mệnh đề WITH trong SQL
Tối ưu hóa bộ nhớ và tốc độ truy vấn
Sử dụng bảng tạm để lưu trữ tạm kết quả câu truy vấn cho phép bạn tái sử dụng nhiều lần mà không cần phải thực thi lại câu truy vấn mỗi lần tương tác. Điều này giúp cải thiện tốc độ truy vấn và sử dụng bộ nhớ hiệu quả. Ví dụ, nếu bạn có một tính toán phức tạp được sử dụng lại ở nhiều vị trí trong truy vấn chính, sử dụng mệnh đề WITH sẽ giúp bạn tránh tính toán lại nhiều lần không cần thiết.
Dễ đọc, dễ hiểu
Tách nhỏ các phần của truy vấn bằng cách sử dụng mệnh đề WITH giúp cho truy vấn trở nên dễ hiểu hơn việc gộp tất cả các truy vấn lại bằng cách sử dụng sub-query. Điều này rất hữu ích đối với các câu truy vấn lớn và phức tạp, giúp cho mã nguồn dễ đọc và dễ hình dung hơn.
Cải thiện khả năng bảo trì
Bằng việc đặt tên cho các kết quả truy vấn với mệnh đề WITH, bạn có thể dễ dàng nhìn thấy độ phức tạp của truy vấn và theo dõi từng phần nhỏ của truy vấn thông qua mệnh đề WITH. Điều này giúp cho việc bảo trì và sửa chữa trở nên dễ dàng hơn.
Tổng kết
Trong bài viết này, chúng ta đã tìm hiểu về mệnh đề WITH trong SQL và cách sử dụng nó. Sử dụng mệnh đề WITH giúp tổ chức và đơn giản hóa các truy vấn phức tạp, tối ưu hóa tốc độ truy vấn và bộ nhớ, đồng thời làm cho mã nguồn dễ đọc và dễ hiểu hơn. Hy vọng rằng thông tin này sẽ giúp bạn làm việc với mệnh đề WITH trong SQL một cách hiệu quả.