MySQL - IN Operator
Hai there, para pengurus pangkalan data masa depan! Hari ini, kita akan melihat salah satu alat paling berguna MySQL: operator IN. Anggaplah dia seperti tongkat sihir yang dapat membantu anda menyaring data secara lebih efektif. Jadi, peganglah tempat duduk maya anda, dan mari kita melangkah dalam perjalanan yang menarik ini bersama!
MySQL In Operator
Operator IN adalah seperti pengawal yang ramah di klub. Ia menyemak jika nilai sepadan dengan mana-mana nilai dalam senarai. Bayangkan anda cuba untuk mengetahui jika buah kesukaan anda ada di pasar. Sebaliknya meminta, "Adakah anda ada epal? Adakah anda ada pisang? Adakah anda ada oren?" satu per satu, anda boleh hanya bertanya, "Adakah anda ada mana-mana ini: epal, pisang, atau oren?" Itu betul apa yang operator IN lakukan!
Mari kita lihat contoh ringkas:
SELECT * FROM fruits WHERE name IN ('apple', 'banana', 'orange');
Query ini berkata, "Tunjukkankan semua buah yang adalah epal, pisang, atau oren." Itu seperti memberitahu komputer anda untuk menjadi detektif buah!
Ini adalah contoh lain:
SELECT * FROM employees WHERE department IN ('HR', 'IT', 'Finance');
Query ini mengambil semua pekerja yang bekerja di departemen HR, IT, atau Keuangan. Ia jauh lebih ringkas daripada menulis:
SELECT * FROM employees WHERE department = 'HR' OR department = 'IT' OR department = 'Finance';
Lihat betapa rapi operator IN membuat hal-hal? Itu seperti membersihkan lemari SQL anda!
Operator IN dalam Penyataan UPDATE
Sekarang, mari kita lihat bagaimana kita dapat menggunakan rakan operator IN kita untuk mengemaskini data. Bayangkan anda adalah seorang guru (seperti saya!) dan anda mahu memberi bonus kepada semua pelajar yang mendapat 95, 98, atau 100 dalam peperiksaan mereka.
UPDATE students
SET has_bonus = TRUE
WHERE score IN (95, 98, 100);
Query ini mengemaskini semua pelajar yang mendapat skor 95, 98, atau 100, menetapkan bidang 'has_bonus' mereka ke TRUE. Itu seperti mengayunkan tongkat sihir dan berkata, "Tahniah, pencapa tinggi!"
MySQL NOT IN operator
kadang-kadang, kita mahu mencari hal-hal yang TIDAK dalam senarai tertentu. Itu di mana NOT IN datang ke main. Ia seperti berkata, "Tunjukkankan saya segalanya kecuali ini."
Contohnya:
SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');
Query ini akan tunjukkan semua buah kecuali epal, pisang, dan oren. Ia sempurna untuk saat anda merasa aventurous dan mahu mencuba buah-buah baru!
Menandingkan Nilai Menggunakan Operator IN
Operator IN adalah hebat untuk membandingkan nilai ganda. Bayangkan anda adalah seorang pustakawan (saya pernah menjadi sukarelawan di pustaka semasa kolej!), dan anda mahu mencari buku-buku oleh penulis tertentu:
SELECT title, author FROM books
WHERE author IN ('J.K. Rowling', 'George R.R. Martin', 'Stephen King');
Query ini akan mengambil semua buku yang ditulis oleh tiga penulis ini. Ia seperti memiliki penyelidikan sastrawi!
MySQL Subquery dengan Operator IN
Sekarang, mari kita naik tingkat dan gunakan subquery dengan operator IN kita. Subquery adalah seperti query dalam query - itu adalah SQL inception!
Bayangkan anda mahu mencari semua pekerja yang bekerja di departemen yang mempunyai lebih daripada 50 pekerja:
SELECT name, department
FROM employees
WHERE department IN (
SELECT department
FROM employees
GROUP BY department
HAVING COUNT(*) > 50
);
Query ini pertama kali mencari semua departemen dengan lebih daripada 50 pekerja, dan kemudian menggunakan hasil itu untuk mencari semua pekerja di departemen itu. Ia seperti bertanya, "Siapa yang menjadi sebahagian dari kumpulan besar?"
Operator IN Menggunakan Program Klien
Bila menggunakan program klien untuk berinteraksi dengan MySQL, anda boleh menggunakan variabel dengan operator IN. Ini adalah terutama berguna bila anda mahu membuat query anda lebih dinamik.
Ini adalah contoh menggunakan Python:
import mysql.connector
# Sambung ke pangkalan data
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()
# Takrifkan nilai anda mahu cari
search_values = ('apple', 'banana', 'orange')
# Buat query
query = "SELECT * FROM fruits WHERE name IN (%s, %s, %s)"
# Laksanakan query
cursor.execute(query, search_values)
# Ambil dan cetak hasil
for (name, color, price) in cursor:
print(f"{name}: {color}, ${price}")
# Tutup sambungan
cursor.close()
cnx.close()
Dalam contoh ini, kita menggunakan Python untuk sambung ke pangkalan data MySQL dan melaksanakan query dengan operator IN. Placeholder %s
dalam query digantikan dengan nilai dari search_values
bila query dilaksanakan.
Berikut adalah jadual yang menggabungkan pelbagai cara kita telah menggunakan operator IN:
Penggunaan | Contoh |
---|---|
Basic SELECT | SELECT * FROM fruits WHERE name IN ('apple', 'banana', 'orange'); |
UPDATE | UPDATE students SET has_bonus = TRUE WHERE score IN (95, 98, 100); |
NOT IN | SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange'); |
Dengan Subquery | SELECT name FROM employees WHERE department IN (SELECT department FROM employees GROUP BY department HAVING COUNT(*) > 50); |
Dalam Program Klien | query = "SELECT * FROM fruits WHERE name IN (%s, %s, %s)" |
Dan itu lah, rakan-rakan! Kita telah melihat operator IN dari pelbagai sudut. Ingat, latihan membawa ke kesempurnaan, jadi jangan takut untuk mencuba query ini. SQL mungkin kelihatan menakutkan pada permulaan, tetapi dengan masa, anda akan menulis query seperti seorang pro. Terus coding, terus belajar, dan terutamanya, bersenang-senanglah dengannya!
Credits: Image by storyset