Select ifadesi bir tablodan verileri seçmek için kullanılır. Elde edilen veriler sonuç kümesi olarak adlandırılır ve yine bir tablo görüntüsü şeklinde görüntülenir.
Söz dizimi:
SELECT
FROM
Belirli Sütunların Görüntülenmesi
Çoğu durumda tablomuzda sakladığımız tüm veriyi görmektense, o an için ihtiyaç duyduğumuz kısmını görüntülemek isteriz. Bunun için Select ifadesini takiben, kullanılacak sütun adları belirtilir.
Örnek: Northwind veritabanındaki Employees tablosunda çalışanlar ile ilgili bilgiler saklanır. Bize personelimizin sadece telefon numaraları gerekli olduğunda aşağıdaki alanları görüntülememiz yeterlidir.
Sorgu:
USE northwind
SELECT firstname,lastname,homephone
FROM employees
Sonuç:
Tüm Sütunları Görüntülemek
Bir tablodaki tüm alanları görüntülemek için ise tek tek bütün sütun adlarını belirtmekten daha kolay bir yol vardır. Select ifadesinden sonra asterix(*) işaretini yazdığınızda SQL bunu ‘tablodaki tüm sütunlar’ olarak yorumlayacaktır.
Sonuç:
WHERE Yantümcesi
WHERE yantümcesi görüntülemek istediğimiz verileri belirli bir kritere göre seçebilmemizi sağlar. Bu da, örneğin günlük satış bilgilerinin tutulduğu, 100.000 kayıttan oluşan satışlar tablosundaki sadece son 3 gün içerisindeki satışları görmemizi sağlar.
Where yantümcesinin kullanımı zorunlu değildir. Fakat bir koşula bağlı veri seçmek istediğimizde FROM yantümcesinden sonra eklenebilir.
Söz dizimi: SELECT
WHERE
Operatörler (İşleçler)
Aşağıdaki operatörleri WHERE ifadesi ile birlikte sınanmasını istediğiniz koşulları oluştururken kullanabilirsiniz.
Operator
İfade
=
Eşittir
<>
Eşit Değildir, Farklı
>
Büyük
<
Küçük
>=
Büyük veya Eşit
<=
Küçük veya Eşit
BETWEEN
Arasında
LIKE
Metin arama
Not: SQL’in bazı sürümlerinde <> operatörü != şeklinde de kullanılabilir.
Örnek: Northwind veritabanında Customers tablosundan, Kanada daki müşterileri görüntülemek istediğimizde Country alanına bir koşul belirtmemiz gerekecektir.
Aşağıdaki örnek kodları çalıştırıp sonuçlarını inceleyiniz.
Birim fiyatı 20$ dan büyük olan ürünleri listelemek için Ürünler (Products) tablosunda UnitPrice alanı için bir koşul belirtmemiz gerekir.
USE northwind
SELECT ProductID,ProductName,UnitPrice
FROM products
WHERE unitprice>20
01.01.1998 tarihinden itibaren verilmiş olan siparişleri görüntülemek için;
USE northwind
SELECT OrderID,CustomerID,OrderDate
FROM Orders
WHERE OrderDate>'1/1/1998'
LIKE ifadesi
LIKE kelimesi sütundaki değerlerin, joker karakterler kullanılarak oluşturduğumuz bir arama koşulu ile karşılaştırılmasını sağlar.
Söz dizimi: SELECT
WHERE
Joker Karakter
Anlamı
%
Herhangi uzunlukta karakter
_
Herhangi tek karakter
[]
Belirtilen aralıkta herhangi bir karakter
[^]
Belirtilen aralıkta olmayan herhangi bir karakter
Örnek: Müşterilerimiz içerisinden ilk harfi K olanları listelemek istediğimizde;
Sorgu:
USE northwind
SELECT * FROM Customers
WHERE CustomerID LIKE 'K%'
Örnek arama koşulları:
LIKE ‘BR%’ İlk iki harfi BR olan tüm kayıtlar
LIKE ‘Br%’ İlk iki harfi Br olan tüm kayıtlar
LIKE ‘%een’ Son üç harfi een olan tüm kayıtlar
LIKE ‘%en%’ İçerisinde en ifadesi geçen tüm kayıtlar
LIKE ‘_en’ Son iki harfi en olan üç harften oluşan tüm kayıtlar
LIKE ‘[CK]%’ C veya K harfleriyle başlayan tüm kayıtlar
LIKE ‘[S-V]ing ing ile biten ve ilk harfi S ile V harfleri arasında olan dört harfli herhangi kelime
LIKE ‘M[^c]%’ M ile başlayan ikinci harfi c olmayan tüm kayıtlar
SQL AND & OR & NOT MANTIKSAL OPERATÖRLERİ
AND ve OR Mantıksal operatörlerini birden fazla koşulu birleştirmek için kullanırız.
AND operatörü kullanarak, birleştirilen koşulların tümüne uyan satırlar listelenir.
OR operatörü kullanılarak, birleştirilen koşullardan en az birine uyan satırlar listelenir.
NOT operatörü kendisinden sonra gelen koşulu sağlamayan kayıtları listeler.
Parantez kullanımı ikiden fazla koşul olması durumunda koşulların öncelik sırasını belirler.
Parantez kullanılmaması durumunda SQL önce NOT, sonra AND ve en son da OR mantıksal operatörünü işler.
Söz dizimi: SELECT
WHERE
SELECT
WHERE
Örnek: Personel nosu 5 olan çalışanın 1998 yılından sonra aldığı siparişleri listelemek için kontrol edilmesi gereken iki koşul vardır.
Örnek: Berlin’deki veya Amerika’daki üreticileri listelemek istediğimizde;
Sorgu: Sonuç:
USE northwind
SELECT SupplierID,CompanyName,City,Country
FROM Suppliers
WHERE Country='USA' OR City='Berlin'
ORDER BY city,country
Bir Listedeki Elemanların Aranması – IN
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.
Örnek: Japonya ve İtalyadaki üreticileri görmek istediğimizde;
Sorgu: Sonuç:
USE northwind
SELECT companyname, country
FROM suppliers
WHERE country IN ('Japan', 'Italy')
GO
Boş Değerlerin Görüntülenmesi- NULL Değerler
Veri girişi sırasında alana herhangi bir değer girilmezse ve alan için herhangi bir varsayılan 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.
Örnek: Aşağıdaki örnek fax numarası girilmemiş firmaları listeler.
Sorgu: Sonuç:
USE northwind
SELECT companyname, fax
FROM suppliers
WHERE fax IS NULL
GO
SQL Select Distinct
DISTINCT kelimesi bir sütundaki benzersiz kayıtları listeler. Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. Distinct anahtar kelimesi ile her tekrarlanan kelime sadece bir kez listelenir.
Söz dizimi: SELECT DISTINCT
Örnek: Hangi ülkelerdeki üreticilerle çalıştığımızı görmek isteyelim. Bu durumda tek bir ülkeden birden fazla firma ile çalışıyor olabiliriz.
Sorgu: Sonuç:
USE northwind
SELECT DISTINCT country
FROM suppliers
ORDER BY country
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
ORDER BY