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

29 Aralık 2012 Cumartesi

SQL Server'da Fonksiyon Oluşturma ve Kullanma

  • Fonksiyonlar istenilen veri tiplerini alıp istenilen veri tiplerini veya bir tablo bile geri döndürebilir.
  • Birden çok parametre vereceğimiz zaman bunları virgül ile ayırmamız gerekmektedir. 
Function Create(Fonksiyon  Oluşturma) 
  • Örneğimizde Animals tablomuzdaki Kusların ortalama ağırlıklarını döndüren bir fonksiyon yazalım.

ÖRNEK:

CREATE FUNCTION fnc_OrtalamaAgirlik
(
@KusNo int
)
RETURNS int
AS
BEGIN
  DECLARE @Result int
  SET @Result = (SELECT AVG(Weight) FROM Animals.dbo.Kuslar WHERE KusNo <=@KusNo)
RETURN(@Result)
END


Function Kullanma(Fonksiyon  Kullanma)  
  • İstediğimiz lokasyondan doğru path i vererek fonksiyonumuzu çağırabiliriz.
 ÖRNEK:

DECLARE @KusNo int
SET @KusNo = 5
SELECT dbo.fnc_OrtalamaAgirlik(@KusNo) AS Ortalama



12 Ağustos 2012 Pazar

SQL Server'da Stored Procedure

  • SQL ifadeleri SQL Serverda Stored Procedure olarak saklanmaktadır. 
  • Basit örneklemek gerekirse " SELECT * FROM Birds " ifadesini saklayabiliriz. Ama büyük yapılarda kullanılan Stored Procedureler daha komplekstir. 
  • Stored Procedure'ler birden fazla tablonun farklı JOIN işlemleri ile bağlanmasıyla ve parametreli veya parametresiz değerlerin WHERE koşullarıyla kısıtlanmasıyla istenilen sonuça hızlı ve sade bir şekilde ulaşmamızı sağlar.

ÖRNEK:
CREATE PROCEDURE Person_Selection
@yas INT

AS

IF(Yas> 19)
SELECT * FROM Person WHERE Yas > @yas ORDER BY Yas
ELSE
SELECT * FROM Person WHERE Yas> @yas and Eriskin=1 ORDER BY Yas

GO

21 Temmuz 2012 Cumartesi

45. DELETE Kullanımı

  • DELETE ifadesi tablomuzdaki bir veya birden fazla kayıdın silinmesini sağlar. 
  • Eğer koşul belirtmessek bütün kayıtları tablomuzdan siler. O yüzden DELETE ifadesini kullanırken dikkat etmeli ve BEGIN TRANSACTİON ..yapısını kullanmamız önem arz etmektedir.
SÖZ DİZİMİ: DELETE FROM Table
                       WHERE <Sütun_Adı>=<Koşul_Değeri>

ÖRNEK: Sorgumuzda Employees tablumuzdaki bir kayıdı silmek isteyelim.

SORGU: SELECT * FROM Employees
                DELETE FROM Employees WHERE EmployeeID=10
                SELECT * FROM Employees

Ders 46'ya Geçebilirsiniz.

44. UPDATE Kullanımı

  • UPDATE deyimi tablomuzda bulunan verileri güncellemek, değiştirmek için kullanılır.
SÖZ DİZİMİ:
         UPDATE <tablo adı>
         SET <sütun adı>= <yeni değer>
         WHERE <sütun adı> = <eski değer> 

ÖRNEK: Sorgumuzda Çalışan tablomuzda bir kaydımızı güncellemek isteyelim. 'Margaret' isimli çalışanın terfi aldığını düşünürsek gerekli güncellemeyi yapalım. 2 tane aynı SELECT sorgusunu farklı görmek için koydum.

SORGU:SELECT * FROM Employees
   UPDATE Employees SET Title='Sales Manager' WHERE EmployeeID=4
   SELECT * FROM Employees



Ders 45' e Geçebilirsiniz.


17 Haziran 2012 Pazar

40.SUBQUERİES- EXISTS ve NOT EXISTS Kullanımı

  • Bazı durumlarda sorgu sonucu dönen listeyle ilgili değilde herhangi bir değer dönüp dönmediyle ilgileniriz. 
  • İşte böyle durumlarda EXISTS ve NOT EXISTS kullanırız. 
  • EXISTS ve NOT EXISTS kullanımı TRUE veya FALSE değerleri döndürür.
Örnek: Birinci sorguda ‘3/05/1997’ ve '4/05/1997' tarihleri arasında sipariş almış olan çalışanlar EXIST işlevi yardımıyla tespit edilip, bilgileri listelenmiştir. Aynı sonuca tabloları JOIN ile birleştirerek te ulaşabiliriz. İkinci sorgudaki DISTINCT ifadesi her çalışanın tekbir kez görüntülenmesini sağlar.

Sorgu-1:
SELECT EmployeeId,LastName,FirstName
FROM Employees AS e
WHERE EXISTS
(SELECT * FROM Orders AS o
     WHERE e.EmployeeId=o.EmployeeId
    AND o.OrderDate BETWEEN '3/5/1997' AND '4/5/1997') 


Sorgu-1:
SELECT DISTINCT FirstName,LastName, e.Employeeid
FROM
Orders AS o
INNE
R JOIN Employees AS e
ON
o.Employeeid =e.Employeeid
WHERE
o.OrderDate BETWEEN '3/5/1997' AND '4/5/1997'


Ders 41' e geçebilirsiniz.

39. SUBQUERIES-HAVING Dönüşümü

  • İlişkili alt sorgularla elde ettiğimiz sonuçları aynı zamanda HAVING işlemi ile de elde edebiliriz. Bu bize kullanım çeşitliliği sağlar.
Örnek: İnceleyeceğimiz iki örnekte aynı kategorideki ürünlerden birim fiyatı ortalama birim fiyatından yüksek olan ürünleri kategoriye göre listelenmesini istiyoruz. İlk örneğimizde herhangi bir dönüşüm yapmadan gerekli koşullarımızı sağlıyoruz.

Sorgu:
SELECT ProductName,CategoryID,UnitPrice FROM Products AS p1
    WHERE p1.UnitPrice>(SELECT AVG(UnitPrice) FROM Products AS p2 WHERE p1.CategoryId=p2.CAtegoryId)
    ORDER BY CategoryId




Örnek: Bu örneğimizde INNER JOIN ve HAVING kullanarak aynı sonucu listeliyoruz.

Sorgu:
SELECT p1.ProductName,p1.CategoryID,p1.UnitPrice FROM Products AS p1
    INNER JOIN Products AS p2 WITH (NOLOCK) ON p1.CategoryID=p2.CategoryID
    GROUP BY p1.ProductName,p1.CategoryID,p1.UnitPrice
    HAVING p1.UnitPrice>AVG(p2.UnitPrice)
    ORDER BY p1.CategoryId


Ders 40 'a geçebilirsiniz.

4 Haziran 2012 Pazartesi

38. SUBQUERIES - JOIN Dönüşümü

  • Genel olarak ilişkili alt sorguları birer JOIN ifadesi yerine de kullanabiliriz. 
  • Aralarında sadece kullanım olarak farklılık bulunmaktadır. 
  • Sonuç olarak ise iki sorgudan da aynı sonucu elde ederiz.
Örnek: İlk sorgumuzda çalışanların hitap şekillerini 2 sorguda birbirine eşit olmayanların karşılaştırmasını yaptık. Yani IN ile bir liste alıp bunu kendi içinde eşit olmayanlarla karşılaştırdık.

Sorgu:
SELECT  DISTINCT E1.TitleOfCourtesy FROM Employees AS E1
WHERE E1.City IN
(SELECT E2.City FROM Employees AS E2 WHERE E1.TitleOfCourtesy<>E2.TitleOfCourtesy)



Örnek: Bu sorgumuzda üstteki örneğin JOIN işlemiyle yapılmış halidir.

Sorgu:
SELECT DISTINCT E1.TitleOfCourtesy FROM Employees AS E1
INNER JOIN Employees AS E2 WITH (NOLOCK) ON E1.City=E2.City
WHERE E1.TitleOfCourtesy<>E2.TitleOfCourtesy



Ders39'a Geçebilirsiniz.

26 Mayıs 2012 Cumartesi

36. SUBQUERIES-Sonuç Listesinin Deyim Olarak Kullanılması

  • Sorgularımızda başka bir sorguyu deyim yani yeni bir parametre olarak kullanabiliriz. 
  • Bu amaç için kullanacağımız sorgu ya tek satır sonuç döndürmeli yada tek bir sütun değer listesi döndürmeli.
  • Bir değerler listesi geri döndüren sorgular IN anahtar kelimesi içeren WHERE yantümcesi yerine kullanılabilir. 
Örnek: Sorgumuzda ortalamayı bulup satılan ürünlerimiz ayrıntılı birim fiyatlarını ve bu birim fiyatlarının genel ürün potansiyelinde ortalama ürün fiyatına oranla durumunu göstermekte. Burda alt sorguları kullanarak daha anlaşılabilir sorgu yazabiliriz.

Sorgu: 
SELECT ProductName,UnitPrice,UnitsinStock,
(SELECT AVG(UnitPrice) FROM Products) AS Average,
UnitPrice-(SELECT AVG(UnitPrice) FROM Products) AS Difference
FROM Products 



Ders 37' 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.

20 Mayıs 2012 Pazar

31. İkiden Fazla Tablonun Birleştirilmesi

  • Büyük sorguların yazıldığı durumlarda ikiden fazla tablonun belirli kısıtlamalarla birleştirilmesi gerekebilir. 
  • JOIN işlemiyle birleştirilen tablolar bir başka tabloya aradaki ortak sütunlar üzerinden bağlanabilir.
Örnek: Aşağıdaki örnekte Sipariş Detayları(Order Details) tablosunu ara tablo şeklinde kullanarak, Siparişler (Orders) ve Ürünler(Products) tablosundan gerekli bilgileri görüntülenmiştir. Bir sipariş birden fazla ürünü içerebilir ve bir ürün birden fazla siparişte yer alabilir. Sonuç kümemizde Sipariş Detayları (Order Details) tablosundan hiçbir alan görüntülemesekte sorguda kullanmalıyız.

Sorgu:
SELECT OrderDate,ProductName FROM Orders AS O
INNER JOIN [Order Details] AS OD ON O.Orderid=OD.Orderid
INNER JOIN Products AS P ON OD.Productid=P.Productid
WHERE OrderDate BETWEEN '7/8/96' AND '7/9/96'
ORDER BY OrderDate

Ders 32'ye geçebilirsiniz.

6 Mayıs 2012 Pazar

25. COMPUTE ve COMPUTE BY Kullanımı

  • COMPUTE ifadesi tüm sonuç listemizi bize gösterir. 
  • Farklı olarak tek sorguda 2 tane sonuç listesi bize döndürür. 2.liste detay listesidir. 
  • Dikkat etmemiz gereken COMPUTE ile kullandığımız sütun SELECT ifadesinde yer almalıdır. 
  • COMPUTE anahtar sözcüğü sorgumuzdaki sütunlara toplam fonksiyonları uygulamamıza izin verir.
  • COMPUTE BY ile detaylı gruplandırma yapılabilir.
Örnek: Sorgumuzda ürün idsi 3 den küçükleri listeliyoruz. Ayrıntı olarak 2. sonuç kümemizde ürün id si 1 ve 2 olan ürünlerimizin sipariş adetine bakıyoruz.
Sorgu:
SELECT ProductId, OrderId, Quantity
FROM [Order Details]
WHERE ProductId<3
ORDER BY ProductId, OrderId
COMPUTE SUM(Quantity)






Örnek:  Bu sorgumuzda COMPUTE BY nasıl kullanılır onu görüyoruz. Ara toplamlara girerek ayrıntılı sorgulama yapıyoruz. Bu sorgumuzda amacımız hangi ürün id den ne kadar sipariş edilmiş onu öğrenelim.
Sorgu:
SELECT ProductId, OrderId, Quantity
FROM [Order Details]
WHERE ProductId<3
ORDER BY ProductId, OrderId
COMPUTE SUM(Quantity) BY ProductId


Ders 26 'ya geçebilirsiniz.

24. GROUPING Fonksiyonu

  • GROUP BY ile kullanılan ROLLUP ve CUBE ile elde edilen sonuç listesini GROUPING fonksiyonu daha kolay değerlendirip yorumlamamızı sağlar. 
  • GROUPING fonksiyonu ile belirtilen her bir sütun için sonuç listesinde ayrı bir sütun oluşturulur. 
  • Sonuç listesinde oluşturulan bu sütunlarda özet bilgi için 1 , detaylı bilgi için 0 değeri görüntülenir.
Örnek: Sorgumuzda farklı sütunlara dikkat edelim. NULL olan değerler bütün toplamı göstermektedir.
Sorgu:
SELECT ProductId,CategoryId,GROUPING(CategoryId),SUM(UnitPrice )
FROM Products
WHERE UnitPrice BETWEEN 10 AND 11
GROUP BY ProductId,CategoryId,UnitPrice
WITH CUBE

Ders 25'e geçebilirsiniz.

5 Mayıs 2012 Cumartesi

23. WITH CUBE Kullanımı

  • GROUP BY ile belirtilen sütunların tüm olası eşleşmelerini özetler.
  • Ayrıntılı olarak bilmemiz gereken GROUP By ile grupladığımız listemizde CUBE ve ROLLUP komutlarıyla ara toplam işlemleri yapıyoruz.
  • CUBE komutunun ROLLUP dan farkı bütün sütünlarında null ile ara toplamlarını vermesidir.
  • Eğer ROLLUP kullanarak denerseniz Genel toplam dışında ProductName üzerinde ara toplamları vermeyecektir.
Örnek: Sorgumuzda her sütun için ayrıntılı ara toplam değerlerini  görmekteyiz.
Sorgu: 
SELECT ProductName,CategoryID, SUM(UnitsInStock) AS 'Miktar'
FROM Products
WHERE LEN(ProductName)<5
GROUP BY ProductName,CategoryId
WITH CUBE



NOT: Dikkat etmeniz gereken CUBE ile bütün sütunların değerlerine göre ve toplam olarak sonuç listesine yansıtıldığını görürsünüz. Stokta 74 birim ürün var. 1. kategoride 39 ve 7. kategoride 35 ürün var. Karmaşıklığı azaltmak için sonuç listesini kısalttım WHERE koşulunu kaldırarak diğer bütün kategori ve ürünleri görebilirsiniz.

Ders 24'e geçebilirsiniz.

22 Nisan 2012 Pazar

22. WITH ROLLUP Kullanımı

  • GROUP BY ile bir toplama işlevi kullandığımızda her farklı değer için sadece sonuç satırı görüntülenir. 
  • Gruplandırdığımız değerlerin detaylarını farklı yantümceler kullanarak görüntüleyebiliriz. 
  • WITH ROLLUP ile daha detaylı sonuç listesi oluştururuz.
  • Ayrıntılı bilgi ise GROUP BY ile kullanılan CUBE ve ROLLUP komutları bize ara toplamlar vermektedir. Örneğimizde gördüğümüz gibi null,null olarak bütün  değerler ara toplam olarak verilmiş, sonra ProductName sırasında ara toplamlar verilmiştir.
Örnek: Daha detaylı sonuç listemizde GROUP BY değerlerine ekleyerek bunu gerçekleştiriyoruz. İlerleyen derslerde göreceğimiz SQL LEN() fonksiyonunu burda görmüş oluyoruz. Ürünismi(ProductName) uzunluğu 8'den küçük olması koşulunu ekliyoruz. Dikkat etmeniz gereken GROUP BY değerlerine eklemediğiniz sütünu SELECT e yazamazsınız.
Sorgu:
SELECT ProductID,ProductName,CategoryID, SUM(UnitsInStock) AS 'Miktar'
FROM Products
WHERE LEN(ProductName)<8
GROUP BY ProductID,ProductName,CategoryId 
WITH ROLLUP ORDER BY ProductID,ProductName,CategoryId 




Ders 23' e geçebilirsiniz.

21 Nisan 2012 Cumartesi

21. HAVING Kullanımı

  • Toplam fonksiyonlarını kullanırken kısıtlama yapacağımız zaman WHERE özelliğini kullanamayız. 
  • HAVING yantümcesi, GROUP BY ile elde edilecek satırları kısıtlamak için kullanılır.
  •  İşlev olarak WHERE yantümcesi gibi çalışır fakat WHERE yantümcesi gruplama işlemlerinden önce, HAVING yantümcesi ise GROUP BY'dan sonra uygulanır.
Örnek: Dikkat edilmesi gereken HAVING özelliğinin gruplamadan sonra kullanıldığıdır.WHERE özelliğini FROM dan sonra normal olarak kullanabiliriz. Bu sorguda stoklarımızda 500'den az kalan ürün kategorilerimizi listeliyoruz.

Sorgu: SELECT CategoryID, SUM(UnitsInStock) AS 'Miktar' FROM Products GROUP BY CategoryId HAVING SUM(UnitsInStock)<500


Ders 22'ye geçebilirsiniz.

15 Nisan 2012 Pazar

18. TOP n Kullanımı

  • Bazı durumlarda bir tablo veya sorgudaki tüm kayıtları görmek istemeyebiliriz. 
  • Bir sonuç kümesindeki ilk n satırı veya tüm kayıtların belirli bir yüzdesini görüntüleyebilmek için TOP n anahtar kelimesini kullanırız.
  • TOP n veya TOP n PERCENT anahtar kelimeleri ORDER BY  yan tümcesini ile birlikte kullanılmalıdır.
  •  Aksi halde listelenen verilerde WHERE ifadesi ile belirtilen koşula uyan kayıtlar rastgele dizileceğinden, istediğimiz sonucu elde edemeyebiliriz.
 Söz Dizimi:  SELECT TOP n * FROM <Tablo Adı>

Örnek:Siparişlerimizi en çok sipariş sayısından azalacak şekilde ilk 10 tanesini listeleyelim.

Sorgu: SELECT TOP 10 * FROM [order details] ORDER BY quantity DESC 


Ders 19'a Geçebilirsiniz.

17. SQL Toplam Fonksiyonları

1-) AVG Fonksiyonu
  • Aritmetiksel ortalama (avarage) hesaplamak için kullanılır.  
  • Bu hesaplama sırasında boş (NULL) değerler işleme katılmaz.  
  • AVG fonksiyonu ile koşula bağlı olarak hesaplamalarda yaptırılabilir. 
Söz dizimi: AVG (<Sutun Adı>)

Örnek: Örneğimizde 1. kategorideki ürünlerimizin birim fiyatlarını biliyoruz. İstediğimiz bu kategorideki ürünlerimizin ortalamala birim fiyatları bulmak.
Sorgu:  SELECT AVG(UnitPrice) AS 'Ortalama Birim Fiyatı' FROM Products WHERE CategoryID=1


          2-) MAX Fonksiyonu
  • Tablo içinde, belirtilen sütun (alan) içindeki en büyük değeri bulur.  
  • MAX fonksiyonu, bir sütundaki en yüksek değeri verir. Boş (NULL) değerler işleme katılmaz. 
  • MAX fonksiyonu alfabetik sıralamadaki ilk metinsel ifadeyi de bulmamızı sağlar. 
Söz dizimi: MAX (<Sutun Adı>)

Örnek: Bu örneğimizde 1. kategorideki birim fiyatı en yüksek olan ürünümüzü buluyoruz.
Sorgu: SELECT MAX(UnitPrice) AS 'En Düşük Fiyat' FROM Products WHERE CategoryID=1 


3-) MIN Fonksiyonu
  • Tablo içinde belirtilen sütun (alan) içindeki en küçük değeri bulur. 
  • MIN fonksiyonu bir sütundaki kayıtlardanki en küçük değeri verir. Boş (NULL) değerler işleme katılmaz.  
  • MIN fonksiyonu alfabetik sıralamadaki son metinsel ifadeyi de bulmamızı sağlar.
Söz dizimi: MIN (<Sutun Adı>)

Örnek: Bu örneğimizde 1. kategorideki birim fiyatı en düşük olan ürünümüzü buluyoruz.
Sorgu: SELECT MIN(UnitPrice) AS 'En Yüksek Fiyat' FROM Products WHERE CategoryID=1


4-) SUM Fonksiyonu
  • Fonksiyonla belirtilen sütun ile ilişkili olarak toplama işlemini yapar. 
  • SUM fonksiyonu belirtilen sütundaki sayısal değerlerin bir toplamını geri döndürür. 
Söz dizimi: SUM (<Sutun Adı>) 

Örnek: Bu örneğimizde de 1.kategorideki ürünlerimizin toplam birim fiyatlarını buluyoruz.
Sorgu: SELECT SUM(UnitPrice) AS 'Toplam Fiyat' FROM Products WHERE CategoryID=1


       5-) COUNT Fonksiyonu

Ders-18'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.



14. SQL de Matematiksel ve Metinsel işlemler

  • Tablolardaki alanları kullanarak daha etkili ve kesin sonuça dönük sorgular yapmak için SQL deki matematiksel ve metinsel ifadeleri kullanabiliriz.
  • SQL matematiksel işlemlerin sonucunu otomatik olarak üretmeyi sağlayan fonksiyonlara sahiptir.

(Örneğimizde Birim fiyat (UnitPrice) alanı Miktar(Quantity) alanı ile çarpılarak toplam fiyat hesaplanmış ve “TotalCost” adı ile yeni bir alan olarak görüntülenmiştir.)

Sorgu: SELECT OrderID, ProductID,(UnitPrice * Quantity) AS TotalCost
            FROM [Order Details]
           WHERE (UnitPrice * Quantity) > 10000


Ders 15 '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.