Üye Giriş

Tavsiye Programlar

Firefox 2

Alexa Tolbar
TEMEL SQL SORGULAMALARI PDF Yazdır E-posta
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;
Bu komut ile par_sat adlı tablodan satıcı noları tekrarsız olarak listelenecektir.

 

 

 

 

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

Sicil

Ad

Soyad

Brüt

1215

Ali

Can

2000000

3712

Ali

Okan

6000000

8145

Birol

Çelen

8500000

3712

Birol

Akın

4000000

 

 

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

 

SQL ‘ de Karşılaştırma Operatörleri

Operatör

Anlamı

<

…’den küçük

>

…’den büyük

=

Eşit

<=

Küçük veya eşit

>=

Büyük veya eşit

<>

Eşit değil

!=

Eşit değil

 

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

 

NOT Operatörü

Koşul

NOT Koşul

.T.

.F.

.F.

.T.

 

                        Tablo2.4

                       

AND OPERATÖRÜ

1.Koşul

2.Koşul

1.koşul AND 2.koşul

.T.

.T.

.T.

.T.

.F.

.F.

.F.

.T.

.F.

.F

.F.

.F.

 

                        Tablo2.5

                       

OR OPERATÖRÜ

1.Koşul

2.Koşul

1.Koşul AND 2.koşul

.T.

.T.

.T.

.T.

.F.

.T.

.F.

.T.

.T.

.F

.F.

.F.

 

Ö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)add comment

Yorum Yazın
quote
bold
italicize
underline
strike
url
image
quote
quote
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley

busy
 
< Önceki   Sonraki >
Advertisement