Please enable JavaScript.
Coggle requires JavaScript to display documents.
BUỔI 12: SUBQUERIES & CTEs - Coggle Diagram
BUỔI 12: SUBQUERIES & CTEs
SUBQUERIES
1.1. SUBQUERIES IN WHERE
Nếu kết quả của SUBQUERIES trả ra một giá trị nhất định thì ta có thể dùng dấu '='
Nếu kết quả của SUBQUERIES trả ra một list giá trị thì ta cần dùng IN
1.2. SUBQUERIES IN FROM
Nếu coi SUBQUERIES là một bảng sau mệnh đề FROM thì nó được xem là một bảng mới và dùng để tính toán bình thường, bình đẳng như những bảng khác
1.3. SUBQUERIES IN SELECT
SELECT <bất cứ giá trị nào> AS <col_1> FROM <table>
=> Tạo ra cột mới trong bảng với các bảng ghi trong <col_1> chứa <giá trị bất kỳ>
SUBQUERIES đặt sau câu lệnh SELECT thì SQL sẽ trả ra một trường thông tin mới với các giá trị bản ghi là giá trị được chỉ định từ trước
Câu truy vấn này:
SELECT
(SELECT AMOUNT FROM PAYMANT)
FROM PAYMENT
=> Bị lỗi
Vì câu truy vấn con này
(SELECT AMOUNT FROM PAYMANT)
nó sẽ cho ta một list số tiền trong bảng PAYMENT
=> SQL sẽ không biết số tiền nào ứng với khách hàng nào
Trong trường hợp này cần đảm bảo kết quả của câu truy vấn con chỉ cho ra 1 giá trị duy nhất
CORRELATED SUBQUERIES (TRUY VẤN CON TƯƠNG QUAN)
2.1. CORRELATED SUBQUERIES IN WHERE
Có thể dùng EXISTS trong câu truy vấn con tương quan để lọc điều kiện
Cách dùng EXISTS:
CORRELATED SUBQUERIES là gì?
Mệnh đề WHERE trong SUBQUERIES nằm ở mệnh đề SELECT chính
2.2. CORRELATED SUBQUERIES IN SELECT
(HỌC TIẾP CHALLENGE)
CTE
CTE là viết tắt cho (Common Table Expession) có thể được xem như một bảng chứa dữ liệu tạm thời từ câu lệnh được chỉ định trong phạm vi của nó
Có thể được coi là một cách để đơn giản hóa khả nagw đọc và khả năng bảo trì của các truy vấn phức tạp bằng cách chia chúng thành các phần nhỏ hơn, dễ quản lý hơn và có thể được sử dụng nhiều lần trong truy vấn.
Cấu trúc của một CTE goomg 4 phần:
Mệnh đề WITH: bắt buộc có
Tên CTE: bảng chứa dữ liệu tạm thời, bình đăng với các bảng dữ liệu khác trong databvase nhưng có điều không hiện lên trên database
Thân CTE: có thể thực hiện câu lệnh SELECT hoàn chỉnh và kết quả câu lệnh này sẽ được lưu vào bảng tạm được khai báo ở trên
Phần kết thúc bằng câu lệnh SELECT SQL hoàn chỉnh
Một bảng CTE có thể được dùng nhiều lần lặp đi lặp lại, không hạn chế số lượng và vị trí dùng
XEM TIẾP PHẦN THỰC HÀNH VÀ CHALLENGE\