MySQL'de Verileri Sorgulamak İçin Özel Operatörler

MySQL'de Verileri Sorgulamak İçin Özel Operatörler

MySQL veritabanında kullanabileceğiniz önemli operatörler arasında LIKE, IN, ve BETWEEN operatörleri bulunur LIKE operatörü, belirli bir desene veya kelimeye göre arama yapmanızı sağlar Bu operatör, % ve _ wildcards karakterlerini kullanarak arama işlemini daha esnek hale getirir IN operatörü, birkaç değere ait olup olmadığınızı aramanıza olanak tanır Bu operatör, hem sayısal hem de metinsel değerler için kullanılabilir ve tek sorguda birden çok değeri belirtebilirsiniz BETWEEN operatörü, belirli bir aralıktaki sonuçları sorgulamanıza olanak tanır Örneğin, bir tarih aralığı veya fiyat aralığı gibi belirli bir aralıktaki sonuçları aramak için kullanılabilir Bunların yanı sıra, NOT LIKE operatörü de kullanarak belirli bir desene veya kelimeye uymayan kayıtları arayabilirsiniz MySQL veritabanınızda bu operatörleri kullanarak verilerinizi daha esnek ve verimli bir şekilde sorgulay

MySQL'de Verileri Sorgulamak İçin Özel Operatörler

MySQL veritabanlarındaki verileri sorgulamak, işleme almak için birçok farklı operatör kullanılabilir. Bu operatörler, sorgulama işlemini daha esnek ve verimli hale getirebileceği gibi, aranan verilere daha hızlı ve doğru erişim sağlar.

Bu makalede, MySQL veritabanlarında kullanabileceğiniz özel operatörler hakkında bilgi edineceksiniz. Bu operatörleri kullanarak kendi sorgularınızda daha fazla esneklik sağlayabilirsiniz.


LIKE Operatörü

LIKE operatörü, MySQL'de metin sorgularında oldukça kullanışlıdır. Bu operatör, belirli bir desene veya kelimeye göre arama yapmanıza olanak tanır. LIKE operatörü, iki önemli wildcards karakteri kullanır: % ve _. % karakteri, herhangi bir karakter olabilir anlamına gelirken, _ karakteri sadece tek bir karakter olabilir anlamına gelir.

Örneğin, "AAA" kelimesi içeren tüm verileri aramak istediğinizde, '%AAA%' gibi bir sorgu kullanabilirsiniz. Yine de, sadece üç harflik kelimeyle başlayan tüm verileri aramanız gerektiğinde, '___AAA%' gibi bir sorgu kullanabilirsiniz. Bu işlem, LIKE operatörünün esnekliğinin bir örneğidir.

LIKE operatörü, diğer operatörlerle de birlikte kullanılabilir. Örneğin, '%AAA%' ve '%BBB%' sorgularını aynı anda aramak istiyorsanız, 'WHERE column_name LIKE '%AAA%' OR column_name LIKE '%BBB%'' şeklinde bir sorgu oluşturabilirsiniz.

LIKE operatörü, karmaşık veri sorgulamaları yaparken oldukça kullanışlıdır ve birçok farklı işlemi tek bir sorguda birleştirebilir.


IN Operatörü

IN operatörü, birkaç değere ait olup olmadığınızı aradığınızda kullanışlı bir operatördür. Kendi içinde ya da WHERE koşulları altında kullanılabilir. IN operatörü, WHERE veya OR koşullarına göre daha verimlidir. Örneğin, bir sorguda belirli bir müşteri grubuna ait müşterileri bulmak istediğinizde IN operatörünü kullanabilirsiniz. Bunun yerine WHERE veya OR koşulları kullanmak, daha fazla kod yazmanıza ve daha uzun yürütme sürelerine neden olabilir.

IN operatörü, hem sayısal hem de metinsel değerler için kullanılabilir. Tek sorguda birden çok değeri belirtebilirsiniz. Örneğin, bir sorguda birden fazla kategori veya ürün koduna ait stok miktarlarını bulmak istediğinizde IN operatörü kullanabilirsiniz. Ayrıca, IN operatörü kullanılarak aranan değerler bir tablo veya alt sorgu yoluyla da belirtilebilir.

Aşağıdaki örnek, IN operatörünün bir tablo sütunu ile birlikte nasıl kullanılacağını göstermektedir:

SELECT product_name, product_code, stock_quantityFROM productsWHERE product_code IN ('abc123', 'def456', 'ghi789')

Bu örnekte, IN operatörü sayesinde ürün kodu 'abc123', 'def456' veya 'ghi789' olan tüm ürünlerin stok miktarları listelenir.


BETWEEN Operatörü

Bir tarih aralığı veya fiyat aralığı gibi belirli bir aralıktaki sonuçları aramak istediğinizde BETWEEN operatörü kullanışlıdır. Operatör, değerlerin belirtilen aralıkta olması durumunda sonuçlarınızı sorgular. BETWEEN operatörü, AND operatörü ile birlikte kullanılır.

Örneğin, bir tarih aralığını sorgulamak istediğinizde, BETWEEN operatörü ile başlangıç tarihini ve bitiş tarihini belirtirsiniz. Aşağıdaki örnekte, "orders" tablosunda "order_date" sütununda belirtilen tarih aralığındaki siparişleri sorguladık:

Sipariş Numarası Sipariş Tarihi Müşteri Adı
1001 2022-01-01 Ahmet Yılmaz
1002 2022-02-03 Merve Kaya
1003 2022-03-15 Ali Öz
1004 2022-05-20 Emre Demir

Bu örnekte, "orders" tablosunda "order_date" sütununda tarih aralığı '2022-02-01' ile '2022-05-31' arasındaki tarihler olarak belirtilmiştir. BETWEEN operatörünü kullanarak sorguyu şu şekilde yazabiliriz:

SELECT * FROM orders WHERE order_date BETWEEN '2022-02-01' AND '2022-05-31';

Bu sorgu, sipariş numaraları "1002", "1003" ve "1004" olan sonuçları listeleyecektir.

Bir diğer örnek, belirli bir fiyat aralığındaki ürünleri sorgulamak istediğinizde kullanılabilir. Tablodaki "products" sütununda aralığı belirtmek için BETWEEN operatörünü kullanabilirsiniz:

Ürün ID Ürün Adı Fiyat
1001 Samsung Galaxy A52 2500
1002 iPhone SE 3500
1003 Xiaomi Redmi Note 10 1750
1004 Huawei P30 Lite 2000

Aşağıdaki sorgu, fiyat aralığı olarak 2000 TL ile 3000 TL arasındaki ürünleri sorgular:

SELECT * FROM products WHERE price BETWEEN 2000 AND 3000;

Bu sorgu, "Samsung Galaxy A52" ve "Huawei P30 Lite" ürünlerini listeleyecektir.


LIKE ve NOT LIKE Operatörleri

LIKE operatörü, veritabanınıza kaydedilmiş bir metni veya kelime öbeğini aramanıza olanak tanır. Ancak, belirli bir desen veya kelime dışında kalan kayıtları da bulmak isteyebilirsiniz. İşte bu noktada devreye NOT LIKE operatörü girer. NOT LIKE operatörü, LIKE operatörünün tam zıttıdır ve belirli bir desene veya kelimeye uymayan kayıtları aramanıza olanak tanır.

Örneğin, bir e-ticaret sitesinde ürünlerin anahtar kelimeleri kaydedilmiş olabilir. LIKE operatörü kullanarak "kırmızı elbise" anahtar kelimesiyle eşleşen tüm ürünleri bulabilirsiniz. Ancak, kırmızı elbise anahtar kelimesi dışında kırmızı bir ceket veya pantolon gibi ürünleri de bulmak isteyebilirsiniz. Neden? Müşterilerin talepleri ve istekleri değişebilir ve belki de kırmızı bir ceket veya pantolon almak isteyen bir müşteriniz var. İşte bu durumda NOT LIKE operatörü devreye girer ve "kırmızı elbise" anahtar kelimesiyle eşleşmeyen kırmızı renkteki ürünleri de aramanıza olanak tanır.


IN ve NOT IN Operatörleri

IN operatörü, belirtilen bir liste içindeki değerlere göre sorgu yapmak için kullanılır. Örneğin, bir liste içindeki müşteri numaralarına göre sorgu yapılırken IN operatörü kullanılabilir. Bu operatör, veri tabanınızda bulunan çok sayıda veriyi sorgularken kullanılabilir, ancak performans açısından birçok WHERE veya OR koşulundan daha hızlıdır.

IN operatörünün zıttı olan NOT IN operatörü, belirtilen listede yer almayan sonuçları aramanızı sağlar. Örneğin, bir liste içindeki müşteri numaraları yerine, müşteri numarası listesinde olmayanları arayabilirsiniz. Bu operatör özellikle, listelerdeki değerlerin doğru şekilde ayarlanması için önemlidir.

Aşağıdaki örnek verilerde IN ve NOT IN operatörleri kullanılarak sorgu yapılabilir.

Ad Soyadı Yaş
Ahmet Yılmaz 25
Mehmet Acar 32
Selin Kara 40

Müşteri listemizdeki "Ahmet" ve "Selin" adlı müşterileri bulmak için aşağıdaki SQL sorgusu kullanılabilir.

SELECT * FROM customersWHERE name IN ('Ahmet', 'Selin');

Bunun yanı sıra, "Mehmet" adlı müşteriyi dışlamak için NOT IN operatörü de kullanabilirsiniz:

SELECT * FROM customersWHERE name NOT IN ('Mehmet');

Bu operatörler listelerdeki değerlere göre veri sorgularınızda daha az zaman harcayarak doğru sonuçları bulmanızı sağlar.


IS NULL ve IS NOT NULL Operatörleri

=

MySQL'de, bir veri alanı boş olduğunda NULL olarak adlandırılır. Bir kayıt içindeki bir alan, belirli bir değere sahip değilse de NULL olacaktır. NULL değerleri, boş dize, sıfır veya herhangi bir değerle karıştırılmamalıdır.

IS NULL operatörü, sorgulamada belirli bir veri alanının NULL olup olmadığını kontrol etmek için kullanılır. Örneğin, bir ürün fiyatı bilgisayarında fiyatı henüz girilmemiş bir ürün arayabilirsiniz. Bu durumda, Fiyat alanında NULL değeri olduğundan emin olmanız gerekir.

ProductID ProductName Price
1 Laptop 1500
2 Tablet NULL
3 Smartphone 1000

Yukarıdaki örnekte, Tablet ürününün fiyatı girilmemiştir. Bu durumda, IS NULL operatörünü kullanarak fiyatı NULL olan tüm ürünleri sorgulayabilirsiniz.

Aksine, IS NOT NULL operatörü, belirtilen bir veri alanının NULL olmadığını kontrol eder. Örneğin, ürünlerin açıklamasının belirli bir kelimeyi içerip içermediğini kontrol etmek isteyebilirsiniz. Bu durumda, Açıklama alanının NULL olmadığından emin olmanız gerekir.

IS NULL ve IS NOT NULL operatörleri, çalışma sayfalarındaki verilerin belirli bir boş veya dolu değerde olup olmadığını hızlı ve kolay bir şekilde kontrol etmek için kullanışlıdır.


REGEXP Operatörü

MySQL'deki REGEXP operatörü, belirli bir düzenli ifadeye göre sorgu yapmanızı sağlar. Bu operatör, özellikle büyük ve karmaşık veritabanlarında arama yapanlar için oldukça kullanışlıdır.

Bir düzenli ifade (regular expression), belirli bir kalıpla eşleşen dizgileri tanımlayan bir metin desenidir. REGEXP operatörü, sorguladığınız metin dizgesinde bu desene eşleşen tüm sonuçları geri döndürür. Bu, özellikle büyük veritabanlarında belirli bir kelime veya kelime grubu içeren tüm kayıtları aramak için yararlıdır.

Düzenli İfade Karakterleri Açıklama
. Herhangi bir karakteri ifade eder.
[abc] a, b veya c karakterlerini ifade eder.
[a-z] Küçük harfleri ifade eder.
[A-Z] Büyük harfleri ifade eder.
[0-9] Rakamları ifade eder.
^ Bir karakter dizisi veya düzenli ifade için başlangıç konumunu ifade eder.
$ Bir karakter dizisi veya düzenli ifade için bitiş konumunu ifade eder.

Bu karakterlerin birleşimi ile REGEXP operatörü, oldukça güçlü bir arama özelliği haline gelir ve özellikle büyük ve karmaşık veritabanları için etkili bir arama yöntemi sunar.


AND Operatörü

=

MySQL'deki AND operatörü, iki veya daha fazla koşulu aynı anda karşılayan sonuçları aramanıza olanak sağlar. Örneğin, bir tabloda hem belirli bir fiyat aralığında hem de belirli bir tarihte satılan ürünleri aramak için AND operatörü kullanılabilir.

AND operatörü, tek bir WHERE ifadesinde kullanılmak üzere birden fazla koşulu bir arada belirlemeye olanak tanır. Bu durumda, tüm koşulların sağlanması gereklidir. Örneğin, bir müşterinin adını ve soyadını belirlenen ad ve soyad değerlerine göre aramak için iki farklı koşulu AND operatörü ile birlikte kullanabilirsiniz.

Aşağıdaki örnek kod, 'orders' tablosundaki tarih ve fiyat koşullarının her ikisinin de sağlandığı siparişleri listeler:

Sipariş No Müşteri İsmi Tarih Fiyat
1 Ahmet Yılmaz 2021-05-15 500
2 Mehmet Güneş 2021-06-01 750

Yukarıdaki örnekte, Tarih sütunundaki koşul '2021-06-01'den sonra' ve Fiyat sütunundaki koşul '750 TL'den daha fazla' olarak belirlenmiştir. Sorgu sonucunda yalnızca 'orders' tablosunda bu iki koşulu sağlayan 2 sipariş listelenir.

AND operatörü, birçok farklı sorguda kullanılabilir ve verileri daha daraltmak için kullanışlı bir araçtır.


OR Operatörü

=

OR operatörü, MySQL verilerinin sorgulanması sırasında oldukça kullanışlı olan bir operatördür. İki koşuldan herhangi birini karşılayan sonuçları aramanıza olanak tanır. Bu operatör, sorgularınıza farklı koşul ve durumlar eklerken esneklik sağlar.

Bir koşul yerine iki koşulu bir arada kullanmak istediğinizde OR operatörü devreye girer. Örneğin, "müşterilerimizden Zeynep'in ya da Ahmet'in siparişlerini sorgulayın" gibi bir sorgu için OR operatörünü kullanabilirsiniz. Bu durumda, "isim='Zeynep' OR isim='Ahmet'" şeklinde bir sorgu yazarsınız.

Bu operatörün kullanımı oldukça kolaydır. İki koşulu birleştirmek istediğinizde, OR kelimesini kullanın ve koşullarınızı parantez içinde yazın. Örneğin, "SELECT * FROM siparisler WHERE isim='Zeynep' OR isim='Ahmet' " gibi bir sorgu oluşturabilirsiniz.

Ayrıca, OR operatörü ile iki koşulu aynı anda karşılamayan sonuçlar da elde edebilirsiniz. Özellikle büyük veri kümelerinde, birden fazla koşul ile yapılan sorgular daha fazla seçenek sunabilir ve istediğiniz sonuçları daha hızlı elde etmenizi sağlar.

Yukarıda bahsedilen örnek dışında, OR operatörünü kullanarak farklı koşullar tanımlayabilir ve istediğiniz sonuçları elde edebilirsiniz. Örneğin, "SELECT * FROM siparisler WHERE tarih='21.08.2021' OR odeme_tipi='Kredi Kartı' OR toplam_fiyat > 100" gibi bir sorgu, birden fazla koşulu bir arada kullanmanızı sağlar.