SQL 1 : SQL’e Giriş ve Temel Sorgular

Veri Tabanı Yönetim Sistemlerinden bahsettikten sonra, artık bir VTYS bileşeni olan SQL dili ile ilgili dökümanımı hazırlayabilirim.

Öncelikle birkaç noktaya değinmek istiyorum. Yukarıda da belirttiğim gibi SQL sadece ve sadece VTYS’ler için bir bileşendir. Veri tabanını öğrenmek isteyenler ilk olarak SQL öğrendiklerinden veri tabanını SQL’den ibaret sanabiliyorlar. Ben de bu yanlış anlaşılmayı bir nebze de olsa giderebilmek için burayı vurguluyorum, Veri tabanı SQL’den ibaret değildir.

SQL, bir programlama dili değil, sorgu dilidir. Bu sebeple SQL ile yapabilecekleriniz sınırlıdır. Basit bir veritabanından kayıt çekme işlemini SQL 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. SQL sorgusu ne kadar karışık olursa, server o kadar yorulacaktır. Ben buradan SQL ile beraber, onu tamamlayıcı ve Server ın yükünü hafifletici bir dil kullanılmasını gayet mantıklı buldum. Eğer yanlış düşündüğümü düşünen varsa, lütfen belirtsin.

SQL ile ilgili belirtmek istediğim noktalar bunlardı, biraz fazla uzatmış olabilirim ama hadi biraz SQL sorgusu yazalım.

Veri Tabanı için bir Tablo oluşturalım

SQL bilgilerimi siteye aktarırken (gören de aşmış sanacak), bunu bir örnek üzerinden yapmanın daha mantıklı olacağını düşünüyorum. Bu sebeple kendime ufak bir Film Veritabanı daha doğrusu bir tablo oluşturdum. Bu film veritabanını da tabii ki IMDB’den yararlanarak oluşturdum. Seçtiğim filmler TOP 250 içinde en beğendiğim filmlerdir. Konuyu dağıtmadan, bu veritabanını aşağıda oluşturuyorum.

Film_No Ad Tarih IMDB_Puan
1 The Shawshank Redemption 1994 9,2
2 The Dark Knight 2008 8,8
3 Fight Club 1999 8,8
4 Forrest Gump 1994 8,6
5 Leon 1994 8,6
6 V For Vandetta 2006 8,1
7 A Beautiful Mind 2006 8,0
8 Eternal Sunshine of the Spotless Mind 2004 8,4
9 Inception 2010 8,8
10 Good Will Hunting 1997 8,1

Bundan sonra bu tabloyu değişik sorgular için sık sık kullanacağım. Bu arada bu tablonun ismi “Filmler“.

Bir SQL sorgusuna başlarken yazılan temel bir kelime vardır. Bu kelime, daha doğrusu kod her Veritabanı Yönetim Sisteminde (VTYS) aynıdır. SQL öğrenmeye başlayan herkes bunu bilir : SELECT. Bu komut ile veritabanında oluşturduğunuz sütunlardan herhangi birini, ikisini ya da hepsini seçebilirsiniz.

Sorgu kodunu SELECT ile yazdıktan sonra geriye belirtmeniz gereken son önemli birşey daha kalıyor. Bu sorgu hangi tablo için çalışacak ? Bunun için de FROM kelimesi kullanılıyor.

Select ve FROM ile Basit bir Sorgu oluşturma

Bu iki kelimeyi kullanarak en basit ve temel sorgumuzu, oluşturduğumuz tablodan sadece film isimlerini çeken sorguyu yazalım ;

SELECT Ad
FROM Filmler

Film isimlerini ve yanında IMDB Puanlarını çeken sorguyu yazalım ;

SELECT Ad, IMDB_Puan
FROM Filmler

Şimdi de tablodaki bütün kayıtları çeken sorguyu yazalım ;

SELECT Film_No, Ad, Tarih, IMDB_Puan
FROM Filmler

Bu şekilde tüm kayıtları çekebiliyoruz fakat bunun bir de kısa yolu var ;

SELECT *
FROM Filmler

Asteriks (*) karakteriyle tablodaki bütün değerleri çekebiliyoruz.

WHERE ile Sorgunuza Kriter verin

Tabii ki SQL dediğimiz dil bu iki komuttan oluşmuyor. WHERE komutu ile yaptığınız sorguya bir kriter belirleyebilirsiniz. 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

Öncelikle mantıksal operatörleri kullanalım. Mantıksal operatörleri aşağıdaki gibi sıralayabiliriz ;

= (eşit), <> (eşit değil), < (küçük), > (büyük), <=(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 filmlerin adlarına ulaşalım ;

SELECT Ad
FROM Filmler
WHERE Tarih = 1994

Mantıksal operatörleri stringler, türkçesiyle katarlar için de kullanabilirsiniz. Dikkat etmeniz gereken nokta ise string değerlerini tırnak işaretleri arasına almanız gerektiğidir.

Film ismi “L” harfinden büyük olan filmlerin tüm bilgilerine ulaşalım ;

SELECT *
FROM Filmler
WHERE Ad > 'L'

Tek tırnak ya da çift tırnak farketmiyor.

LIKE ile Kriter Belirleme

Kriterde belirtilen karakter katarını barındıran kayıtlara ulaşmak 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şlayan kayıtlara ulaşalım ;

SELECT *
FROM Filmler
WHERE Ad LIKE "The*"

Knight katarı ile biten kayıtlara ulaşalım ;

SELECT *
FROM Filmler
WHERE Ad LIKE "*Knight"

Böyle bir sorgu bize The Dark Knight filmini döndürecektir.

İçinde “for” geçen film isimlerine ulaşalım ;

SELECT Ad
FROM Filmler
WHERE Ad LIKE "*for*"

Bu sorgu ise, Forrest Gump ve V for Vandetta adlı filmleri döndürecektir.

IN ile Kriter Belirleme

İstediğiniz bir sütundaki kayıtlardan, kriterde belirtilmiş kaydı ya da kayıtları döndürür.

2009 yılındaki filmlere ulaşmak için aşağıdaki gibi bir sorgu kullanabiliriz ;

SELECT *
FROM Filmler
WHERE Tarih IN (2009)

Adı Leon ve Avatar olan filmlerin tüm verilerine ulaşalım ;

SELECT *
FROM Filmler
WHERE Ad IN ('Leon','Avatar')

Bu şekilde IN fonksiyonunun içine birden fazla kriter de girebiliyorsunuz.

BETWEEN ile Kriter Belirleme

Adın da anlaşıldığı gibi bu fonksiyon iki parametre alıp, bu değerler arasındaki kayıtları döndürüyor.

1994 ve 2000 yılları arasındaki filmlere BETWEEN kullanarak erişelim ;

SELECT *
FROM Filmler
WHERE Tarih BETWEEN 1994 AND 2000

Görüldüğü gibi iki değer arasında AND kullanmak gerekiyor.

Katarlar için de bir örnek yapalım, baş harfi “I” ve “S” arasında olan filmlere ulaşalım ;

SELECT *
FROM Filmler
WHERE Ad BETWEEN 'I' AND 'S'

Sonuç – – Özet

SQL bir sorgu dilidir. SELECT, FROM, WHERE gibi basit komutlardan oluşur. Kompleks bir yapısı yoktur.

SELECT ile seçme işlemi yapılır, FROM ile hangi tablodan seçme işlemi yapılacağı belirtilir.

WHERE ile beraber kullanılan mantıksal operatörler ve fonksiyonlar ile bir sorgu için kriter belirlenebilir. LIKE, IN ve BETWEEN komutları ile sorgunuzu istediğiniz şekilde düzenleyebilirsiniz.

Benzer Yazılar

Yorumlar

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla