SQL SORGU
SQL sadece ve sadece veri tabanı yönetim sistemleri için bir bileşendir. Veri tabanını öğrenenlerin ilk olarak SQL öğrendikleri için veri tabanını SQL’den
ibaret sanılabilir. Bu yanlış anlaşılmayı bir nebze de olsa giderebilmek için bunu vurgulamalıyız. Veri tabanı SQL’den ibaret değildir.
SQL sanılanın aksine programlama dili değil, bir sorgu dilidir. Bu sebeple SQL ile yapılabilecek şeyler sınırlıdır. Veri tabanından basit bir kayıt çekme
işlemini SQL komutları ile gerçekleştirebilirsiniz. Fakat SQL, bir döngü kurmanızı sağlayan kod yapısına sahip değildir. Bu yüzden SQL ile beraber onu
tamamlayıcı bir programlama dili kullanılır.
Bir SQL sorgusu, server üzerinde icra edilir. Sorgu ne kadar karışık olursa, server o kadar yorulacaktır. SQL ile beraber, onu tamamlayıcı ve Server’ın
yükünü hafifletici bir dil kullanılması mantıklı bir yöntemdir.
Veri Tabanı için bir Tablo oluşturalım
Bunu bir örnek üzerinden yapmak daha mantıklı olacaktır. Bu sebeple bir Film Veri tabanı daha doğrusu bir tablo oluşturdum. Bu film veri tabanı da tabii ki
IMDB’den yararlanarak oluşturuldu.
Bundan sonra bu tabloyu farklı farklı sorgular için kullanacağız. Bu arada bu tablonun ismi “Filmler“ olacak.
SQL sorgusuna başladığımızda yazılan temel birkod vardır. Bu kod her Veri tabanı Yönetim Sisteminde (VTYS) aynıdır. SELECT. Bu komut veri tabanında
oluşturduğumuz sütunların birini, ikisini ya da hepsini seçebilirsiniz.
Kodu “SELECT” ile yazıp daha sonra “FROM” ile sorguyu kullanacağımız tabloyu belirtmemiz gerekiyor.
Select ve FROM ile Basit bir Sorgu oluşturma
Bu iki kelimeyi kullanarak temel, tablodan sadece film isimlerini çeken sorguyu yazalım;
SELECT Ad
FROM Filmler
Film isimlerini ve yanında IMDB Puanlarını çeken sorgu;
SELECT Ad, IMDB_Puan
FROM Filmler
Tablodaki bütün kayıtları çeken sorgu;
SELECT Film_No, Ad, Tarih, IMDB_Puan
FROM Filmler
Tüm kayıtları çekmenin kısa yolu;
SELECT *
FROM Filmler
Asteriks yani (*) karakteri, tablodaki bütün değerleri çekebilmemize yarayan komuttur.
WHERE ile Sorgunuza Kriter verin
SQL dili tabii ki de bu iki komuttan oluşmuyor. WHERE komutu yaptığımız sorguya kriter eklememizi sağlar. Kriterleri belirtirken herhangi bir programlama
dilinde olduğu gibi mantıksal operatörleri, LIKE, IN ve BETWEEN komutlarını kullanabilirsiniz.
Mantıksal Operatörler ile Kriter belirleme
Mantıksal operatörlere bir göz atalım;
= (eşit), < (küçük), > (büyük), <> (eşit değil), <=(küçük eşit), >= (büyük eşit)
IMDB Puanı 8,5′den büyük olan filmlerin tüm bilgilerini çeken sorguyu yazalım ;
SELECT * FROM Filmler
WHERE IMDB_Puan > 8,5
1994 yılında çıkan filmleri sıralayalım;
SELECT Ad FROM Filmler
WHERE Tarih = 1994
Mantıksal operatörleri stringler değerler için bile kullanabilirsiniz. Burada dikkatli olunması gereken kısım ise string değerlerini tırnak işaretleri
arasına almanız gerektiğidir.
Film ismi “L” harfinden büyük olan filmleri sıralayalım;
SELECT * FROM Filmler
WHERE Ad > 'L'
Tek tırnak ya da çift tırnak farketmiyor.
LIKE ile Kriter Belirleme
Bu komut kriterde belirtilen karakter stringini barındıran kayıtlara ulaşmamız için kullanılır. “Asterisk” karakteri “LIKE” ile beraber kullanılırken,
tamamlayıcı görevi görür.
Tablodan Adı “The” ile başlayanları sıralayalım;
SELECT * FROM Filmler
WHERE Ad LIKE "The*"
Knight katarı ile biten kayıtları sıralayalım;
SELECT * FROM Filmler
WHERE Ad LIKE "*Knight"
Böyle bir sorgu bize The Dark Knight filmini gösterecektir.
İçinde “for” geçen filmleri sıralayalım;
SELECT Ad FROM Filmler
WHERE Ad LIKE "*for*"
Bu sorgu ise, Forrest Gump ve V for Vandetta adlı filmleri gösterecektir.
IN ile Kriter Belirleme
İstediğiniz bir sütundaki verilerden, şartlarda belirtilmiş kaydı ya da kayıtları gösterecektir.
2009 yılındaki filmleri listelemek için aşağıdaki gibi bir komut kullanabiliriz;
SELECT * FROM Filmler
WHERE Tarih IN (2009)
Adı Leon ve Avatar olan filmlerin tüm verilerini listeleyelim;
SELECT * FROM Filmler
WHERE Ad IN ('Leon','Avatar')
Bu şekilde IN fonksiyonunun içine birden fazla kriter de girebiliyorsunuz.
BETWEEN ile Kriter Belirleme
Bu fonksiyon iki parametre alıp, bu değerler arasındaki kayıtları döndürmemize yarıyor.
1994 ve 2000 yılları arasındaki filmlere BETWEEN kullanarak listelemek için;
SELECT * FROM Filmler
WHERE Tarih BETWEEN 1994 AND 2000
İki değer arasında “AND” kullanmayı unutmamalıyız.
Stringler için ise baş harfi “I” ve “S” arasında olan filmlere ulaşalım ;
SELECT * FROM Filmler
WHERE Ad BETWEEN 'I' AND 'S'