EXISTS Kiểm Tra Sự Tồn Tại Trong SQL - Deft Blog

Mục lục

  • 1 Sử dụng EXISTS với SELECT
  • 2 Sử dụng NOT với EXISTS 
  • 3 Sử dụng EXISTS Với DELETE
  • 4 Sử dụng EXISTS với UPDATE

Điều kiện EXISTS trong SQL được sử dụng để kiểm tra sự tồn tại của bất kỳ bản ghi nào trong truy vấn phụ. Kết quả trả về của EXISTS là một giá trị boolean TRUE hoặc FALSE. Nó có thể được sử dụng trong câu lệnh SELECT, UPDATE, INSERT hoặc DELETE.

Cú pháp

SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name(s) FROM table_name WHERE condition);

Ví dụ chúng ta có bảng Customers và Orders sau

customer_id Lname Fname website
401 Singh Dolly abc.com
402 Chauhan Anuj def.com
403 Kumar Niteesh ghi.com
404 Gupta Shubham jkl.com
405 Walecha Divya abc.com
406 Jain Sandeep jkl.com
407 Mehta Rajiv abc.com
408 Mehra Anand abc.com

Và bản Orders

order_id c_id order_table
1 407 2017-03-03
2 405 2017-03-05
3 408 2017-01-18
4 404 2017-02-05

 

Sử dụng EXISTS với SELECT

Để lấy họ và tên của những customer đã đặt ít nhất một đơn hàng.

SELECT fname, lname FROM Customers WHERE EXISTS (SELECT * FROM Orders WHERE Customers.customer_id = Orders.c_id);

Output

fname lname
Shubham Gupta
Divya Walecha
Rajiv Mehta
Anand Mehra

 

Sử dụng NOT với EXISTS 

Tìm nạp họ và tên của những Customer chưa đặt hàng.

SELECT lname, fname FROM Customer WHERE NOT EXISTS (SELECT * FROM Orders WHERE Customers.customer_id = Orders.c_id);

Output

fname lname
Singh Dolly
Chauhan Anuj
Kumar Niteesh
Jain Sandeep

Sử dụng EXISTS Với DELETE

Xóa bản ghi của tất cả dòng trong bảng Order khi Custommer có họ là ‘Mehra’.

DELETE FROM Orders WHERE EXISTS (SELECT * FROM customers WHERE Customers.customer_id = Orders.cid AND Customers.lname = 'Mehra'); SELECT * FROM Orders;
order_id c_id order_table
1 407 2017-03-03
2 405 2017-03-05
3 404 2017-02-05

Sử dụng EXISTS với UPDATE

Cập nhật tên là ‘Kumari’ của customer  có customer_id là 401.

UPDATE Customers SET lname = 'Kumari' WHERE EXISTS (SELECT * FROM Customers WHERE customer_id = 401); SELECT * FROM Customers;

Output

customer_id Lname Fname website
401 Kumari Dolly abc.com
402 Chauhan Anuj def.com
403 Kumar Niteesh ghi.com
404 Gupta Shubham jkl.com
405 Walecha Divya abc.com
406 Jain Sandeep jkl.com
407 Mehta Rajiv abc.com
408 Mehra Anand abc.com

 

Từ khóa » Toán Tử Exists Trong Sql