Select Sorgusu

Sql komutlarından select sorgusu ve myadmin üzerinden anlatımı

SELECT

Select SQL dilinde bilgi gormek almak icin kullanilir
Bu komut herhangibir table olmadan da calisir. Herhangi bir degere veya global degere bu komut ile bakabiliriz.

Örneğin;
 

SELECT merhaba ben cici;
SELECT 10000 3849
 

Tablolardan bilgi gormek icin en basit kullanim sekli asagidaki gibidir.
 

SELECT * FROM tablo_adi
 
“*”  tablodaki tum kolonlarin listelenmesini saglar


Belirli bir kolon gormek istersek o zaman gormek istedigimiz kolonlarin isimlerini yazmaliyiz. Kolon isimleri mutlaka , (virgul) ile ayraclanmalidir.
 

SELECT kolonadi1, kolonadi2 FROM tablo_adi
 

Bir tablodan tum bilgileri degil bazi kurallara gore bilgi almak istiyor isek where komutunu kullanmaliyiz.

 
SELECT kolonadi1, kolonadi2 FROM tablo_adi WHERE kisitlamalar 
 
Kisit olarak kullanilacak kosullar ise asagidakiler olabilir

Karsilastirma islemleri icin = > < >= <= <>
Belirli bir aralik icin between , not between
Bir Listeden bakmak icin in , not in
String karsilatimalari icin like , not like
Bilinmeyen degerler icin is null , is not null
Konbinasyonlar icin and , or
Olumsuz not

Örneğin;

 

SELECT sKodu FROM tbStok WHERE sKodu = ‘010101’;
SELECT sKodu FROM tbStok WHERE sKodu BETWEEN
‘100001’ and ‘100001zzz’
SELECT sKodu FROM tbStok WHERE sKodu IN
( ‘010101’; , ‘010102’; , ‘zzz’; , ‘0000’;)
SELECT sKodu FROM tbStok WHERE sKodu LIKE
‘01%’;
SELECT sKodu FROM tbStok WHERE sKodu IS NOT NULL
SELECT sKodu FROM tbStok WHERE sKodu =
‘010101’ or sKodu = ‘010102’;
 

Kolonlarin adini daha okunabilir yapmak icin degistirebiliriz.

Örneğin;
 
SELECT sKodu as [Stok Kodu] FROM tbStok veya SELECT &#8216;Stok Kodu&#8217; = sKodu from tbStok
 

Gelen bilgi belli bir sirada gelmesi isteniyor ise order by ozelligi kullanilir.


Örneğin;

 

SELECT sKodu FROM tbStok ORDER BY sKodu
 

Order by ile siralama yapilirken default kucukten buyuge dogru siralamadir. Buyukten kucuge dogru siralama yapmak icin kolon adinin yanina desc yazilir.


Örneğin;
 
SELECT sKodu FROM tbStok ORDER BY sKodu desc
 

Select ile raporladigimiz bilgiler uzerinde + , - , / , * ve % seklinde aritmerik islemler kullanilabilir. ( ) ile de islem onceligi belirlenir.

Örneğin;

 
SELECT sFiyatTipi , lFiyat , (lFiyat * 14000000) as TL
FROM tbStokFiyati
WHERE sFiyatTipi = '$'
 

Select ile raporladigimiz numerik bilgilerde MATEMATIK fonksiyonlari kullanilabilir.
Bunlardan birkac tanesi ABS -> mutlak deger , Log -> logaritma , PI -> Pi sayisi vs.

Örneğin;

 

SELECT ABS(lGirisMiktar1) FROM tbStokfisiDetayi
 

Bu ornekte lGirisMiktari – olsa bile sonucta – isareti kalkar.


Bu fonksiyonlardan en cok kullanilan ROUND fonksiyonudur. Numerik hesaplamalarda yuvarlama islemi yapar.

Kullanim Sekli round(deger , yuvarlama_degeri) seklindedir.
Yuvarlama_Degeri 0 , 1, 2…seklinde dir. 0 ise ondalik bolumu yuvarlar , 1 ise virgulden sonra 1.basamagi yuvarlar , 2 ise virgulden sonra 2.basamagi yuvarlar vs

Örneğin;

 

SELECT ROUND(( lFiyat / 1.18 ), 0) FROM tbStokFiyati
 

Bu ornekte kdv dahil bir fiyattan %18 kdv yi cikartarak kdv haric fiyat bulduk ve virgulden sonraki rakamlari yuvarladik.


Select ile raporladigimiz alfanumerik bilgilerde de bazi fonksiyonlari kullanilabilir. Bunlardan en cok kullanilanlar :

Rtrim  sagdaki bosluklari kaldirir

Ltrim  soldaki bosluklari kaldirir

Str  numerik alanlari alfanumerik olarak degistirir

Lower  karakterleri kucuk harfa cevirir

Upper  karakterleri buyuk harfe cevirir

Substring  secilen alan uzerinden istenilen bir parcayi ayirmak icin kullanilir

Patindex  secilen alan uzrinde arana sozcugun baslangic posizyonunu verir

Space  istenilen uzunlukta bosluk gonderir.

  Örneğin;


SELECT RTRIM(sAciklama) FROM tbStokfisiDetayi
SELECT LTRIM(sAciklama) FROM tbStokfisiDetayi
SELECT str(lCikisMiktar1) FROM tbStokfisiDetayi
SELECT LOWER (sEvIl) FROM tbMusteri
SELECT UPPER (sIsIl) FROM tbMusteri
SELECT SUBSTRING (sAciklama , 10 , 5) FROM tbStok
SELECT SUBSTRING (sAciklama , Patindex(&#8216;%cigdem%&#8217; , sAciklama) , 15 ) from tbStok
SELECT SUBSTRING(sAdi, 1 , 1) + &#8216;.&#8217; + space(2) + sSoyadi from tbPersonel
 


Tarih ve saat icin kullanilan fonksiyonlar da vardir.

Dateadd (tarihparcasi , sayi , tarih)  bir tarihe gun, ay, yil vs ekleyerek tarih bulma

Datediff (tarihparcasi , tarih1, tarih2)  Iki tarih arasindaki farki bulma

Datename(tarihparcasi, tarih)  month secildiginde aylarin isimleri ile gorulebilmesini saglar, digerlerinde degerini getirir

Datepart(tarihparcasi, tarih)  Verilen tarihteki secilen alanin degerini verir

Getdate() O andaki gecerli tarih ve saati verir


Tarihparcasi neler olabiliyor:

Year
Quarter
Month
Day of year
Day
Week
Weekday
Hour
Minute
Second
Milisecond


Örneğin; 
SELECT dteIslemTarihi , Dateadd(DAY , 38 , dteIslemTarihi) FROM tbStokFisidetayi
SELECT dteIslemTarihi , dteFisTarihi , DATEDIFF(DAY , dteFisTarihi , dteIslemTarihi) FROM tbStokFisidetayi WHERE sFistipi = &#8216;FS&#8217;
SELECT datename(MONTH , dteIslemTarihi ) FROM tbStokFisidetayi
SELECT datepart(WEEK , dteIslemTarihi ) FROM tbStokFisidetayi
 

Bir data tipinden baska bir data tipine cevirme yapilmak isteniyor ise convert fonksiyonu kullanilir. Formul asagidaki gibidir :
 
Convert (datatype[(uzunluk)], deger , [stil])
 

Convert islemi tarih sahalarini okunabilir hale getirmek icin cok kullanislidir. Ornegin select dteIslemTarihi from tbStokFisidetayi yazdigimizda gelen cevapta tarih 2002-01-01 00:00:00 formatinda gelecektir. Ama biz 01/01/2002 seklinde gormek istiyor isek :

 

SELECT convert(CHAR(10), dteIslemTarihi , 103) FROM tbStokFisidetayi
  yazmaliyiz

Buradaki 103 ingiliz/fransiz standartidir. Yani bizimde kullandigimiz standart. Burada kullanilabilecek stil numaralari sql help te yazilmistir.
Parasal alanlari virgul ile ayirmak istiyorsa yine convert fonksiyonunu kullanmaliyiz.

Örneğin;
 

SELECT convert(CHAR(20), convert(money, lBrutFiyat , 1), 1) FROM tbStokFisidetayi
 

Convert fonksiyonu gibi calisan baska bir fonksiyonda cast fonsiyonudur. Kullanim sekli cast ( deger as datatype[(uzunluk)]) seklindedir. Yukarida yazdigimiz selectin cast ile yazilimi

 

SELECT convert(CHAR(20), cast(lBrutFiyat as money), 1) FROM tbStokFisidetayi
 

Ayni sonucu verir. Cast fonsiyonunda stil yoktur. Stil kullanilacak ise convert kullanmak gerekir.

Bir numerik alan ile bir alfanumerik alani birlestirip bir sonuc elde etmek istiyorsak numerik alani alfanumerik alana convert etmek gerekir.

Örneğin;
 

SELECT 'Stok Adi :' + sAciklama + SPACE(2)+ convert (CHAR(20), lAsgariMiktar) + SPACE(2) + sBirimcinsi1 FROM tbstok
 

Tekrarlayan satirlarin birlestirilmesi icin distinct kullanilir

Örneğin;

 

SELECT DISTINCT sModel FROM tbstok
 

Sadece ilk n satiri listelemek icin top kullanilir

Örneğin;

 

SELECT top 20 * FROM tbstok
 
Kaynak: Burak Taş

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...