| TEMEL SQL SORGULAMALARI |
|
|
|
| Yazar Hanzala | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sunday, 26 December 2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BÖLÜM 2
Temel SQL Sorgulamaları :
SELECT Komutu :
Tek tablodan gerekli bilgileri elde edbilmek için sorgulama yapabilecek SQL komutu olan SELECT ‘ in en basit hali aşağıdaki gibidir : SELECT * FROM personel ; Bu komut, personel adlı tablo içindeki tüm bilgileri koşulsuz olarak listeleyecektir. SELECT sözcüğünü izleyen kısımda * sembolünün bulunması ilgili tablodaki tüm sütun isimlerinin ve ilgili bilgilerin listelenmesini sağlayacaktır. SELECT sicil, sos_g_no, ad, soyad, dog_tar, adres, cins, brüt, böl_no, yön_s_g_n FROM personel ; Şeklinde olacaktır.SELECT sözcüğünden sonra gelen kısımda sütun adları, FROM sözcüğünden sonra gelen kısımda ise tablo ismi yer almaktadır.
2.1 Tekrarlı Satırların Ortadan Kaldırılması :
SQL ‘ de tablşo içinde birbirinin aynı data içeren satırlara müseade edilir. Birbirinin aynı olan satırların listeleme esnasında bir kez yazılması için SELECT komutuna DISTINC sözcüğü eklenir. SELECT DISTINC sat_no FROMpar_sat;
2.2 Tablo Bilgilerinin Sıralanmış Olarak Listelenmesi :
Tablodan listelenecek bilgilerin belirli bir sütun adına göre sıralanmış olarak görüntülenmesi için SELECT komutuna ORDER BY sözcüğü ilave edilir. Örneğin personel tablosundaki bilgilerin sicil, ad, soyad, ve brüt sütunlarını maaşa göre sıralı olarak listeleyiniz: SELECT sicil,ad,brüt FROM personel ORDER BY brüt asc ; Sonuç : ASC sözcüğü artan anlamındadır.Veriler azalan sırada büyükten küçüğe ya da alfabetijk olarak Z ‘den A ‘ya sıralanmak istense idi bu sözcük yerine DESC kullanılacaktı.
2.3 Birden Çok Alana Göre Sıralama :
Bir tablo içindeki verileri aynı anda birden çok sütuna göre sıralamak da mümkündür. Örneğin personel tablosundaki personel adı ve MaaŞa göre listelemek isteyelim: SELECT sicil, ad, soyad, brüt FROM personel ORDER BY ad, brüt ; Burada tablo öncelikle ada
göre artan sırada sıralanacak, sadece aynı ada sahip olanlar kendi aralarında
BRÜTE göre artan sırada sıralanacaklardır:
Tablo2.1. Ada ve maaşa göre sıralama
Burada çok sayıda alana göre sıralama , farklı sıralama kriterlerine göre gerçekleştirilebilir.
2.4 Koşula Bağlı Olarak Listeleme :
SELECT komutu ile bir tablonun satırlrı içinden sadece verilen bir koşulu sağlayanlar listelenebilir.Örneğin brüt maaşı 5000000’dan fazla olan personel listelenmek istenirse SELECT komutu aşağıdak gibi yazılmalıdır : SELECT * FROM personel WHERE brüt > 5000000 ; Burada WHERE sözcüğünüizleyen kısımda koşul belirtilmektedir. Koşul belirtilirken iki veri birbiri ile karşılaştırlmaktadır. SQL içinde verileri çeşitli açılardan karşılaştırmak için karşılaştırma operatörleri kullanılmaktadır. Karşılaştırma ifadesinde karşılaştırılacak verilerin türleri aynı olmalıdır.
Tablo2.2 Karşılaştırma Operatörleri
2.5 Birden Çok Koşula Dayalı Sorgulamalar :
Not, And, Or :
Not, And ve Or mantıksal operatörleri yardımı ile birden çok koşulun gerçekleştirilmesine bağlı olarak ifade edilebilecek karmaşık yada bileşik koşulu ile listelemeleri gerçekleştirmek mümkündür. Örnek : Maaşı 5000000 TL’den fazla olan ve cinsiyeti erkek olan personelin listelenmesi gibi bir işlemde söz konusu personel için iki koşul verilmekte ve her ikisinin de gerçekleşmesi istenmektedir. 1.koşul : Maaşın 5000000 TL’den fazla oluşu 2.Koşul : Cinsiyetin ERKEK olması SELECT * FROM personel WHERE brüt > 5000000 AND cins =.T. ;
Tablo2.3
Tablo2.4
Tablo2.5
Örnek : Doğum tarihi 1960’ dan önce olan ve maaşı 6000000-10000000 arasında olan bayan personel kimlerdir? Cevap : SELECT * FROM personel WHERE dog_tar <{01/01/1960} AND brüt >=6000000 AND brüt <= 10000000 AND cins =.F. ;
Örnek : Satış bölümü ile muhasebe bölümündekiler kimlerdir ? Çözüm : Satış bölümünün böl_no’sunun 1 ve muhasebe bölümünün böl_no’sunun 2 olduğunu varsayarsak ; SELECT * FROM personel WHERE böl_no=1 OR böl_no=2 ;
2.6 Bir Veri Kümesi İçinde Arama –IN Operatörü
Aşağıda vereceğim örnek sorunun cevabını şu ana kadar anlattığım SQL komutları ile gerçekleştirebiliriz : Örnek : böl_no’su 1,2 yada 3 olan personeli listeleyiniz. · SELECT * FROM personel WHERE böl_no=2 OR böl_no=2 OR böl_no=3 ; Fakat SQL ‘de bu işlemi gerçekleştirmenin daha kısa ve daha şık bir yolu vardır; IN sözccüğü ; · SELECT * FROM personel WHERE böl_no IN (1,2,3) ; Şeklindeki komut. Bu komut OR ile düzenlenen 1. SELECT’ denktir.Fakat belirtildiği gibi daha kısa ve anlaşılır bir ifade oluşmaktadır. IN oparatörü NOT ile birlikte kullanılabilir.
2.7 Aralık Sorgulaması Between Sözcüğü :
Maaşı 5-10 Milyon arasında olan personel kimlerdir ? şelinde bir soruya SELECT “ FROM personel WHERE brüt >=5000000 AND brüt <=10000000 ; Şeklinde birSELECT komutu ile cevap verilebilir.Aynı soruya daha kısa ve daha etkin bir cevap verilecek olursa BETWEEN sözcüğü kullanılır. SELECT * FROM personel WHERE brüt BETWEEN 5000000 AND 10000000 ;
2.8 Karakter Türü Bilgi İçinde Arama Yapma –LIKE Sözcüğü :
Personel tablosu içinde adres alanı 50 karakter uzunluğunda karakter türü olarak tanımlanmıştı.Adres bilgisinin aşağıdaki şekilde verildiğini varsayalım : Cumhuriyet Cad. 46/9 Taksim-İstanbul. Burada adres içinde , semtin de belirtildiğini ve bunun ayrı bir sütun olmadığına dikkat çekelim. Şimdi belirli bir semtte ikamet eden personeli listelemek istersek semt adını , adres alanı içinde aramak gerekecektir.Bu işlemi gerçekleştirmek için SQL 2 de LIKE sözcüğü kullanılır.
SELECT * FROM personel WHERE adres LIKE ‘% Taksim %’ ;
Bu komut ile “Taksim” semtinde ikamet eden personel listelenmek istenmektedir. Bu komut gerçekten de Taksim’ de oturan personeli listeleyecektir. Ama bu arada “Taksim Caddesi 22-7 Kadıköy - İstanbul” şeklindeki adresleri de isteleyektir. Adres LIKE ‘ % Taksim %’ İfadesi adres içinde Taksim’ I arayacaktır. Adres içinde herhangi bir yerde bulduğu taktirde bu satırı listeleyecektir. % sembolü Taksim sözcüğünün öncesinde ve sonrasındaki karakterler ne olursa olsun anlamındadır. Yukarıdaki LIKE ifadesi “Taksim Cad.81-Fatih” şeklindeki Taksim’in en başta ve en sonda olduğu adresleri listeleyecektir. LIKE sözcüğünü , alt çizgi (_) sembolü ile birlikte de kullanmak da mümkündür.
Yorumlar (0)
![]() Yorum Yazın
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < Önceki | Sonraki > |
|---|













