12 Mayıs 2012 Cumartesi

MSSQL Select Sorgusu -- TSQL --

Merhaba arkadaşlar makalemde select sorgusu üzerinde durucam. Select sorgusu üzerine örnekler ve açıklamalarla devam edicem. TSQLNedir? makalemde Veri tabanı - Tablo kavramlarından bahsetmiştik.Artık işlerimiz hep bu veri tabanı ve tablolar üzerinden devam edicek.Veri Tabanı verilerimizi düzenli bir biçimde saklamamıza yarardı ama bu veriler sadece saklanırlarsa bir işe yaramazlar.Verileri çekip bunları isteğe göre listeleyip bunlar üzerinden raporlar olsun istitastikler olsun hepsini alabiliriz.Bunları yapabilmek içinde Select sorgusunu iyice öğrenmemiz gerekli arkadaşlar.Uzatmadan Örnekler üzerinde devam edicem.


SELECT * FROM Customers

Temel yazım şeklli şöyledir arkadaşlar SELECT KOLON_ADI FROM TABLO_ADI .Örneğimde Customers diye bir tablom var ve içindeki tüm kolonlardaki verileri bana getir diyorum. Burda *(Yıldız) ifadesi tüm kolonlar anlamına gelir.

select CompanyName,ContactName,ContactTitle from Customers

Burdada 3 tane kolon adı belirtmişim ve Customers Tablosundan bu 3 kolondaki tüm verileri listelemişim.


Daha açıklayıcı olması için ekran görüntüsü ekledim arkadaşlar. Customers tablom aslında 11 kolondan meydana geliyor ama ben sadece 3 kolon belirttim ve onlardaki verileri çektim.

select CompanyName as Firma ,ContactName as Kişi,ContactTitle Ünvan
from Customers

Bu örneğimde ise bir öncekinden çok az bir fark var Üstteki resimde gördüğünüz CompanyName yazan kolon adı yerine Firma yazıcak.Yani görünen kolon adını değiştiricek.Kolon adı arada boşluk bırakılarak yazılamaz arkadaşlar. Birkaç farklı yöntemi daha var bunlarda yazabilirsiniz.Başka örneklerde göstericem.

select FirstName+' '+LastName [Ad Soyad] from Employees

Emloyees tablomda ad ve soyad kolonları var ve ben bunların tek bir kolonda gösterilmesini istiyorum.Burda kolon adı için farklı bir örnek daha var arkadaşlar köşeli parantezler içine boşluk kullanarak Ad Soyad yazılmış eğer boşluk bırakılarak kullanılıcaksa bu yöntem tercih edilmelidir.




select  CompanyName,ContactName,ContactTitle,Country
from Customers where Country = 'Germany'

Örnekte ülkesi Germany olanları listelemişiz.Burda dikkat edilmesi gereken bir değişik var.Where koşulundan sonra Country kolonunun içindeki değer eğer Germany ifadesine eşitse listele diyor.Bu C#'daki karar yapılarına benzerlik gösteriyor arkadaşlar.


select  CompanyName,ContactName,ContactTitle,Country
from Customers where Country = 'Germany' or Country = 'USA' or Country = 'UK'

select  CompanyName,ContactName,ContactTitle,Country
from Customers where Country in ( 'Germany','USA','UK');

Yukarıda iki tane sorgum var ve ikiside aynı işlemi yapıyorlar.İlk sorgu ikincisine nazaran daha uzun.Bu sorgular ülkesi Germany yada USA yada UK olanları listeler.

select Distinct Country from Customers

Yine sorguda bir farklılık var arkadaşlar distinct ifadesi eşssiz tekrarsız anlamındadır.Country kolonunda tekrar eden ülkeler var diyelimki.Bunları tekrarsız getirir yani 10 tane Germany olduğunu varsayarsak sadece 1 tane getirir benzersiz tekrarsız durumdakiler gelir.

select ProductName,UnitPrice
from Products where UnitPrice between 30 and 50

Between arasında anlamındadır.Örnekten yola çıkarsak unitprice(fiyatı) 30 ile 50 arasında olanları listeliyor.


select CompanyName
from Customers where CompanyName like 'T%' -- T ile başlayan.

select CompanyName
from Customers where CompanyName like 'T%S' -- T ile başlayan S ile bten.

select CompanyName
from Customers where CompanyName like '%T%' -- Bi yerlerinde T olsun.


Yukarıda 3 örneğim Like komutu ile ilgili arkadaşlar.Yanlarındada açıklamları var.Yaptığı iş şöyle CompanyName Kolonundaki verilerden belirtilen şartlara uygun olanlarını getiriyor.Şöyleki ilk örnekte baş harfi T olucak devamını dikkate almıyor.Burdaki % işareti sonda olan bir örnek yapmadım eğer like '%T' yapsaydım sonu T ile bitenleri getiricekti.


Select ProductName From Products Order By UnitsOnOrder Asc

Sıralama işlemi yapmamı sağlar.Yazımı Order By KOLON_ADI Asc şeklindedir.Asc alfabetik sıralama içindir yazmak zorunda değilsiniz sadece order by kullansanızda sıralar. Desc'de tam tersi şekilde sıralama işlemi yapar arkadaşlar.


Tüm örneklerimi Microsoft'un verdiği Northwind Db üzerinde yaptım ve bu Db üzerinden devam edicem arkadaşlar.Download etmek isterseniz NorthwindDB 'den indirebilirsiniz. Okuduğunuz için teşekkürler.







Hiç yorum yok:

Yorum Gönder