Traffine I/O

Bahasa Indonesia

2023-03-02

Subquery dalam SQL

Apa itu Subquery

Subquery adalah sebuah query dalam query SQL lainnya. Subquery digunakan untuk mengambil data dari database yang akan digunakan oleh query utama. Subquery memungkinkan Anda melakukan operasi dalam beberapa tahap, dengan menggunakan hasil dari satu tahap sebagai input untuk tahap berikutnya.

Subquery dapat digunakan dalam berbagai bagian pernyataan SQL, termasuk klausa SELECT, FROM, WHERE, dan HAVING. Data yang dikembalikan oleh subquery kemudian digunakan oleh query luar untuk operasi lebih lanjut. Subquery dapat mengembalikan nilai tunggal (skalar), satu baris, beberapa baris, atau tabel, tergantung pada cara penggunaannya.

Sintaksis dan Penggunaan Subquery

Saya akan menjelaskan sintaksis dan berbagai penggunaan subquery dalam SQL. Kita akan menggunakan database sederhana yang mencakup dua tabel: Employees dan Departments. Tabel-tabel tersebut didefinisikan sebagai berikut:

Employees:

EmployeeID FirstName LastName DepartmentID Salary
1 John Doe 1 50000
2 Jane Smith 2 60000
3 Mary Johnson 1 70000
4 James Brown 3 80000

Departments:

DepartmentID DepartmentName
1 HR
2 Finance
3 IT

Sintaksis Dasar Subquery

Sebuah subquery ditulis di dalam tanda kurung dan dapat ditempatkan di berbagai bagian dari query SQL utama. Berikut adalah sintaksis dasar untuk subquery dalam klausa WHERE:

sql
SELECT column_name(s)
FROM table_name
WHERE column_name operator (SELECT column_name FROM table_name WHERE condition);

Sebagai contoh, jika kita ingin menemukan semua karyawan yang mendapatkan gaji lebih tinggi dari rata-rata gaji:

sql
SELECT FirstName, LastName, Salary
FROM Employees
WHERE Salary > (SELECT AVG(Salary) FROM Employees);

Hasil dari query ini adalah:

FirstName LastName Salary
Mary Johnson 70000
James Brown 80000

Inline Views

Inline view adalah subquery dalam klausa FROM. Ini dapat digunakan untuk menyederhanakan query yang kompleks. Berikut contohnya:

sql
SELECT e.FirstName, e.LastName, e.Salary
FROM (SELECT * FROM Employees WHERE Salary > 60000) as e;

Hasil dari query ini adalah:

FirstName LastName Salary
Mary Johnson 70000
James Brown 80000

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!