MySQL - Operator NOT LIKE
Hai, para penggemar basis data yang bersemangat! Hari ini, kita akan mendalam ke dunia yang menakjubkan MySQL dan mengenal sebuah alat kuat dalam peralatan SQL kita: operator NOT LIKE. Sebagai guru komputer tetangga yang ramah, saya sangat gembira untuk memandu Anda dalam perjalanan ini, meskipun Anda belum pernah menulis satu baris kode sebelumnya. Jadi, sabitkan sabuk dan mari kita mulai!
Operator NOT LIKE MySQL
Operator NOT LIKE adalah seperti saudara yang narkissis dari operator LIKE. Sedangkan LIKE membantu kita menemukan pola yang cocok, NOT LIKE melakukan hal yang sebaliknya – ia membantu kita menemukan semua hal yang tidak cocok dengan pola tertentu. Itu seperti mengatakan ke komputermu, "Tampilkan semua kecuali ini!"
Marilah kita mulai dengan contoh sederhana. Bayangkan kita memiliki tabel bernama books
dengan kolom title
. Jika kita ingin menemukan semua buku yang tidak dimulai dengan huruf 'A', kita dapat menggunakan:
SELECT * FROM books WHERE title NOT LIKE 'A%';
Ini apa yang dilakukan kode ini:
-
SELECT *
: Ini mengatakan ke MySQL untuk memilih semua kolom. -
FROM books
: Kita mencari di tabelbooks
. -
WHERE title NOT LIKE 'A%'
: Ini bagian magis. Itu mengatakan, "Berikan saya semua judul yang tidak dimulai dengan 'A'."
Simbol %
adalah wildcard yang berarti "apa saja bisa mengikuti". Jadi 'A%'
berarti "A diikuti oleh apa saja."
Menggunakan Operator NOT LIKE dengan Wildcards
Sekarang, mari kita tambahkan sedikit variasi dengan wildcards! MySQL menyediakan dua wildcard utama:
-
%
: Mewakili nol, satu, atau beberapa karakter -
_
: Mewakili satu karakter
Berikut adalah tabel penggunaan wildcard umum:
Wildcard | Deskripsi | Contoh |
---|---|---|
% |
Sejumlah karakter | '%adventure%' |
_ |
Satu karakter | '_at' |
[charlist] |
Satu karakter di dalam charlist | '[abc]%' |
[^charlist] atau [!charlist]
|
Satu karakter di luar charlist | '[^abc]%' |
Misalnya, kita ingin menemukan semua judul buku yang tidak berakhir dengan "ing":
SELECT * FROM books WHERE title NOT LIKE '%ing';
Atau mungkin kita ingin buku yang tidak memiliki tepat tiga karakter:
SELECT * FROM books WHERE title NOT LIKE '___';
Setiap garis bawah mewakili satu karakter, jadi '___'
berarti "tepat tiga karakter."
Menggunakan Operator NOT LIKE dengan AND/OR
kadang-kadang, kita perlu menggabungkan beberapa kondisi. Itu di mana AND dan OR berguna. Mari kita temukan buku yang tidak dimulai dengan 'T' dan tidak berakhir dengan 'ing':
SELECT * FROM books
WHERE title NOT LIKE 'T%'
AND title NOT LIKE '%ing';
Atau mungkin kita ingin buku yang tidak dimulai dengan 'A' atau berakhir dengan 'z':
SELECT * FROM books
WHERE title NOT LIKE 'A%'
OR title NOT LIKE '%z';
Ingat, AND berarti kedua kondisi harus benar, sedangkan OR berarti setidaknya salah satu kondisi harus benar.
Operator NOT LIKE pada String
Operator NOT LIKE sangat berguna saat bekerja dengan string. Misalnya, kita memiliki tabel customers
dan kita ingin menemukan semua pelanggan yang nama mereka tidak mengandung 'son':
SELECT * FROM customers
WHERE name NOT LIKE '%son%';
Query ini akan mengembalikan semua nama yang tidak memiliki 'son' di dalamnya. Jadi 'Johnson' dan 'Sonny' akan dikecualikan, tetapi 'Smith' dan 'Brown' akan dimasukkan.
Ini adalah permainan menarik: apa bila kita ingin menemukan nama yang tidak memiliki 'a' sebagai huruf kedua?
SELECT * FROM customers
WHERE name NOT LIKE '_a%';
Query ini mengatakan, "Tampilkan semua nama di mana huruf kedua bukan 'a'."
Operator NOT LIKE Menggunakan Program Klien
Sekarang, mari kita praktikkan semua pengetahuan ini menggunakan program klien MySQL. Saya akan menggunakan klien perintah MySQL untuk contoh ini, tetapi prinsipnya berlaku untuk semua klien MySQL.
Pertama, mari kita buat tabel employees
sederhana:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
position VARCHAR(50)
);
INSERT INTO employees (name, position) VALUES
('John Doe', 'Manager'),
('Jane Smith', 'Developer'),
('Bob Johnson', 'Designer'),
('Alice Brown', 'Tester');
Sekarang, mari kita temukan semua karyawan yang posisi mereka tidak dimulai dengan 'D':
SELECT * FROM employees
WHERE position NOT LIKE 'D%';
Ini seharusnya mengembalikan John Doe (Manager) dan Alice Brown (Tester).
Mari kita coba sesuatu yang lebih kompleks. Kita ingin menemukan karyawan yang nama mereka tidak dimulai dengan 'J' dan posisi mereka tidak berakhir dengan 'er':
SELECT * FROM employees
WHERE name NOT LIKE 'J%'
AND position NOT LIKE '%er';
Ini seharusnya mengembalikan Alice Brown (Tester).
Dan begitu saja! Anda telah menguasai operator NOT LIKE di MySQL. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba query Anda sendiri. Siapa tahu? Anda mungkin menemukan pola menarik dalam data Anda yang Anda belum pernah catat sebelumnya!
Saat kita mengakhiri, saya ingin berbagi一个小秘密 dari tahun-tahun mengajar saya: cara terbaik untuk belajar SQL adalah menganggapnya seperti permainan teka-teki. Setiap query adalah teka-teki yang menunggu untuk diselesaikan. Jadi, pakai topi detektif Anda dan mulai mengeksplorasi data Anda. Selamat menanyakan, para ahli basis data masa depan!
Credits: Image by storyset