Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Operator SQL EXISTS untuk Pemula

Dalam SQL, EXISTS operator menentukan subquery untuk menguji keberadaan baris. Ini mengembalikan TRUE ketika subquery mengembalikan satu atau lebih baris.

Subquery adalah kueri yang bersarang di dalam kueri lain (atau bahkan subkueri lain)

Artikel ini berisi beberapa contoh dasar dari EXISTS operator.

Tabel Sumber

Tabel berikut digunakan untuk contoh di halaman ini.

SELECT * FROM PetTypes;
SELECT * FROM Pets;

Hasil:

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 1           | Bird      |
| 2           | Cat       |
| 3           | Dog       |
| 4           | Rabbit    |
+-------------+-----------+
(4 rows affected)
+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
| 7       | 3           | 2         | Bark      | NULL       |
| 8       | 2           | 4         | Meow      | NULL       |
+---------+-------------+-----------+-----------+------------+
(8 rows affected)

Contoh

Berikut adalah contoh untuk mendemonstrasikan EXISTS operator.

SELECT 
    pt.PetTypeId,
    pt.PetType
FROM PetTypes pt
WHERE EXISTS ( 
    SELECT p.PetTypeId 
    FROM Pets p 
    WHERE p.PetTypeId = pt.PetTypeId 
    );

Hasil:

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 1           | Bird      |
| 2           | Cat       |
| 3           | Dog       |
+-------------+-----------+

Contoh ini menunjukkan kepada kita berapa banyak jenis hewan peliharaan di hotel hewan peliharaan kita. Sebenarnya ada empat jenis hewan peliharaan, tetapi hanya tiga yang cocok dengan hewan peliharaan sebenarnya di Pets tabel.

Ini memberikan hasil yang sama yang akan kita dapatkan dengan kueri berikut yang menggunakan IN operator.

SELECT 
    PetTypeId,
    PetType
FROM PetTypes
WHERE PetTypeId IN ( SELECT PetTypeId FROM Pets );

Menggunakan NOT EXISTS

Kita bisa menambahkan NOT operator untuk meniadakan hasil dan melihat berapa banyak jenis hewan peliharaan yang tidak di hotel hewan peliharaan kami.

SELECT 
    pt.PetTypeId,
    pt.PetType
FROM PetTypes pt
WHERE NOT EXISTS ( 
    SELECT p.PetTypeId 
    FROM Pets p 
    WHERE p.PetTypeId = pt.PetTypeId 
    );

Hasil:

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 4           | Rabbit    |
+-------------+-----------+

Dalam hal ini, database kami berisi jenis hewan peliharaan Rabbit , tapi saat ini kami tidak memiliki kelinci sebagai hewan peliharaan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL INTERSECT

  2. Model Data Rumah Pintar

  3. Apa cara tercepat untuk menghitung median?

  4. Memahami Analisis Big Data

  5. Pentingnya Pemeliharaan pada MSDB