Tasarım Kodlama

SQL Select Komutu ve Örnekleri

Daha önceki yazımızda Veri Tabanı Nedir? Nerelerde Kullanılır? konulu bir yazı yazmıştık. Bu yazıda veritabanı kavramı ile ilgili pek çok bilgiye yer yermiştik. Şimdi veritabanında sorgulama bu yazıda ise veri tabanında sorgulama yapmak için kullanabileceğiniz SQL Select ifadesi hakkında bilgiler bulacaksınız.

Pekala, biraz SQL’e geçelim !! Öğreneceğimiz ilk komut, veri getiren herhangi bir SQL ifadesi için ihtiyacınız olan ilk talimat olduğu için SELECT olacaktır. INSERT ve CREATE gibi başka başlatma komutları da vardır, ancak veritabanları ile etkileşimlerin çoğu SELECTing data’dır.

En basit sorguyla başlayalım ve geriye doğru bir değer seçelim. Her hangi bir SQL programı indirerek SQL’i çalıştırmayı deneyebilirsiniz Ben burada SQL Server Management Studio (SSMS) kullanacağım. SQL’inizi çalıştırmayı denemeniz için orada.

Bu ifadeyi her hangi bir SQL IDE’sinde çalıştırdığınızda sayısal olarak 38 değerinin döndüğünü göreceksiniz.

Harika, az önce bir sayı döndürdü. Karakterlerin yanı sıra farklı türde değerleri de getirebiliyoruz. Aşağıdaki örnekte “Merhaba Dünya” değerini içeren bir dizeyi döndüreceğiz.

Her sorgunun noktalı virgülle bitmesi gerektiğini unutmayın. Veritabanının talimat vermeyi bitirdiğinizi tam olarak anlaması budur.

String (Dizge) türündeki değerleri tek tırnaklar içinde verdiğimiz dikkatinizi çekmiştir. Sizde doğrudan metin olarak çıktı alacağınız değerleri tek tırnaklar içine yazmalısınız.

Matematik İşlemleri

Sayılarla oynarken, SQL’in bir veritabanına bir sonuç üzerinde biraz matematik yapma talimatı verebileceğini de belirtebiliriz.

Aşağıdakilere benzer bazı sorgular deneyin:

Ayrıca dizeleri birleştirebilir

Ve daha sonra DATE ve TIME sorgularına daha fazla değineceğiz, ancak burada, sayılar ve dizelerin yanı sıraSQL’deki başka bir yaygın veri türü kategorisi olan bir tarih seçmenin hızlı bir örneği var.

Burada kendimize yazdığımız verileri seçtik. Açıkçası, tüm yaptığı buysa SQL oldukça işe yaramazdı, ancak bundan sonra verileri nereden SEÇECEĞİNİZİ ele alacağız!

FROM Kullanımı

Artık verilerin nasıl seçileceğini biliyorsunuz, ancak bu verileri nereden alacağınızı henüz nasıl seçeceğinizi bilmiyorsunuz. Şimdi gerçek şeylere geçelim ve belirli bir tablodan verileri seçin.

Örnek veritabanımızda, bazı öğrenci bilgieri ve kitap listeleri mevcut tablonun şeması şu şekilde olacaktır.

Siz de veritabanını indirip kurabilirsiniz.

Bu tablodaki verileri almak için hangi sütunları SEÇMEK istediğimizi ve nereden seçmek istediğimizi belirtmemiz gerekir. Öyleyse sakladığımız tüm öğrenci adlarını almaya çalışalım. SELECT FROM şablonu şu şekilde olacaktır.

Basit bir tanesiyle başlayalım ve öğrenci adlarını sorgulayalım.

Şu verilere bir bak! Tablonun alt kısmına, tüm sayfayı kaplamaması için sınırlandırma yapmalıyız ama bu sonraki konu. Öğrenci tablosunda tüm ad ve soyadlar getirildi.

Ama tabii istemiyorsak tüm sütunları sorgulamak zorunda değiliz. Sadece tüm öğrenci bilgilerini umursamadık.

* Sembolü Kullanımı

Bazen getirmek istediğiniz tüm sütunları listelemek can sıkıcıdır. Sadece tüm sütunların mevcut olmasını istiyorsanız, SQL * kısayoluna sahiptir. * İşareti “splat” olarak adlandırılır ve tüm sütunları almak için kullanışlı, sık kullanılan bir kısayoldur.

Örnek veritabanımızda öğrenciler ve kitaplar gibi birçok başka TABLO var. Bu tablolardan bazılarını keşfetmek için SELECT * FROM [tabloadi] yapısını kullanabiliriz.

Şimdi biraz daha derinleştirelim. Aldığımız verileri sıralama yapmadan olduğu gibi listelediğimizi görüyorsunuz. Bu sonuçları nasıl filtreleyeceğimizi, gruplayacağımızı, işleyeceğimizi ve sınırlayacağımızı öğrenmemiz gerekiyor.

ORDER BY Kullanımı

Varsayılan olarak sonuçlar, veritabanında saklandıkları sırayla döndürülür. Ancak bazen onları farklı şekilde sıralamak isteyeceksiniz. Bunu SQL şablonumuzun genişletilmiş sürümünde gösterildiği gibi sorgularınızın sonundaki “ORDER BY” komutu ile yapabilirsiniz.

Örneğin, aşağıdaki sorgu ograd ile sıralanan tüm alanları gösterir. Diğer sütunlara göre sıralamayı deneyin. Soyadlara göre sıralanacak şekilde değiştirebilir misiniz?

ORDER BY ile birden fazla alana göre sıralama yapabilirsiniz. Çok sayıda yinelenen satırınız varsa aynı satırları da farklı sütunlara göre tekrar sıralama yapabilirsiniz. Aşağıdaki örnekte önce ad alanına, ad alanları aynı olanları dasoyad alanına göre sıralamaktadır.

Artan(ASCending) ve Azalan (DESCending) Sıralama Yönü

Artık artan şekilde sıralamayı öğrendik. Şimdi azalan şekilde sıralamayı deneyelim. Bu işlem için bir ifadeye daha ihtiyacımız var.

Başlıktan anlaşılacağı gibi artan için ASC , azalan için DESC ifadelerini kullanıyoruz.

Aşağıdaki SQL kodunda öğrenci adlarını Z’den A’ya doğru sıralıyoruz.

WHERE Komutu

Sonuçları sınırlandırmak için WHERE komutunu kullanabilirsiniz. WHERE komutundan sonra sınırlandırma parametrelerini girerek sorgu üzerinde filtreleme yapabilirsiniz.

Koşullar

Koşullar, basitçe doğru veya yanlış olan ifadelerdir. Veritabanı bu ifadeleri alır ve tablolarınızı tararken tüm satırlarda değerlendirir ve yalnızca doğru olan sonuçları döndürür.

Örneğin ogrno’su 85 olan öğrencinin adını görmek istediğimizi varsayalım. Koşul ogrno= 85 olacaktır. Aşağıdaki sorguyu çalıştırarak koşulu deneyin:

Sorgu, veritabanına öğrenciler tablosunu taramasını ve koşulun ogrno = 85 olantüm satırları getirmesini istedik.

Benzer sorguyu metinsel ifadeler için de kullanabiliriz. ‘Deniz’ adındaki öğrencileri aramak için aşağıdaki sorguyu yazarak tüm ‘Deniz’ adındaki öğrencileri listeleyelim.

Çoklu Karşılaştırma

Yukarıdaki örneklerde bir alana göre filtreliyorduk. Ancak bu her zaman böyle değildir. Çoğunlukla birden fazla durum söz konusu olmaktadır. Farklı koşulları bir birine bağlamak için AND, OR yada NOT komutlarını kullanabiliriz.

AND Komutu Kullanımı

Sınıfı 10A olan kız (K) öğrencileri listeleyelim. Bu örnekte iki şartında sağlandığı bir durum söz konusu olduğu için iki şartı birleştirmek için AND operatörünü kullanıyoruz.

Örneği inceleyelim.

OR Komutu Kullanımı

Yukarıdaki örnekte AND komutunun nasıl kullanıldığını gördünüz. Sıradaki örnekte VEYA karşılaştırması yapmak için OR operatörünü kullnacağız.

Örnek: 10A ve 10B sınıfındaki öğrencileri listelemek için OR komutunu kullanabiliriz. Aşağıdaki örnek iki ayrı sınıftaki öğrencileri listelemektedir.

NOT Komutu Kullanımı

NOT işlecini önüne koyarak bir koşulu tersine çevirebilirsiniz. Örneğin, 10A sınıfı dışındaki tüm öğrencileri veri tabanından sorgulayalım.

SELECT komutu ile ORDER BY, WHERE komutlarının yanı sıra GROUP BY, JOIN ve HAVING gibi komutları bir arada kullanabilirsiniz. Aşağıdaki örnekler bu konularda sizlere yardımcı olacaktır.

SQL Select Sorgu Örnekleri

Örnek 1: Öğrenci tablosundaki Adı ‘A’ harfi ile başlayan öğrencileri listeleyiniz.

Örnek 2: kitap tablosundaki sayfa sayısı 50 ile 200 arasında olan kitapların adını ve sayfa sayısını listeleyiniz.

Örnek 3: Öğrenci tablosundaki öğrencilerden adı A, D ve K ile başlayan öğrencileri listeleyiniz.

Örnek 4: Öğrenci tablosundaki sınıfı 9A olan Erkekleri veya sınıfı 9B olan kızların adını, soyadını, sınıfını ve cinsiyetini listeleyiniz.

Örnek 5: Öğrenci tablosunda doğum yılı 1989 olan öğrencileri listeleyiniz.(Not: veritabanında tarihler ay/gün/yıl şeklinde sorgulanır)

Örnek 6: Öğrencileri adına, adı aynı olanlarıda soyadlarına göre sıralayınız.

Örnek 7: Sayfa sayısı en fazla olan kitabı listeleyiniz.

Örnek 8: Öğrenciler tablosundaki en genç öğrenciyi listeleyiniz.

Örnek 9: 10A sınıfındaki en yaşlı öğrenciyi listeyin.

Örnek 10: Rastgele bir öğrenci seçin

Örnek 11: 10A sınıfından rastgele bir öğrencinin adını, soyadını, numarasını ve sınıfını getirin.

Örnek 12: Öğrenci tablosundaki rastgele bir öğrenciyi yazarlar tablosuna yazar olarak ekleyiniz.

Örnek 13: 9A sınıfındaki tüm öğrencileri 10A sınıfına aktarın

Örnek 14: Öğrencinin adını, soyadını ve kitap aldığı tarihleri listeleyin.

Örnek 15: 10B veya 10C sınıfındaki öğrencilerin numarasını, adını, soyadını ve okuduğu kitapları, öğrenci adına göre  listeleyin.

Örnek 16: Kitap almayan öğrencileri listeleyin.

Örnek 17: Alınan kitapların kitap numarasını, adını ve kaç defa alındığını kitap numaralarına göre artan sırada listeleyiniz.

Örnek 18: Her öğrencinin adı, soyadı, kitabın adı, yazarın adı soyad ve kitabın türünü ve kitabın alındığı tarihi listeleyiniz.  Kitap almayan öğrenciler de listede görünsün.

Örnek 19: 10A veya 10B sınıfındaki öğrencilerin adı soyadı ve okuduğu kitap sayısını getirin.

Örnek 20: Sayfa sayısı ortalama sayfa sayısından fazla olan kitapları listeleyiniz.

Örnek 21: Mayıs ayında okunmayan kitapları listeleyin.

Örnek 22: Sayfa sayısı ortalama sayfanın  üzerindeki kitapları listeleyin.

Örnek 23: Öğrenci tablosunda kaç farklı isimde öğrenci olduğunu listeleyiniz.

Örnek 24: En fazla sayfası olan kitabın adını ve sayfa sayısını listeleyiniz.

Örnek 25: En az sayfası olan kitabın adını ve sayfa sayısını listeleyiniz.

Örnek 26: numarası 15 olan öğrencinin okuduğu toplam sayfa sayısını bulunuz.

Yorum yap