MySQL - Operator IN

Hai teman-teman, para ahli basisdata masa depan! Hari ini, kita akan mendalamkan salah satu alat paling berguna di MySQL: operator IN. Bayangkan itu seperti tongkat sihir yang bisa membantu Anda menyaring data lebih efisien. Jadi, ambil tempat duduk virtual Anda, dan mari kita berangkat dalam perjalanan menarik ini bersama!

MySQL - IN Operator

Operator IN MySQL

Operator IN seperti seorang penjaga klub yang ramah. Dia memeriksa apakah nilai cocok dengan nilai manapun dalam daftar. Bayangkan Anda mencoba mengetahui apakah buah kesukaan Anda tersedia di toko. Daripada bertanya, "Apakah Anda punya apel? Apakah Anda punya pisang? Apakah Anda punya jeruk?" satu per satu, Anda cukup bertanya, "Apakah Anda punya salah satu dari ini: apel, pisang, atau jeruk?" Itu tepat apa yang dilakukan operator IN!

Mari kita lihat contoh sederhana:

SELECT * FROM buah WHERE nama IN ('apel', 'pisang', 'jeruk');

Kueri ini mengatakan, "Tampilkan semua buah yang adalah apel, pisang, atau jeruk." Itu seperti memberitahu komputer Anda untuk menjadi detektif buah!

Ini adalah contoh lain:

SELECT * FROM karyawan WHERE departemen IN ('HR', 'IT', 'Keuangan');

Kueri ini mengambil semua karyawan yang bekerja di departemen HR, IT, atau Keuangan. Itu jauh lebih ringkas daripada menulis:

SELECT * FROM karyawan WHERE departemen = 'HR' OR departemen = 'IT' OR departemen = 'Keuangan';

Lihat betapa rapi operator IN membuat hal-hal? Itu seperti membersihkan lemari SQL Anda!

Operator IN dalam Perintah UPDATE

Sekarang, mari kita lihat bagaimana kita bisa menggunakan teman operator IN kita untuk mengupdate data. Bayangkan Anda seorang guru (seperti saya!) dan Anda ingin memberi bonus kepada semua siswa yang mendapat skor 95, 98, atau 100 dalam ujian mereka.

UPDATE siswa
SET has_bonus = TRUE
WHERE skor IN (95, 98, 100);

Kueri ini mengupdate semua siswa yang mendapat skor 95, 98, atau 100, mengatur field 'has_bonus' mereka menjadi TRUE. Itu seperti memegang tongkat sihir dan mengatakan, "Selamat, para pemenang terbaik!"

Operator NOT IN MySQL

kadang-kadang, kita ingin menemukan hal-hal yang TIDAK ada dalam daftar tertentu. Itu di mana NOT IN memainkan perannya. Itu seperti mengatakan, "Tampilkan semua kecuali ini."

Contohnya:

SELECT * FROM buah WHERE nama NOT IN ('apel', 'pisang', 'jeruk');

Kueri ini akan menampilkan semua buah kecuali apel, pisang, dan jeruk. Itu sempurna untuk saat Anda ingin mencoba buah baru!

Mengbandingkan Nilai menggunakan Operator IN

Operator IN sangat cocok untuk membandingkan nilai ganda. Bayangkan Anda seorang petugas perpustakaan (saya pernah menjadi sukarelawan di perpustakaan saat kuliah!), dan Anda ingin menemukan buku-buku yang ditulis oleh penulis tertentu:

SELECT judul, penulis FROM buku
WHERE penulis IN ('J.K. Rowling', 'George R.R. Martin', 'Stephen King');

Kueri ini akan mengambil semua buku yang ditulis oleh tiga penulis ini. Itu seperti melakukan treasure hunt literer!

Subquery MySQL dengan Operator IN

Sekarang, mari kita tingkatkan dan gunakan subquery dengan operator IN. Subquery adalah seperti query dalam query - itu adalah SQL inception!

Bayangkan Anda ingin menemukan semua karyawan yang bekerja di departemen yang memiliki lebih dari 50 karyawan:

SELECT nama, departemen
FROM karyawan
WHERE departemen IN (
SELECT departemen
FROM karyawan
GROUP BY departemen
HAVING COUNT(*) > 50
);

Kueri ini pertama-tama menemukan semua departemen dengan lebih dari 50 karyawan, dan kemudian menggunakan hasil itu untuk menemukan semua karyawan di departemen itu. Itu seperti bertanya, "Siapa yang bagian dari tim besar?"

Operator IN dalam Program Klien

Ketika menggunakan program klien untuk berinteraksi dengan MySQL, Anda dapat menggunakan variabel dengan operator IN. Ini sangat berguna saat Anda ingin membuat kueri Anda lebih dinamis.

Berikut adalah contoh menggunakan Python:

import mysql.connector

# Terhubung ke database
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# Tentukan nilai yang Anda ingin cari
search_values = ('apel', 'pisang', 'jeruk')

# Buat kueri
query = "SELECT * FROM buah WHERE nama IN (%s, %s, %s)"

# Jalankan kueri
cursor.execute(query, search_values)

# Ambil dan cetak hasil
for (nama, warna, harga) in cursor:
print(f"{nama}: {warna}, ${harga}")

# Tutup koneksi
cursor.close()
cnx.close()

Dalam contoh ini, kita menggunakan Python untuk terhubung ke database MySQL dan menjalankan kueri dengan operator IN. Placeholder %s dalam kueri diganti dengan nilai dari search_values saat kueri dieksekusi.

Berikut adalah tabel yang menggabungkan berbagai penggunaan operator IN:

Penggunaan Contoh
Basic SELECT SELECT * FROM buah WHERE nama IN ('apel', 'pisang', 'jeruk');
UPDATE UPDATE siswa SET has_bonus = TRUE WHERE skor IN (95, 98, 100);
NOT IN SELECT * FROM buah WHERE nama NOT IN ('apel', 'pisang', 'jeruk');
Dengan Subquery SELECT nama FROM karyawan WHERE departemen IN (SELECT departemen FROM karyawan GROUP BY departemen HAVING COUNT(*) > 50);
Dalam Program Klien query = "SELECT * FROM buah WHERE nama IN (%s, %s, %s)"

Dan itu adalah, teman-teman! Kita telah mengeksplorasi operator IN dari berbagai sudut. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba kueri ini. SQL mungkin terlihat menakutkan pada awalnya, tapi dengan waktu, Anda akan menulis kueri seperti seorang pro. Tetap kode, tetap belajar, dan terutama, bersenang-senang dengannya!

Credits: Image by storyset