Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As
LIKE (Joker Karakterler)
Joker karakterleri kullanarak bir veri sütunu veya ifadeler içinde desen arayabilirsiniz. Örneğin, soyadları "Ak" ile başlayan veya "kaya" ile biten tüm çalışanları arayabilirsiniz.
Joker Karakterler :
Metin dizeleri olarak işlem gören sütunları aramak için joker karakterleri kullanabilirsiniz. Veri türü karakter içeren sütunlar her zaman metin dizeleri; tarih, saat veri türü içerenler de metin dizeleri olarak işlem görebilir.
Desen aramak için, LIKE işlecini kullanın ve ardından arama dizesindeki bir veya daha çok karakterin yerine joker karakterleri koyun. Aşağıdaki joker karakterlerden birini kullanabilirsiniz:
% (yüzde simgesi): |
İlgili konumda sıfır veya herhangi bir sayıda karakter |
_ (alt çizgi) |
İlgili konumda tek bir karakter |
Örneğin, "Ak" ile başlayan tüm soyadları aramak için, arama koşulunu LIKE 'Ak%'
biçiminde, "Tan" gibi bir adı bulmak için, arama koşulunu LIKE 'T_n'
biçiminde belirleyebilirsiniz
Joker Karakterler Olarak Kullanılan Karakterleri Arama:
Bazı durumlarda, joker karakter olarak kullanılan karakterlerden birini içeren bir dizeyi aramanız gerekebilir. Örneğin, başlıklar
tablosunda, başlığın parçası olarak "%10" dizesini içeren tüm yayınları bulmak isteyebilirsiniz. "%" karakteri aradığınız dizenin bir parçası olduğundan, bunu joker karakter olarak değil, hazır bilgi dizesi olarak kastettiğinizi belirtmelisiniz.
Joker karakter olarak yorumlanabilecek karakterleri aramak için bir çıkış karakteri belirleyebilirsiniz. Tam anlamıyla "%" veya "_" karakteri olarak kastettiğiniz karakterin önüne çıkış karakteri koyun. Çıkış karakterini belirlemek için, LIKE arama ölçütünden hemen sonra bir ESCAPE yan tümcesi ekleyin. Bunu Kılavuz bölmesinin Ölçüt sütununda veya SQL bölmesinde yapabilirsiniz.
Örneğin, "%10" dizesini içeren tüm başlıkları bulmak istediğinizi, "#" karakterini ise bir çıkış karakteri olarak tanımlamak istediğinizi varsayın, yani "#" karakterini "%" karakterinden önce koyacaksınız. Bunu Kılavuz bölmesinden girebilirsiniz:
LIKE
'10%#%%' ESCAPE '#'
WHERE
title LIKE '%10#%%' ESCAPE '#'
Çıkış karakterini yalnızca SQL bölmesinden tanımlayabilirsiniz.
Tarih Sütünlarını Arama:
Tarihzaman veri türünde sütunlarla çalışırken, ay kısaltmaları ve tam yıl biçimleri de dahil olmak üzere, tarih veya saat kısımlarının herhangi bir bölümünü arayabilirsiniz.
Örneğin, içindeki tarihin 1994 yılı olduğu tüm satırları aramak için aşağıdaki LIKE yan tümcesini kullanabilirsiniz:
LIKE
'%1994%'
Aşağıdaki yan tümce ise, yılı dikkate almaksızın, içindeki tarihin Ocak ayı olduğu tüm satırları arar:
LIKE
'Jan%'
Joker Arama Örnekleri:
Aşağıdaki örnekler joker karakter kullanımını göstermektedir.
Arama ifadesi Açıklama Örnek eşleştirmeler
LIKE 'Mac%'
"Ak" ile başlayan değerleri bulur Ak
Akçaağaç
Akkale
LIKE 'J%n'
"K" ile başlayan ve "n" ile biten değerleri bulur Kaan
Kenan
Karaman
Korutan
LIKE '%son'
"Kaya" ile biten değerleri bulur Kaya
Gökkaya
LIKE '%sam%'
Dizenin herhangi bir yerinde "çalı" sözcüğü geçen değerleri bulur Çalı
Çalıtepe
Akçalı
LIKE '%Mar%'
Tarihzaman sütununda, yılı dikkate almaksızın, Mart ayına ait değerleri bulur 3/1/94
01 Mar 1992
LIKE '%1994%'
Tarihzaman sütununda, 1994 yılına ait değerleri bulur. 12/1/94
01 Oca 1994
LIKE 'Mac_'
Tamamı dört karakter olan, ilk üç karakteri "Ali" olan değerleri bulur Alim
Aliş
LIKE '_dam'
Tamamı dört karakter olan ve son üç karakteri "nen" olan değerleri bulur İnen
Önen
LIKE '%s_n'
Aralarında bir karakter ve öncesinde herhangi bir sayıda karakter olmak üzere, sonunda "t" ve "n" harfleri bulunan değerleri bulur Altın
Metin
Otan
tan
Is [Not] Null İfadesi :
Bir tablo içerisinde gerçekleştirilecek değişik sorgulama, silme ya da değişiklik işlemlerinde, belli bir veri alanının ya da veri alanlarının boş olmama durumunun belirtilmesini sağlar.
Bir ifadenin Null olup olmadığını kontrol etmek için ukllanılır. Prgramlama dillerinde genelde degisken = null şeklinde bir kontrol yapılabilirken Sql de bu ifade geçerli olmayacaktır. Bunun yerine “degisken is[not] null” şeklinde bir kullanım yapılabilir.
veri_alanı IS NOT NULL;
Örnek :
KAMYON tablosundaki verilerden PLAKA isimli veri alanı boş olmayanların (bir değere, yani veriye sahip olanların) silinmesini sağlamak amacıyla
DELETE
FROM KAMYON WHERE plaka IS NOT NULL;
diziliminin kullanılması yeterlidir.
NULL KARŞILAŞTIRMA
Bazen bir alana değer girilmiş olup olmadığını karşılaştırmak zorunda kalabiliriz. Örneğin, kitaplığımızda yer alan Kitapdan hangileri için yazar bilgileri girilmediğini bilmek isteriz.
NULL için karşılaştırma yaparken, IS NULL deyimi kullanılır. Boşluk olmayan alanlar için karşılaştırma yaparken ise IS NOT NULL deyimi kullanılır.
SELECT
alanlar
FROM tablo_adi
WHERE alan_1 IS [NOT] NULL;
Örnek-28:
ISBN numarası olmayan kitapların listesi:
SELECT
*
FROM Kitap
WHERE ISBNNo IS NULL;
ORDER BY :
Sorgunun sonuç kayıtlarını belirtilen alan veya alanlara göre artan veya azalan sırada sıralar.
Uyarılar
ORDER BY isteğe bağlıdır. Ancak, kayıtların sıralanmış olarak görüntülenmesini istiyorsanız ORDER BY'ı kullanmalısınız.
Varsayılan sıralama düzeni artan düzendir (A'dan Z'ye, 0'dan 9'a). Aşağıdaki örneklerden her ikisi de, çalışan adlarını soyadına göre sıralar:
SELECT
Soyady, Ady
FROM Çalışanlar
ORDER BY Soyady;
SELECT Soyady, Ady
FROM Çalışanlar
ORDER BY Soyady ASC;
Azalan sırada sıralamak için (Z'den A'ya, 9'dan 0'a), azalan sırada sıralamak istediğiniz her alanın sonuna DESC saklı sözcüğünü ekleyin. Aşağıdaki örnek maaşları seçer ve bunları azalan sırada sıralar:
SELECT
Soyadı, Maaş
FROM Çalışanlar
ORDER BY Maaş DESC, Soyadı;
ORDER BY yan tümcesinde Not veya OLE Nesnesi verileri içeren bir alanı belirtirseniz bir hata oluşur. Microsoft Jet veritabanı alt yapısı bu bu türdeki alanları gruplandıramaz.
ORDER BY genellikle bir SQL deyimi nin son sözcüğüdür.
ORDER BY yan tümcesinde ek alanlar da bulundurabilirsiniz. Kayıtlar, ORDER BY'dan sonra listelenen ilk alana göre sıralanır. Bu alanda aynı değere sahip olan kayıtlar, listelenen ikinci alana göre sıralanır ve bu böylece devam eder.
ORDER BY Yan Tümcesi Örneği
Aşağıdaki örnekte gösterilen SQL deyimi, soyadlarını azalan sırada (Z-A) sıralamak için ORDER BY yan tümcesini kullanır.
Bu örnek, SELECT deyimi örneğinde bulabileceğiniz EnumFields yordamını çağırır.
Sub OrderByX()
Dim dbs As Database, rst As Recordset
' Bu satyry, bilgisayarynyzdaki Northwind yolunu
' bulundurmak üzere değiştirin.
Set dbs = OpenDatabase("Northwind.mdb")
' Çalışanlar tablosundan adı ve soyadı değerlerini
' seçer ve bunlary azalan syrada syralar.
'
Set rst = dbs.OpenRecordset("SELECT Soyady, " _
& "Adı FROM Çalışanlar " _
& "ORDER BY Soyady DESC;")
' Recordset'i başlatır.
rst.MoveLast
' Recordset içeriklerini yazdırmak üzere EnumFields'i çağırır.
EnumFields rst, 12
dbs.Close
End Sub
GROUP BY :
DISTINCT anahtar sözcüğü sadece benzersiz satırları listelemek için kullanılırken, GROUP BY yan cümlesi belirtilen sütun yada sütunlardaki aynı değere sahip satırları tek bir satırda birleştirmeyi sağlar. GROUP BY genellikle toplam fonksiyonlarıyla (aggregate function) kullanılır. GROUP BY sorgularında kullanılan en yaygın toplama fonksiyonları MIN, MAX, SUM ve COUNT’dır.
GROUP BY ile belirtilen sütunlar SELECT ifadesinde de yer almalıdır.
Örnek: Aşağıda Sipariş Detayları(Order Details) tablosu productid alanına göre gruplandırılmış ve her grubun toplam sipariş miktarı hesaplanmıştır.
Sorgu:
USE Northwind
SELECT productid, SUM(quantity) AS ‘Total’
FROM [ORDER Details] GROUP BY productid ORDER BY productid
Örnek: Aşağıdaki örnekte sadece ürünkodu 2 olan kayıdın toplam miktarı hesaplanmıştır.
Sorgu:
USE Northwind
SELECT productid, SUM(quantity) AS
Total
FROM [ORDER Details] WHERE productid=2
GROUP BY productid ORDER BY productid
Kaynak:
http://office.microsoft.com/tr-tr/access/HP030839371055.aspx
http://www.verivizyon.com/kitapoku.asp?catid=81