SQL - LIKE Operator
Hai, penggemar SQL yang bersemangat! Hari ini, kita akan mendalami salah satu operator yang paling berguna dan multifungsi di SQL: operator LIKE. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk membimbing Anda dalam perjalanan ini. Jadi, ambil minuman favorit Anda, duduk nyaman, dan mari kita mulai petualangan SQL ini bersama!
Operator LIKE di SQL
Operator LIKE adalah alat yang kuat di SQL yang memungkinkan kita mencari pola tertentu dalam data kita. Itu seperti memiliki kaca pembesar super cerdas yang bisa menemukan tepat apa yang kita cari di database kita.
Bayangkan Anda mencoba mencari buku di perpustakaan yang besar. Anda mungkin tidak ingat judul tepat, tapi Anda tahu itu memiliki kata "adventure" di dalamnya. Operator LIKE adalah teman petugas perpustakaan Anda yang bisa membantu Anda menemukan semua buku dengan "adventure" di judulnya.
Sintaks dasar dari operator LIKE adalah:
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
Tapi apa itu "pattern" ini yang kita bicarakan? Well, itu adalah topik berikutnya...
Apa itu wild cards?
Wild cards adalah karakter khusus yang dapat mewakili satu atau lebih karakter dalam pola pencarian. Itu seperti joker di dalam sebuah kartu - mereka bisa menggantikan kartu lain. Di SQL, kita menggunakan wild cards dengan operator LIKE untuk menciptakan pola pencarian yang fleksibel.
Dua wild cards utama yang digunakan dengan LIKE adalah:
- % (tanda persen)
- _ (garis bawah)
Mari kita jelajahi masing-masing dari ini secara rinci.
Karakter Wildcard '%'
Karakter wildcard '%' mewakili nol, satu, atau beberapa karakter. Itu adalah wildcard yang paling fleksibel dan sering digunakan ketika Anda tidak yakin tentang posisi atau panjang tepat pola yang Anda cari.
Berikut adalah beberapa contoh:
-- Temukan semua pelanggan yang nama mereka dimulai dengan 'A'
SELECT * FROM Customers WHERE CustomerName LIKE 'A%';
-- Temukan semua produk yang diakhiri dengan 'phone'
SELECT * FROM Products WHERE ProductName LIKE '%phone';
-- Temukan semua pesanan dengan 'book' di mana saja di dalam nama produk
SELECT * FROM Orders WHERE ProductName LIKE '%book%';
Dalam contoh pertama, kita mencari semua pelanggan yang nama mereka dimulai dengan 'A', diikuti oleh beberapa karakter. Ini akan cocok dengan nama seperti "Alex", "Anna", atau bahkan "A very long name".
Contoh kedua mencari produk yang diakhiri dengan 'phone', yang bisa cocok dengan "iPhone", "Smartphone", atau "Headphone".
Contoh terakhir menemukan semua pesanan di mana nama produk mengandung 'book' di mana saja, jadi itu akan cocok dengan "Bookshelf", "Notebook", atau "Book of Spells".
Karakter Wildcard '_'
Karakter wildcard '_' mewakili karakter tunggal. Itu seperti placeholder untuk karakter tunggal dalam pola.
Mari kita lihat beberapa contoh:
-- Temukan semua pelanggan yang nama mereka tepat 4 karakter panjang
SELECT * FROM Customers WHERE CustomerName LIKE '____';
-- Temukan semua produk yang dimulai dengan 'A' dan panjang 5 karakter
SELECT * FROM Products WHERE ProductName LIKE 'A____';
-- Temukan semua pesanan di mana karakter kedua dari ID pesanan adalah '3'
SELECT * FROM Orders WHERE OrderID LIKE '_3%';
Dalam contoh pertama, kita mencari nama pelanggan yang panjangnya tepat 4 karakter. Ini akan cocok dengan nama seperti "John" atau "Mary", tapi tidak "Alexander" atau "Bob".
Contoh kedua mencari produk yang panjang 5 karakter dan dimulai dengan 'A'. Ini akan cocok dengan "Apple" atau "Audio", tapi tidak "Apricot" atau "A4 paper".
Contoh terakhir menemukan pesanan di mana karakter kedua dari ID pesanan adalah '3'. Ini bisa cocok dengan ID pesanan seperti "13456", "23789", atau kombinasi lain selama karakter kedua adalah '3'.
Operator LIKE dengan OR
kadang-kadang, kita ingin mencari beberapa pola sekaligus. Itu adalah saat OR operator berguna. Kita dapat mengombinasikannya dengan LIKE untuk mencari pola yang berbeda dalam permintaan yang sama.
Ini adalah contoh:
-- Temukan semua pelanggan yang nama mereka dimulai dengan 'A' atau diakhiri dengan 's'
SELECT * FROM Customers
WHERE CustomerName LIKE 'A%' OR CustomerName LIKE '%s';
Permintaan ini akan mengembalikan pelanggan seperti "Alice", "Andreas", "Boris", atau "Charles". Itu akan cocok dengan nama yang dimulai dengan 'A' atau diakhiri dengan 's' (atau keduanya).
Operator NOT dengan kondisi LIKE
Apa bila kita ingin menemukan semua yang tidak cocok dengan pola tertentu? Itu adalah saat operator NOT bergabung. Kita dapat menggunakan NOT LIKE untuk mengecualikan pola tertentu dari pencarian kita.
Ini adalah contoh:
-- Temukan semua produk yang tidak dimulai dengan 'A'
SELECT * FROM Products
WHERE ProductName NOT LIKE 'A%';
Permintaan ini akan mengembalikan semua produk kecuali yang dimulai dengan 'A'. Jadi itu akan termasuk "Banana", "Cherry", "Dell Laptop", tapi tidak "Apple" atau "Acer Monitor".
Karakter pelengkap dengan operator LIKE
kadang-kadang, kita mungkin ingin mencari pola yang mencakup karakter wildcard itu sendiri. Misalnya, apa bila kita ingin mencari produk dengan '%' di dalam namanya? Kita menggunakan karakter pelengkap untuk mengatakan ke SQL bahwa kita ingin menganggap karakter khusus sebagai karakter biasa.
Karakter pelengkap default di SQL adalah backslash (). Ini adalah cara kita menggunakannya:
-- Temukan produk dengan '%' di dalam namanya
SELECT * FROM Products
WHERE ProductName LIKE '%\%%';
-- Temukan produk dengan '_' di dalam namanya
SELECT * FROM Products
WHERE ProductName LIKE '%\_%';
Permintaan pertama akan cocok dengan nama produk seperti "50% off", "100% cotton", dll. Yang kedua akan cocok dengan nama seperti "A_B", "C_D", dll.
Penggunaan Operator LIKE di SQL
Operator LIKE memiliki banyak aplikasi praktis dalam pengqueryan database. Ini adalah tabel yang menggabungkan beberapa penggunaan umum:
Use Case | Example Query |
---|---|
Menemukan kesamaan sebagian | SELECT * FROM Customers WHERE CustomerName LIKE '%son%'; |
Mencari format tertentu | SELECT * FROM Orders WHERE OrderID LIKE 'ORD_____'; |
Memfilter berdasarkan karakter awal/akhir | SELECT * FROM Products WHERE ProductName LIKE 'A%' OR ProductName LIKE '%z'; |
Menghindari pola tertentu | SELECT * FROM Employees WHERE EmployeeName NOT LIKE 'John%'; |
Mencari karakter khusus | SELECT * FROM Products WHERE ProductName LIKE '%\%%'; |
Ingat, operator LIKE secara default case-insensitive di kebanyakan implementasi SQL. Ini berarti 'a%' akan cocok dengan 'Apple', 'apple', dan 'APPLE'.
Dalam kesimpulan, operator LIKE adalah alat kuat di dalam peralatan SQL Anda. Itu memungkinkan pencocokan string yang fleksibel dan kuat, yang sangat penting dalam banyak tugas analisis dan pengambilan data. Latih penggunaannya dengan berbagai wildcards dan kombinasi, dan Anda akan segera menjadi ahli dalam menggunakannya!
Selamat berkueri, para master SQL masa depan!
Credits: Image by storyset