SQL 6 : Karmaşık (İç içe) SELECT Sorguları

İç içe Select sorguları, bir başka deyişle Alt Sorgu kavramı SQL‘de en zorlanılan kısımdır. Bu yazımda Alt sorgularla ilgili birkaç önemli noktaya değinerek, elimden geldiğince bol örnek yazmaya çalışacağım.

Neden İç içe Sorgu Kullanırız ?

Bir sorgudan elde ettiğiniz sonucu, diğer bir sorgu için kullanmanız gerektiğinde, iç içe sorgu kullanmanız gerekir.

Alt sorgu kavramı, genellikle birden fazla tablo söz konusu ise ortaya çıkar. Bu yüzden, örnek verebilmek amacıyla 5 adet tablo oluşturup, ilişlilerini kuralım.

Tabloların Oluşturulması ve İlişkiler

SQL 5 : Tablo Birleştirme ve Join Komutları

Bazı Veri tabanları sadece 1 tablodan oluşmaz. Bunun sebebi genellikle veri tekrarını önlemektir. Bu şekilde oluşturulmuş veri tabanlarında, tablolardaki değerleri birbirleriyle ilişkili bir şekilde kullanabilmek için “Tablo Birleştirme” işlemi yapılır.

Bu birleştirme işlemi 2 farklı tablo için de söz konusu olabilir, ikiden fazla sayıda tablo için de söz konusu olabilir. Dikkat edilmesi gereken nokta, tabloların Primary Key ve Foreign Key‘ler ile birbirlerine bağlanmış olması gerektiğidir.

Birkaç örnek yapmak üzere, 2 farklı tablo oluşturalım ve onları birbirine bağlayalım :

SQL 4 : Group By ile Gruplandırma

Group By fonksiyonu SQL‘de gruplandırma yapmak için kullanılır. Genellikle bir “Çoklu Satır Fonksiyonu (Aggregate Function)” ile beraber kullanılır.

Bildiğiniz gibi Çoklu satır fonksiyonları bir sütundaki verileri, bir işleme sokarak tek bir değer döndürür. Siz eğer tek değer döndürmesini istemiyorsanız, yani her grup için ayrı ayrı hesap yapmasını istiyorsanız Group By ile işlem yapabilirsiniz.

Çok uzatmadan, aşağıdaki tablo üzerinde Group By fonksiyonu ile birkaç gruplandırma yapalım.

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

SQL 3 : Fonksiyonlar

Bir programlama dilinde fonksiyon denildiğinde akla ilk olarak belli işleri yapmak üzere tasarlanmış kod blokları gelir. Fonksiyonlarla çalışmak, tekrarlanan işleri yapmak üzere, gereksiz kod tekrarını önleyen çok sağlıklı bir yöntemdir.

SQL Fonksiyonları da aynı mantıkla üretilen fonksiyonlardır. Gerekli parametreleri alıp, sizin istediğiniz sonuçları geri döndürürler. Bir programlama dilinde olduğu gibi, bize kendi fonksiyonumuzu yazmamıza olanak sağlamıyor olsalar bile, hazır olarak bulunan çok yararlı fonksiyonlar vardır. Bunlar SQL’e güç katan unsurlar olarak değerlendirirler.

SQL Fonksiyonları 2 farklı mantık üzerine inşa edilmişlerdir. Bunlardan biraz, yazının indexini oluşturması açısından bahsetmek gerekirse ;

Çoklu Satır Fonksiyonları (Aggregate Functions) : Bir sütundaki tüm satırlara uygulanırlar, bir hesap yapıp geriye tek bir değer döndürürler.

DML, DDL ve SQL

Sorgu yapmak için birşeyler seçmek gerekir, SQL‘de bu işi SELECT komutu yapmaktadır. Fakat yapmak istedikleriniz her zaman sadece bir sorgudan ibaret olmayabilir. Bazı Data Manupulation Language (DML) ve Data Defination Language (DDL) komutlarını kullanarak, yeni bir veritabanı oluşturabilir, tablonuza yeni bir sütun ekleyebilir, kayıtlarınızı güncelleyebilir veya silebilirsiniz. Bunları yaparken de görsel olarak hiçbir editör kullanmanız gerekmez.

Esasen, görsel bir edidör sunan VTYS’ler de arkaplanda bir kod çalıştırırlar. Bu yüzden VTYS kurslarında veya üniversitelerde verilen Veri Tabanı derslerinde herhangi birşeyin kodla nasıl yapılacağı da anlatılır.

DML, DDL ve SQL aslında 3 farklı birer dildir. Fakat daha önce de bahsetmiş olduğum gibi DDL ve DML’nin fazla komutu olmamasından dolayı kitaplarda SQL’in içinde anlatılmaktadır. Bu ufak bir not olarak kalsın.

O zaman yavaş yavaş komutları tanımlamaya ve örneklerini yazmaya başlayalım. Tabii önce işimize yarayabilecek bir tablo oluşturalım, adını da “Filmler” yapalım ;

SQL 2 : Yararlı ve Bilinmesi Gereken SQL Komutları

SQL’e Giriş yaptıktan sonra, bu yazımda aşağıdaki SQL komutlarını açıklamayarak SQL kaynağı oluşturmaya devam edeceğim ;

  • AS ile isimlendirme
  • DISTINCT ile veri tekrarını önleme
  • ORDER BY ile sıralama
  • AND ve OR operatörleri
  • TOP ile istenilen sayıda kayda ulaşma
  • NULL tipi değerlerin kontrolü
  • UNION ve UNION ALL ile sorgu birleştirme
  • SELECT INTO ile sonuçları farklı bir tabloda gösterme

Öncelikle üzerinde çalışma yapabileceğimiz bir tablo oluşturalım ;

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

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.

Kaliteli Blog Yazısı İçin 10 Temel Öneri

Bloglar, günümüzde kendimizi ifade etmek, kendimizi tanıtmak ve çevremizi genişletmek için kullandığımız online araçlardan sadece biri. Ülkemizde de gittikçe yaygınlaşan blog sitelerinde en önemli konulardan biri de ziyaretçileri siteye çekebilecek ve onları sitede tutabilecek içerikler eklemek. İşte bunun için gerekli olan 10 Temel Öneri:

1. Cümlelerinizi kısa ve anlatmak istediğiniz konuya odaklı halde tutmaya, konunuzun dışına çıkıp okuyucunuzun dikkatini dağıtmamaya özen gösterin.

2. RSS Beslemelerinde ve Google Aramalarında daha etkili sonuçlar almak için yazı başlıklarınızın anlamlı ve konuyla alakalı olmasına dikkat edin.

3. Yazının devamını özetler nitelikte bir giriş paragrafıyla yazınıza başlayın.

4. Aramalarda kullanılabilecek keyword’leri tahmin edin ve yazılarınıza, abartmamak kaydıyla, bolca etiket ekleyin.

5. İçeriğinizi sade tutmaya özen gösterin! Fazla detay, okuyucuyu sıkacaktır.

6. Anlatmak istediklerinizi daha iyi aktarmak için internet dünyasındaki diğer kaynaklardan linkler paylaşın. Paragraflar dolusu yazıyı bir link ile içeriğinize ekleyebilirsiniz.

7. Yazıyı bitirdikten sonra bir defa okuyun ve gereksiz gördüğünüz kısımları yazınızdan çıkarın. Unutmayın, sadelik!

8. Toplamda 350-400 kelimeyi geçmeyecek bir yazı yeterli olacaktır.

9. Aralarında boşluklar olan kısa paragraflar kullanın, ara başlıklar ve listelemeler de verimli ve ilgi toplayıcı olacaktır.

10. Karmaşık ve anlaşılmaz bir dil kullanmayın. Yazınızı yazarken sade, anlaşılabilir ve kaba olmayan bir dil kullanın.

Bu 10 temel öneriye dikkat etmek, okuyucularınızın blogunuzda sıkılmadan daha uzun süre geçirmesini sağlayacak ve blogunuza olumlu etki yapacaktır.

Dubai’de Yaşamak ve Yaşamamak için 7 Neden

Microsoft Orta Doğu ve Afrika Bölge Pazarlama Müdürü Mehmet Nuri Çankaya Hocamın Dubai ile ilgili yazı dizisinden alıntı yapılmıştır.

Büyük Resim için Tıklayınız

Dubai gerçekten uçlarda yaşayan bir şehir; dünyanın ilk palmiye şeklindeki yapay adası Palm Jumeriah; dünyanın en uzun binası Burj Khalifa, dünyanın en lüks oteli Burj Al Arab, dünyanın en büyük alışveriş merkezi Dubai Mall vb. hepsi Dubai’de ve daha birçok “en” inşaat aşamasında. Peki yaşamak için nasıl bir şehir Dubai? Buraya taşındığımızdan beri eşime de bana da Türkiye’den birçok kişi bu soruyu soruyordu, sonuçta sadece 6 aydır buradayız ama sizler için kısaca özetlemek istedik. Sonuçta bakalım yıllar geçtikçe neler düşüneceğiz ama şimdilik kısa bir liste yaptık:

Dubai’de Tatil için 7 Öneri

Microsoft Orta Doğu ve Afrika Bölge Pazarlama Müdürü Mehmet Nuri Çankaya Hocamın Dubai ile ilgili yazı dizisinden alıntı yapılmıştır.

Büyük Resim için Tıklayınız

Dubai tatil için çok güzel bir şehirdir. Özellikle her mevsim güneşli olması nedeniyle ve Türkiye’ye yakınlığından dolayı tercih edilebilir. En iyi aylar Ekim-Kasım ve Mart-Nisan aylarıdır. Bu aylar dışında da tatil için gelinebilir ama Haziran-Eylül tercih edilmemelidir. Tatil için geldiğinizde yaklaşık 3 gün içinde tüm Dubai’yi gezme şansınız bulunmaktadır. Gezi için önerilerim ise şunlar:

Beni yukari isinla