“REGEXP” (Regular Expression) operatörü, SQL sorgularında kullanılır ve bir metin dizesinin belirtilen bir desenle eşleşip eşleşmediğini kontrol etmek için kullanılır. Örneğin, bir ürünler tablosunda ürün adlarının “phone” kelimesini içerip içermediğini bulmak için aşağıdaki gibi bir sorgu kullanılabilir:
SELECT * FROM Products WHERE ProductName REGEXP 'phone';
Bu sorgu, ürünler tablosundaki tüm sütunları döndürecek ve ürün adlarında “phone” kelimesini içeren ürünleri gösterecektir.
“REGEXP” operatörünün kullanımı, aşağıdaki gibi birkaç farklı şekilde olabilir:
- Bir metin dizesinin tam olarak eşleşmesi: “REGEXP” operatörünün hemen ardından tam eşleşecek bir metin dizesi verilerek, metin dizesinin tam olarak eşleşip eşleşmediği kontrol edilebilir. Örneğin, “REGEXP ‘^[0-9]{5}$'” ifadesi ile sadece 5 haneli sayıların eşleşip eşleşmediği kontrol edilebilir.
- Bir metin dizesinin parçalarının eşleşmesi: “REGEXP” operatörünün hemen ardından parçaları eşleşecek bir metin dizesi verilerek, metin dizesinin parçalarının eşleşip eşleşmediği kontrol edilebilir. Örneğin, “REGEXP ‘[0-9]{2}[a-z]{3}'” ifadesi ile 2 haneli sayıların ve 3 harfli küçük harflerin eşleşip eşleşmediği kontrol edilebilir.
- Bir metin dizesinin başlangıç veya sonu eşleşmesi: “REGEXP” operatörünün hemen ardından “^” veya “$” işaretleri kullanılarak, metin dizesinin başlangıç veya sonu eşleşip eşleşmediği kontrol edilebilir. Örneğin, “REGEXP ‘^[a-z]+$'” ifadesi ile sadece küçük harflerden oluşan metin dizelerinin eşleşip eşleşmediği kontrol edilebilir.
Bu örnekler,
“REGEXP” operatörünün birkaç farklı şekilde nasıl kullanılabileceğini gösterir. Ancak, dikkat edilmesi gereken bir nokta var: “REGEXP” operatörü, sadece MySQL ve MariaDB gibi bazı veritabanı sistemlerinde kullanılabilir. Diğer veritabanı sistemlerinde, benzer işlevleri yerine getirmek için “RLIKE” operatörü veya “SIMILAR TO” ifadesi kullanılabilir.
Aşağıda “REGEXP” operatörünün daha detaylı örnekleri verilmiştir:
- Bir metin dizesinin sadece harflerden oluşup oluşmadığını kontrol etme:
SELECT * FROM Customers WHERE Name REGEXP '^[a-zA-Z]+$';
Bu sorgu, müşteriler tablosundaki tüm sütunları döndürecek ve müşteri isimlerinin sadece harflerden oluştuğunu gösterecektir.
Bir metin dizesinin sadece sayılar ve harflerden oluşup oluşmadığını kontrol etme:
SELECT * FROM Products WHERE Code REGEXP '^[0-9a-zA-Z]+$';
Bu sorgu, ürünler tablosundaki tüm sütunları döndürecek ve ürün kodlarının sadece sayılar ve harflerden oluştuğunu gösterecektir.
Bir metin dizesinin sadece 10 haneli sayılar içerip içermediğini kontrol etme:
SELECT * FROM Orders WHERE OrderNumber REGEXP '^[0-9]{10}$';
Bu sorgu, siparişler tablosundaki tüm sütunları döndürecek ve sipariş numaralarının sadece 10 haneli sayılar içerip içermediğini gösterecektir.
Bu örnekler, “REGEXP” operatörünün nasıl kullanılabileceğini gösterir. Ancak, bu sadece birkaç örnektir ve “REGEXP” operatörünün daha çeşitli kullanım şekilleri de mevcuttur. Örneğin, “REGEXP” operatörünün hemen ardından “|” işareti kullanarak birden fazla desen eşleştirilebilir veya “?” işareti kullanarak bir karakterin varlığının ya da yokluğunun önemsizleştirilebileceği gibi. Aşağıda daha detaylı örnekler verilmiştir:
Bir metin dizesinin sadece “apple” veya “banana” kelimelerini içerip içermediğini kontrol etme:
SELECT * FROM Fruits WHERE Name REGEXP '^apple|banana$';
Bu sorgu, meyveler tablosundaki tüm sütunları döndürecek ve meyve isimlerinin sadece “apple” veya “banana” kelimelerini içerip içermediğini gösterecektir.
Bir metin dizesinin sadece “cat” veya “dog” kelimelerinin başlangıç veya sonlarını içerip içermediğini kontrol etme:
SELECT * FROM Pets WHERE Name REGEXP '^(cat|dog).*|.*(cat|dog)$';