MySQL'de Veri Çekme İşlemleri: Sorgu Örnekleri

MySQL'de Veri Çekme İşlemleri: Sorgu Örnekleri

MySQL veritabanında veri çekme işlemleri ve sorgu örnekleri konusunda detaylı bir makaledir SELECT ve WHERE sorguları ile belirli koşullara uygun olarak verilerin seçilmesi ve kullanıcının sunulması açıklanmıştır Karşılaştırma operatörleri, AND ve OR operatörleri ile birlikte kullanım örnekleri verilerek, doğru sorguların nasıl yazılacağı açıklanmıştır Ayrıca, performansı artırmak için dikkat edilmesi gereken noktalara da değinilmiştir Veritabanı işlemleri açısından temel bilgilere sahip olanlar için faydalı bir kaynak olabilir

MySQL'de Veri Çekme İşlemleri: Sorgu Örnekleri

MySQL, veri tabanı işlemlerinde kullanılan en popüler yazılımlardan biridir. Bu yazılım, verilerin kaydedilmesi, güncellenmesi, silinmesi ve çekilmesi gibi birçok farklı işlemi gerçekleştirebilir. Bu makalede, MySQL veritabanında bulunan verilerin nasıl çekileceği ve sorgu örnekleri ele alınacaktır.

Veri çekme işlemi, bir veri tabanının temel işlemlerinden biridir. Bu işlem, belirli bir koşula göre verilerin seçilmesini ve kullanıcıya sunulmasını sağlar. Bu işlem yapıldığında, birçok farklı sorgu kullanılabilir. En sık kullanılan sorguların bazılarını aşağıda detaylı bir şekilde ele alacağız.

SELECT sorgusu, MySQL'de veri çekme işleminde en sık kullanılan sorgulardan biridir. SELECT sorgusu, belirli bir tablodan belirli bir kolon seçerek veri çekme işlemini gerçekleştirir. Örnek kullanımı aşağıdadır:

ID Name Age
1 Ahmet 25
2 Ali 30

Yukarıdaki tabloyu örnek alırsak, sadece isimleri çekmek istediğimizde kullanılması gereken sorgu şu şekildedir:

SELECT Name FROM TabloAdı;

Yukarıdaki sorgu, TabloAdı adlı tablodan sadece isim verilerini çeker.


SELECT Sorgusu

MySQL'de veri çekmek için kullanılan en önemli sorgulardan biri SELECT sorgusudur. Bu sorgu ile veritabanındaki belirli bir tablodan ya da birden fazla tablodan veriler seçilebilir. SELECT sorgusu ile herhangi bir tablodaki tüm sütunlar seçilebildiği gibi, belirli sütunlar da seçilebilir.

SELECT sorgusu "SELECT" kelimesi ve sütun adları ile birlikte kullanılır. SELECT'ten sonra sütunların adları virgülle ayrılır. Eğer tüm sütunlar seçilecekse "*" kullanılır. Örneğin, "SELECT * FROM customers" sorgusu customers tablosundaki tüm sütunları seçer.

Bu sorgu aynı zamanda WHERE ve ORDER BY sorguları ile birlikte kullanılabilir. WHERE sorgusu ile belirli bir koşula uyan veriler seçilirken, ORDER BY sorgusu ile veriler belirli bir sıraya göre sıralanabilir.

Bu temel sorgu ile birlikte kullanılan bir diğer önemli sorgu DISTINCT sorgusudur. Bu sorgu ile tekrar eden değerler tek bir kez seçilir. Örneğin, "SELECT DISTINCT city FROM customers" sorgusu customers tablosundaki şehirleri tekrar etmeden seçer.

SELECT sorgusunun kullanımı oldukça esnek olmakla birlikte, büyük veri tabanlarında çok fazla veri seçmek sorguyu yavaşlatabilir. Bu nedenle, ihtiyacınız olan sütunlar seçilmelidir.


WHERE Sorgusu

MySQL veritabanındaki verileri özelleştirmek için WHERE sorgusu kullanılabilir. WHERE sorgusu, belirli koşullara uygun olan sütunları seçmek için kullanılan bir sorgu türüdür. Örneğin, bir tablodaki müşterilerin sadece belirli bir bölgedeki siparişlerini görmek istiyorsanız WHERE sorgusunu kullanabilirsiniz.

WHERE sorgusu, =, <, >, <=, >=, != gibi karşılaştırma operatörleri kullanarak çalışır. Bu operatörler, sütunlardaki verilerin sayısal değerlerinin yanı sıra metin veya tarih değerleri için de kullanılabilir. WHERE sorgusu ayrıca AND veya OR operatörü kullanılarak birden fazla koşulda kullanılabilir.

Örneğin, bir televizyon mağazasının stokta olan ve belirli bir fiyat aralığında olan televizyonları listelemek için WHERE sorgusu kullanılabilir. WHERE sorgusu ayrıca LIKE operatörü kullanarak belirli bir kelime veya kelime öbeğine sahip verileri de belirleyebilir.

Karşılaştırma Operatörleri Açıklama
= Eşitlik operatörü, belirtilen koşulun doğru olması için sütundaki değerin tam olarak eşit olması gerekir.
!= Değil eşitlik operatörü, belirtilen koşulun doğru olması için sütundaki değer belirtilenden farklı olmalıdır.
< Küçüktür operatörü, belirtilen koşulun doğru olması için sütundaki değer belirtilenden küçük olmalıdır.
> Büyüktür operatörü, belirtilen koşulun doğru olması için sütundaki değer belirtilenden büyük olmalıdır.
<= Küçük veya eşit operatörü, belirtilen koşulun doğru olması için sütundaki değer belirtilenden küçük veya eşit olmalıdır.
>= Büyük veya eşit operatörü, belirtilen koşulun doğru olması için sütundaki değer belirtilenden büyük veya eşit olmalıdır.
  • WHERE sorgusunu kullanırken, koşulların doğru şekilde yazıldığından emin olun.
  • AND ve OR operatörlerini kullanırken, parantez içinde belirli koşulları gruplandırın. Bu, yanlış sonuçların önlenmesine yardımcı olacaktır.
  • Veritabanının performansını artırmak için WHERE sorgusuna ek bir sütun eklemeyin.

AND ve OR Operatörleri

AND ve OR operatörleri, WHERE sorgularında birden fazla koşulun kullanılmasına izin veren mantıksal operatörlerdir. Bu operatörlerin kullanımı, verilerin daha doğru bir şekilde filtrelenmesine olanak sağlar.

AND operatörü, işlemin solundaki koşulu ve sağdaki koşulu da karşılaması gerektiğinde koşulları birleştirir. Örneğin, bir veri seti içinde "Adı John ve Yaşı 25" olanları getirmek için "WHERE Adı = 'John' AND Yaşı = 25" ifadesi kullanılabilir.

OR operatörü ise, işlemin solundaki koşulun veya sağdaki koşulun doğru olması durumunda verileri getirir. Örneğin, bir veri seti içinde "Adı John olanları veya Yaşı 25 olanları" getirmek için "WHERE Adı = 'John' OR Yaşı = 25" ifadesi kullanılabilir.

AND ve OR operatörlerinin en önemli farkı koşulların birleştirilme şeklidir. AND operatörü, koşulların tamamının sağlanması durumunda sonucu verirken, OR operatörü sadece bir koşulun sağlanması durumunda bile sonuç döndürür.

Bir diğer önemli farklılık ise koşul sayısıdır. AND operatörü, iki koşulu birleştirirken, OR operatörü üç veya daha fazla koşulu birleştirmeye izin verir.

Aşağıdaki tabloda, AND ve OR operatörlerinin kullanım farklarını ve özelliklerini daha iyi anlayabilirsiniz:

Operatör Kullanım Farklılık
AND Koşulların hepsinin sağlanması durumunda sonucu döndürür İki koşulu birleştirir
OR Koşulların en az birinin sağlanması durumunda sonucu döndürür Üç veya daha fazla koşulu birleştirir

Bu operatörlerin doğru ve verimli bir şekilde kullanılması, veritabanı sorgularının oluşturulmasında oldukça önemlidir.


IN Operatörü

IN operatörü, WHERE sorgusu ile veritabanından birden fazla koşulu kontrol etmek için kullanılır. IN operatörü sayesinde, verilerin belirli bir liste veya alt kümesine erişmek mümkündür. Bu operatör ile birlikte kullanılan WHERE sorgusu da oldukça etkilidir. IN operatörü kullanılarak WHERE sorgusu nasıl oluşturulur?

IN operatörü, veritabanından bir dizi koşul kontrol etmek için kullanılır. Örneğin, ürünlerin belirli bir kategorisinde olan öğeleri göstermek için WHERE sorgusu kullanabilirsiniz. Bu tür bir sorgu, birden fazla koşulun kullanıldığı zaman oldukça uzun ve karmaşık olabilir. İşte burada IN operatörü devreye girer. Örneğin, IN operatörüyle bir WHERE sorgusu oluşturursanız:

SELECT * FROM urunler WHERE urun_kategori IN ('Meyve', 'Sebze', 'Et')

Bu sorgu, 'Meyve', 'Sebze' ve 'Et' olmak üzere üç kategoriye sahip tüm ürünleri getirir. İN operatörü, WHERE sorgusunu daha kısa ve anlaşılır hale getirir. Ayrıca, bu operatör ile birçok farklı koşul kontrol edilebilir. Örneğin, bir dizi sayı, bir dizi tarih veya bir dizi harf karakteri belirleyebilirsiniz.

IN operatörü, WHERE sorgusunda sıklıkla kullanılır. Özellikle, birden fazla koşulun kontrol edilmesi gerektiğinde oldukça faydalıdır. IN operatörü ile WHERE sorgusu kullanarak, veritabanından tüm koşulları anında kontrol edebilirsiniz.


LIKE Operatörü

LIKE operatörü, WHERE sorgusu ile kullanarak verileri filtrelemek için kullanılan popüler bir operatördür. Bu operatör, belirli bir kalıbı içeren verileri bulmayı sağlar. LIKE operatörü, WHERE sorgusu ile birlikte kullanıldığında % ya da _ karakterleri ile kalıplama yapabilirsiniz.

  • % sembolü: Herhangi bir dizgiyi ifade eder.
  • _ sembolü: Herhangi bir karakteri ifade eder.

Örneğin, "LIKE '%araba%'" ifadesi girildiğinde, arabanın herhangi bir yerinde geçen tüm verileri içeren sonuçlar döndürülür. Ayrıca, "LIKE 'ABC_'" ifadesi girildiğinde, "ABC1", "ABC2", "ABC3" gibi verileri filtreleyebilirsiniz. Ancak, "ABCD" gibi veriler filtrelenmeyecektir çünkü _ sembolü yalnızca bir karakteri ifade eder.

Bu tür sorgular, metin alanlarında veya karakterler içeren diğer alanlarda filtreleme yapmak için idealdir. LIKE operatörü, kullanıcının arama sorgusuna more flexibly yanıt vermek için kullanabilir.

LIKE Operatörü KullanımıAçıklama
LIKE '%araba%'araba kelimesinin herhangi bir yerinde geçen tüm verileri döndürür.
LIKE 'araba%'araba kelimesi ile başlayan tüm verileri döndürür.
LIKE '%araba'araba kelimesi ile biten tüm verileri döndürür.
LIKE 'ABC_''ABC1', 'ABC2', 'ABC3' gibi verileri döndürür.
LIKE '_BC%'B herhangi bir karakteri ifade eder. Bu sorgu, 'ABC', 'BBC', 'CBC', gibi tüm verileri döndürür. Ancak, 'ABCD' veya 'BCA' gibi veriler döndürmez.

LIKE operatörü, karakterlerle ilgili sorgularda alışılmadık sonuçlar üretme eğilimindedir, dolayısıyla WHERE sorgusu ile kullanıldığında iyi bir filtreleme yapmayı sağlayabilir. Ancak, büyük büyüklü küçüklü karakter farklılık gözetememe nedeniyle, iyi bir filtreleme sonucu için doğru kullanılmalıdır.


BETWEEN Operatörü

BETWEEN operatörü, belirli bir aralıktaki verileri çekmek için kullanılır. Bu operatör iki adet değer alır: en düşük ve en yüksek aralık değerleri. BETWEEN operatörünü kullanarak sorgulama işlemini kolaylaştırabiliriz.

Örneğin, bir kişinin doğum tarihinin 2000 yılından 2010 yılına kadar olan bir aralıktaki verisini çekmek için BETWEEN operatörünü kullanabilirsiniz:

id ad soyad dogum_tarihi
1 Ahmet Yılmaz 2005-05-28
2 Ayşe Güneş 1995-02-14
3 Deniz Öztürk 2012-11-03

Doğum tarihleri 2000 yılının altında olan kişileri çıkarmak için kullanacağımız sorgu:

SELECT * FROM kisiler WHERE dogum_tarihi BETWEEN '2000-01-01' AND '2021-12-31'

Bu sorgu sonucunda, sadece Ahmet ve Ayşe'nin bilgileri görüntülenecektir.

Bir diğer örnek ise, belirli bir fiyat aralığındaki ürünleri listelemek için kullanabiliriz:

SELECT * FROM urunler WHERE fiyat BETWEEN 100 AND 500

Bu sorgu sonucunda, fiyatı 100 ile 500 arasında olan tüm ürünler listelenecektir.


ORDER BY Sorgusu

MySQL veritabanında yer alan veriler, SELECT sorgusu kullanılarak çekilebilir. Bu sorgu ile tüm kolonlar veya belirtilen kolonlar çağrılabilir. Ancak bazen, verilerin belirli bir sıraya göre listelenmesi gerekebilir. İşte burada ORDER BY sorgusu devreye girer.

ORDER BY sorgusu, verilerin belirli bir düzende sıralanmasını sağlar. Bu sıralama, kolon isimleri veya kolon indexleri kullanılarak gerçekleştirilebilir. Örneğin, ürün tablosundaki fiyatları artan sıraya göre listelemek için aşağıdaki sorgu kullanılabilir:

SELECT * FROM urunlerORDER BY fiyat ASC;

Bu sorgu, ürün tablosundaki tüm verileri fiyatları artan şekilde sıralar. Özellikle büyük veritabanlarında, sıralama işlemi oldukça zaman alabilir. Bu nedenle, sorguya LIMIT anahtar kelimesi eklenerek, kaç tane verinin listeleneceği belirtilmelidir.

ORDER BY sorgusu aynı zamanda DESC parametresi kullanılarak da sıralama yapabilir. Bu durumda, verileri tersten sıralama imkanı sunar. Örneğin, yukarıdaki örnekte fiyatları azalan şekilde listelemek istiyorsak, sorgumuzu aşağıdaki gibi düzenleyebiliriz:

SELECT * FROM urunlerORDER BY fiyat DESC;

Bu sorgu, fiyatları azalan sıraya göre ürün tablosundan tüm verileri çağıracaktır. ORDER BY sorgusu ile ilgili diğer parametreler ve örnekler için aşağıdaki tabloya bir göz atabilirsiniz.

Komut Açıklama
ASC Küçükten büyüğe doğru sıralama (varsayılan)
DESC Büyükten küçüğe doğru sıralama
NULLS FIRST NULL değerleri ilk sıraya yerleştirme
NULLS LAST NULL değerleri son sıraya yerleştirme

ORDER BY sorgusu, verilerin belirli bir sıraya göre listelenmesine olanak sağlar. Bu sorgu, büyük veritabanlarında özellikle çok kullanışlıdır. Özellikle, sıralama işlemi zincirleme olarak gerçekleştirilebilir. Böylelikle, belirli bir düzene göre en uygun sonucu alabilirsiniz.


ASC ve DESC Sıralama

MySQL'de SELECT sorgusunu kullanarak veriler çekildiğinde, bu veriler belirli bir sıraya göre listelenir. Sıralamayı belirlemek için kullanılan iki anahtar kelime vardır: 'ASC' ve 'DESC'.

'ASC' anahtar kelimesi, verileri artan sırayla sıralar. Yani, belirli bir sütunda yer alan veriler, küçükten büyüğe doğru sıralanır. Örneğin, bir tablodaki 'Fiyat' sütununda yer alan verileri artan sırayla sıralamak isterseniz, şu kodu kullanabilirsiniz:

Sorgu Yapılan İşlem
SELECT * FROM urunler ORDER BY fiyat ASC Urunler tablosunda yer alan urunler fiyat sütunundaki veriler artan sırayla liste olarak gösterilir.

'DESC' anahtar kelimesi ise verileri azalan sırayla sıralar. Yani, belirli bir sütunda yer alan veriler, büyükten küçüğe doğru sıralanır. Örneğin, bir tablodaki 'Sipariş Sayısı' sütununda yer alan verileri azalan sırayla sıralamak isterseniz, şu kodu kullanabilirsiniz:

Sorgu Yapılan İşlem
SELECT * FROM siparisler ORDER BY siparis_sayisi DESC Siparisler tablosunda yer alan siparisler_sayisi sütunundaki veriler azalan sırayla liste olarak gösterilir.

Kısacası, 'ASC' sıralama artan sırayla, 'DESC' sıralama ise azalan sırayla sıralama yapılmasını sağlar.


LIMIT Sorgusu

MySQL'de veri çekme işlemleri yaparken bazen tüm verileri çekmek yerine belirli bir sayıda veri çekmek isteyebiliriz. İşte burada LIMIT sorgusu devreye girer. LIMIT sorgusu ile kaç tane verinin çekileceği belirlenebilir. Örneğin, "SELECT * FROM tablo_adı LIMIT 10" sorgusu ile sadece ilk 10 veri çekilebilir.

LIMIT sorgusu ile verilerin sınırı belirlenebilirken aynı zamanda offset değeri de atanabilir. Offset değeri, kaçıncı veriden itibaren çekileceğini belirler. Örneğin, "SELECT * FROM tablo_adı LIMIT 10 OFFSET 20" sorgusu ile 21-30 arasındaki veriler çekilebilir.

Bir diğer faydalı özellik ise LIMIT sorgusunun birden fazla tablo ile kullanılabilmesidir. Bu durumda her tablonun kendi LIMIT sorgusu atanabilir.

LIMIT sorgusu aynı zamanda kullanıcıların sayfalama gibi özelliklerde kullanılabilir. Verilerin belirli sayıda sayfada gösterilmesi istendiğinde, her sayfada kaç tane veri gösterileceği LIMIT ile belirlenebilir. Örneğin, "SELECT * FROM tablo_adı LIMIT 10 OFFSET 0" sorgusu ile ilk sayfada ilk 10 veri gösterilebilir. İkinci sayfada ise "SELECT * FROM tablo_adı LIMIT 10 OFFSET 10" sorgusu ile 11-20 arasındaki veriler gösterilebilir.