0 212 951 05 08   bilgi@ofisdata.com

Yazılarımız

OfisData

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.

SQL Sorgu

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'

PAYLAŞ


 OFİS DATA