SQL Select From – Verileri Listeleme , yazım ile sql eğitim setime devam ediyorum. SQL de en çok kullanacağımız komut işte bu sql select komutu… Bir sürü kullanım şekli ve verilecek bir sürü püf nokta var. Aslında eğitim setimizdeki başlıklara baktığımızda select sorgusunu bile basitçe anlatmam gerekiyor. Çünkü sql eğitim setindeki derslerin hemen hemen hepsini select komutu ile birlikte kullanabiliriz. Evet, evet bu dersi diğer dersleri içermeyecek şekilde vereyim. Mümkün mertebe diğerlerine değinmeden geçeyim. O derslere geldiğimizde kullanımı göstermek daha güzel olacaktır. Gelin SQL Select From – Verileri Listeleme dersimizde geçelim.
SQL Select From – Verileri Listeleme
Bu komut veritabanındaki verileri listelememizi sağlar. Bu komutu kullanırken hesaplama yaparak veri gösterebiliriz. Normalde veritabanında olmayan bir kolon üretip gösterebiliriz. Bu dersimizde tüm bunları göstermeye çalışacağım. Bu sebeple uzun bir ders olabilir.
Her zamanki gibi tablo üzerinde sağ tık yaparak Script Table As > Select To > New Query Editor Window yaparak tablomuzun select sorgusunu alalım.
SELECT [per_RECno] ,[per_Adi] ,[per_Soyadi] ,[per_TC] ,[per_Telefon] ,[per_DogumTarih] ,[per_Kayit_Tarihi] ,[per_Kaydeden] ,[per_Degistirme_Tarihi] ,[per_Degistiren] ,[per_Aktif] FROM [dbo].[PERSONEL_TANIMLARI]
En basit hali de select sorgumuz bu şekildedir. Elbette bu şekilde bırakmıyoruz.
Select As Kullanımı
Select komutunda as kullanmak listediğimiz verilerin kolon adlarını değiştirmemize olanak verir. Mesela as kullanmadan veri çekersek kolon adları şöyle görünür;
Alt kısımda gördüğünüz gibi kolon başlıkları direk kolon adları şeklinde geldi. Ancak bu bizim için kullanışlı değil. Yani müşteri bu şekilde görmek istemeyecektir. Bu yüzden burada görünen kolon adlarını değiştirmemiz lazım. Kodlarımızı şu şekilde değiştirelim ve tekrar bakalım.
SELECT [per_RECno] AS KAYITNO ,[per_Adi] AS ADI ,[per_Soyadi] AS SOYADI ,[per_TC] AS TC ,[per_Telefon] AS TELEFON ,[per_DogumTarih] AS DOĞUM_TARİH ,[per_Kayit_Tarihi] AS KAYIT_TARİH ,[per_Kaydeden] AS KAYDEDEN ,[per_Degistirme_Tarihi] AS DEĞİŞTİRME_TARİH ,[per_Degistiren] AS DEĞİŞTİREN ,[per_Aktif] AS DURUM FROM [dbo].[PERSONEL_TANIMLARI]
Kodlarımızı yukarıdaki değiştirdik ve şimdi sonucu görelim.
Görselde gördüğünüz gibi kolon adları bizim AS ‘dan sonra yazdıklarımız geldi. Şimdi siz karar verin hangisi daha güzel ve mantıklı??.
AS komutunu tablo isimleri içinde kullanabiliriz ancak bunu sonraki dersimizde göreceğiz.
Sanal Kolon Oluşturma
Yani tablomuzda olmayan bir kolonu göstereceğiz.
Görselde gördüğünüz gibi AD_SOYAD kolonu normalde tabloda yok. Ama biz iki kolonu birleştirip bir kolon yaptık ve yine tablomuzda MAAŞ diye bir kolon da yok. Biz listelemede MAAŞ kolonunun da olması istedik ama tablomuzda şuan maaş kolonu olmadığından 0 (sıfır) gönderdik. Burada 100 tane de personel olsa tüm satırlarda MAAŞ her zaman 0 (sıfır) olarak görünecektir. Tabi burada hesaplama da yapabilirsiniz. Diyelim ki tablonuz da per_maas_kesintileri ve per_brut_maas olsun. Net maaşı gösterebilmek için bunları birbirinden çıkarıp göstermeniz gerek.
SELECT per_maas_kesintileri - per_brut_maas as NET_MAAS FROM [dbo].[PERSONEL_TANIMLARI]
Örnekte gördüğünüz şekilde hesaplama yaparak da sanal kolon gösterebilirsiniz. Bu maaş konusunda net maaşı da bir kolona yazabilirsiniz. Gerekiyorsa yazdırırsınız (Bazı durumlarda gerçekten yazılması gerekir.) ama gerekli değil ise bu şekilde hesaplama ile gösterebilirsiniz.
Select Top Kullanımı
Select komutu ile verileri çekerken belirli sayıda kaydı almak isteyebiliriz. Bu durumda top komutunu kullanırız. Örnek üzerinde görelim.
SELECT top 10 [per_RECno] AS KAYITNO ,[per_Adi] AS ADI ,[per_Soyadi] AS SOYADI ,[per_TC] AS TC ,[per_Telefon] AS TELEFON ,[per_DogumTarih] AS DOĞUM_TARİH FROM [dbo].[PERSONEL_TANIMLARI]
Yukarıda gördüğünüz örnekteki sorgu çalıştırıldığında sadece tablodaki ilk 10 kayıt gelir.
SQL Select From – Verileri Listeleme , yazımızda bu kadar dostlar diğer derslerimizde görüşmek üzere…
Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.
Sağlıcakla ve Takipte Kalın.