MySQL - NOT LIKE Operator

Hai, penggemar basis data yang bersemangat! Hari ini, kita akan menyelami dunia yang menarik MySQL dan menjelajahi alat kuat dalam kotak peralatan SQL kita: operator NOT LIKE. Sebagai guru komputer tetangga yang ramah, saya sangat gembira untuk menghidahkan Anda dalam perjalanan ini, bahkan jika Anda belum pernah menulis baris kode sebelumnya. Jadi, sabungkan sepatu Anda dan mari kita mulai!

MySQL - NOT LIKE Operator

Operator NOT LIKE di MySQL

Operator NOT LIKE adalah seperti saudara yang rebakan dari operator LIKE. Sedangkan LIKE membantu kita menemukan pola yang cocok, NOT LIKE melakukan hal yang sebaliknya - itu membantu kita menemukan semua hal yang tidak cocok dengan pola tertentu. Itu seperti mengatakan ke komputer Anda, "Tampilkan semua kecuali ini!"

Mari kita mulai dengan contoh sederhana. Bayangkan kita memiliki tabel yang disebut 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 adalah apa yang dilakukan kode ini:

  • SELECT *: Ini mengatakan ke MySQL untuk memilih semua kolom.
  • FROM books: Kita mencari di tabel books.
  • WHERE title NOT LIKE 'A%': Ini adalah bagian magis. Itu mengatakan, "Berikan saya semua judul yang tidak dimulai dengan 'A'."

Tanda % adalah wildcard yang berarti "apa saja yang bisa mengikuti". Jadi 'A%' berarti "A diikuti oleh apa saja."

Menggunakan Operator NOT LIKE Dengan Wildcard

Sekarang, mari kita tambahkan sedikit perasaan dengan wildcard! MySQL menyediakan dua wildcard utama:

  • %: Mewakili nol, satu, atau beberapa karakter
  • _: Mewakili karakter tunggal

Ini adalah tabel penggunaan wildcard umum:

Wildcard Deskripsi Contoh
% Sebanyak karakter apa saja '%adventure%'
_ Karakter tunggal '_at'
[charlist] Setiap karakter tunggal dalam charlist '[abc]%'
[^charlist] atau [!charlist] Setiap karakter tunggal yang tidak dalam charlist '[^abc]%'

Misalnya, jika 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 karakter tunggal, jadi '___' berarti "tepat tiga karakter."

Menggunakan Operator NOT LIKE Dengan AND/OR Operators

kadang-kadang, kita perlu mengkombinasikan beberapa kondisi. Itu di mana AND dan OR sangat 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 satu kondisi harus benar.

Operator NOT LIKE Pada String

Operator NOT LIKE sangat berguna saat bekerja dengan string. Misalnya, jika 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 mana saja di dalamnya. Jadi 'Johnson' dan 'Sonny' akan diceklik, tetapi 'Smith' dan 'Brown' akan dimasukkan.

Ini adalah twist menarik: apa jika kita ingin menemukan nama yang huruf kedua bukan 'a'?

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 baris perintah MySQL untuk contoh ini, tetapi prinsipnya berlaku untuk semua klien MySQL.

Pertama-tama, mari kita buat tabel employees yang 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 itu adalah dia! Anda telah mengetahui operator NOT LIKE di MySQL. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba query Anda sendiri. Siapa tahu? Anda mungkin menemukan pola menarik di data Anda yang Anda belum pernah catat sebelumnya!

Saat kita mengakhiri, saya ingin berbagi rahasia kecil 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 menjelajahi data Anda. Selamat berquery, para ahli basis data masa depan!

Credits: Image by storyset