Northwind etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Northwind etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

23 Mart 2013 Cumartesi

MSSQL de Temp tabloyu güncellemek

  • Birleştirdiğimiz tablolarımızı istedğimiz gibi kullanabiliriz.
  • Bu örneğimizde tablomuzu temp table yapıp, üzerinde değişiklikler yapacağız.
  • NORTHWIND database ini kullandığımızı unutmayalım.
ÖRNEK:

SELECT O.OrderId,O.CustomerId,O.EmployeeId,E.FirstName,E.LastName
INTO #Temp
FROM NORTHWIND.dbo.Orders AS O WITH(NOLOCK)
INNER JOIN NORTHWIND.dbo.Employees AS E WITH(NOLOCK) ON E.EmployeeId=O.EmployeeId
WHERE O.ShippedDate='1996-07-16 00:00:00.000'
SELECT * FROM #Temp
UPDATE #Temp SET FirstName='Ahmet',LastName='Ates' WHERE EmployeeId=5
SELECT * FROM #Temp

AÇIKLAMA: Bu örneğimizde joinlediğimiz tabloların sonucu temp tabloya yazdı ve bunun üzerinde değişiklikler yaparak son halini gösterdik.


25 Mayıs 2012 Cuma

33. UNION Kullanımı

  • Bazen sonuç kümesinin tek olmasını isteriz. 
  • Yani birden fazla yazdıgımız SELECT sorgularından dönen sonuç listeleri sorgu sayısı kadardır. 
  • Bunu tek bir sonuç listesinde döndürmek için UNION kullanırız. 
  • Görüntülenecek olan tablolar aynı veritüründe aynı sayıda ve aynı düzendeki sütunlardan oluşmalıdır.

Örnek: Aşağıdaki örnekte Çalışanlar (Employees) tablosu ve Yön(Region) tablosu verileri birleştirilmiştir. Birinci sorgunun SELECT ifadesindeki takma adın görüntülendiğine dikkat edin.

Sorgu: 
SELECT EmployeeID,City FROM Employees UNION
SELECT RegionID,RegionDescription FROM Region



Ders 34 'e geçebilirsiniz.

22 Mayıs 2012 Salı

32. SELF-JOINS Kullanımı

  • Bir tablonun kendisiyle JOIN işlemine tutulmasına SELF-JOIN işlemi denir. 
  • Tablodaki aynı değerleri içeren farklı kayıtlar mevcutsa bunları listeleyebilmek için kendisiyle birleştiririz.  
  • Bir tablo içinde bulunan satırlar arasında referans ilişkisi varsa, o tablo için farklı takma adlar (alias) kullanılarak JOIN sorguları gerçekleştirilebilir. 
  • Çok kullanılan bir yöntem değildir.
 Örnek: Aşağıdaki sorgumuzda aynı tabloyu kendisiyle birleştirdik. Daha çok SELF-JOIN işlemini aynı değerleri olan farklı kayıtlar üzerinde işlem yaparken kullanmalıyız. Örnekte basitce aynı tablo içi kıyaslama yaptık. SicilNo olarak her çalışanın altında olan çalışanları listeledik.

Sorgu: 
SELECT a.employeeid AS SicilNo,a.lastname,a.title
,b.employeeid AS AltSicilNo, b.lastname ,b.title
FROM employees AS a
INNER JOIN employees AS b
ON a.title=b.title
WHERE a.employeeid < b.employeeid
ORDER BY a.employeeid



Ders 33'e geçebilirsiniz.

8 Nisan 2012 Pazar

15. SQL COUNT FONKSİYONLARI

  • Tablo içerisinde herhangi bir sayma işlemi gerçekleştirmek için COUNT fonksiyonu kullanılmaktadır.

Söz dizimi: SELECT COUNT(<sütun adı>) FROM <tablo adı>

1-) COUNT(*) KULLANIMI

  • COUNT fonksiyonu (*) ile kullanıldığında FROM ile belirtilen tablodaki toplam satır sayısını verir.
Örnek: Aşağıdaki örnekte Çalışanlar (Employees) tablosundaki kayıt sayısı listelenmiştir.

Sorgu: SELECT COUNT(*) AS [Kayıt Sayısı] FROM Employees


Not: AS Kullanımını bir sonraki dersimizde anlatacağım(Ders-16). Bilmeniz gereken AS ile Temp(geçici) sütun oluşturup adı 'Kayıt Sayısı' olsun diyoruz. AS kullanmadığımız takdirde sorgumuzu yaptığımızda sütun ismimiz 'No Column Name' olarak görünür.



Örnek: İkinci örneğimizde kriterleri arttıralım.Mesela Şehri('City') Londra olan çalışanlarımızın sayısını bilmek isteyelim.Bu durumda sorgumuz aşağıdaki gibidir.

Sorgu: SELECT COUNT(*) AS [Kayıt Sayısı] FROM Employees WHERE City='London'




2-) COUNT DISTINCT

  •  DISTINCT anahtar kelimesi COUNT ile birlikte kullanıldığında, belirtilen sütundaki benzersiz kayıtların sayısını verir.
Söz dizimi: SELECT COUNT(DISTINCT <sütun adı> FROM <tablo adı>

Örnek: Bu örneğimizde kaç farklı müşteriden sipariş aldığımızı bulacağımız sorgumuzu yazalım.

Sorgu: SELECT COUNT (DISTINCT CustomerID)FROM Orders



3-) COUNT (<Sütun Adı>)
  • COUNT fonksiyonu bir sütun adı ile birlikte kullanıldığında, o sütundaki boş (NULL) olmayan kayıtların sayısını verir.
Örnek: Bu örneğimizde SevkBölgesi (ShipRegion) değeri 'Null' olmayan Siparişleri (Orders) sorguluyoruz. Dikkat etmemiz gereken 2.sorgumuzun özelliği SevkBölgesi Boş olmayan Siparişleri sorgulamış olmamız.

Sorgu: SELECT COUNT (ShipRegion) AS [SevkBölgesi] FROM Orders 

Ders 16'ya geçebilirsiniz.



13. SQL ORDER BY


  • ORDER BY yantümcesi satırları, belirtilen sütun(lar)a göre sıralamak için kullanılır.
  • ORDER BY ile hangi sütuna göre sıralayacağımızı ve sıralamanın artan veya azalan şekilde yapılacağını belirleriz. 
  • Sıralama yönü belirtilmez ise SQL veriyi artan şekilde sıralar.
  • Sıralama yapılacak alanlar SELECT ifadesinde yer almak zorunda değildir.
Söz dizimi:    
            SELECT <sütun ad(lar)ı> FROM <tablo adı>
            ORDER BY <sütun adı><sıralama yönü>,<sütun adı><sıralama yönü>

(Bu örneğimizde CategoryID alanına göre artan ,bu CategoryID nin kendi içinde aynı değerler arasındada Unitprice değerini azalan olarak sıralandığını göreceğiz.) 

Sorgu: SELECT ProductID, ProductName,
CategoryID, UnitPrice
FROM Products
ORDER BY CategoryID ASC, UnitPrice DESC
 



Ders-14 'e geçebilirsiniz.

25 Mart 2012 Pazar

11. NULL Değerler

  • Veri girişi esnasında, alana herhangi bir değer yazılmazsa ve alan için herhangi bir varsayılan (default) değer atanmamışsa alanda boş (null) değeri saklanır.  
  • Null değeri boşluk (‘ ‘) veya sıfır (0) değerinden farklıdır. 
  • Belirli bir alanına hiçbir değer girilmemiş kayıtları listelemek için IS NULL arama kriteri kullanılır. 
  • Bir tablodaki hangi alanların varsayılan değerleri olacağına veya alanın NULL değere izin verip vermediğine, tablo tasarımı sırasında karar verilir. 
  • Eğer boş olmayan satırları listelemek gerektiğinde IS NOT NULL arama kriterini kullanılır. 
(Örneğimizde fax numaraları girilmemiş ve default değer atanmamış firmaları sorgulayalım.)

Sorgu:  SELECT CompanyName,City,Fax FROM Suppliers WHERE Fax IS NULL





(Fax numaraları girilmiş firmaları sorgulayalım.)

Sorgu: SELECT CompanyName,City,Fax FROM Suppliers WHERE Fax IS NOT NULL




Ders-12' ye geçebilirsiniz.

17 Mart 2012 Cumartesi

10. IN Kullanımı


  • IN sözcüğünü bir listedeki elemanlardan herhangi biriyle eşleşen satırları görüntülemek için kullanırız. 
  • NOT IN arama kriterini ise listede olmayan değerleri aramak için kullanırız. 
  • NOT koşul bildirimi diğer arama koşullarına göre biraz daha yavaş çalışır. 
  • Performans açısından çok sık kullanılması tavsiye edilmez. 
  • IN ile elde ettiğimiz sonuçları OR kullanarakta elde edebiliriz.
Söz dizimi:     SELECT <sütun adı> FROM <tablo adı>
                        WHERE <sütun adı> IN('değer1','değer2',.....)
(Bütün Müşteriler içinde 'VINET' ve 'FOLKO' isimli müşterilerin tekliflerini listeleyelim;)
Sorgu: SELECT * FROM Orders WHERE CustomerID IN ('VINET','FOLKO')
  

Northwind veritabanımız dışında bir örnek vermek gerekirse daha açıklayıcı olması açısından;
Sorgu: SELECT * FROM Ogrenci WHERE Bolum IN ('Bilgisayar','Elektronik','Elektrik') 
(Belirli 'Bolum' lerde okuyan öğrenci bilgilerine ulaşabiliriz.) 

Ders-11' e Geçebilirsiniz.

9. BETWEEN ...AND... Kullanımı

  • BETWEEN ... AND..... operatörü 2 değer ile belirtilen aralığı sınar. Bu değerler sayı, metin veya tarih olabilir. Aralık kriteri için 2 değerde dahildir.
Söz dizimi:     SELECT <sütun adı> FROM <tablo adı>
                        WHERE <sütun adı> BETWEEN <değer 1> AND <değer 2>

(1996-07-16 tarihinde sipariş verenler ve siparişin gönderildiği yeri döndüren örneğimiz;)
Sorgu: SELECT CustomerID,ShipCity FROM ORDERS WHERE ShippedDate='1996-07-16'


(Yeni öğrendiğimiz BETWEEN ile daha ayrıntılı sorgumuzu yapabiliriz. Örneğin gönderim tarihini hatırlayamadığımızı düşünürsek BETWEEN....AND.... kullanmak en mantıklısı olucak.)

Sorgu: SELECT CustomerID,ShipCity,ShippedDate FROM Orders WHERE ShippedDate BETWEEN   '1996-07-01' AND '1996-08-01'

Not: Dikkat etmeniz gereken aralık değerlerinin başlangıç ve bitiş tarihlerini de kapsadığıdır. Bu aynen sayı aralıklı sorgularda da geçerli.

Ders-10'a geçebilirsiniz.


26 Şubat 2012 Pazar

2. Uygulamalar İçin SQL SERVER ve Northwind Kurulumu

     Öncelikle bilgisayarımıza SQL Server ve Management Studio'yu kurmamız gerekmektedir. Yeni başlayan arkadaşlar için fazla kafalarını karıştırmadan ve masrafa gerek olmadan kullanabilecekleri Microsoft SQL Server Express Edition kurulumunu ve hazır örnekler üzreinden sorgular yapacağımız Northwind Veritabanımızın (NorthwindDatabase) kurulumunu öğreneceğiz. Uygulamalarımızı bu ortamda gerçekleştireceğiz.
Öncelikle İlk Aşamada; 
Link1:http://www.microsoft.com/sqlserver/en/us/editions/express.aspx
SQL Server sürümümüzü seçiyoruz.
Link2:http://www.microsoft.com/betaexperience/pd/SQLEXP08V2/enus/ 
Burdan da istediğimiz sürümü seçip SQL Server kurulum dosyamızı indiriyoruz.
Link3:http://www.microsoft.com/download/en/details.aspx?id=8961
Burdan da SQL Server Management Studio yu indirip kuralım.
SQL Server ve Management Studio yu kurduktan sonra başlatımızda aşağıdaki gibi görülmeli.

 İkinci Aşamada;
Link4: http://msdn.microsoft.com/tr-tr/library/ff851969.aspx

Northwind Veritabanının kurulumunu burdan takip edebilirsiniz.
Not: Başlat'a cmd yazarak açılan konsolda görüntüdeki işlemleri yapınca Northwind veritabanı otomatik SQL Server ımıza gelecek.
Bu işlemlerden sonra aşağıdaki görüntüyü aldıysak artık gerekli ortamımız hazır demektir.


Ders-3 Geçebilirsiniz.