SELECT cümlesi bir veri tabanından verileri seçmek ve çıkarmak (“retrieve”) için kullanılır. Yapısı ;
SELECT [DISTINCT] { * | sütun, ….} FROM tablo_adı;
Select cümlesi kullanılarak aşağıda ki işlemleri yapabiliriz ;

  • Kapsam Sınırlama : Bir tablodan döndürülecek sütunların sınırlandırılabilmesi özelliğidir.Örnegin HR kullanıcısında ki employees tablosundan tüm sütunları çekebileceğimiz gibi kapsam sınırlama özelliğini kullanaraktan istediğimiz sütunları da seçebiliriz.Örnegin employees tablosundan kapsam sınırlama özelliğini kullanarak first_name ve last_name sütunlarını seçelim ;
Select first_name,last_name from employees;
  • Seçim Sınırlama : Bir tablodan döndürülecek satırların sınırlandırılabilmesi özelliğidir.Örnegin HR kullanıcısında ki employees tablosundan tüm satırları çekebileceğimiz gibi seçim sınırlama özelliğini kullanarak istediğimiz satırları da seçebiliriz. Örnegin employees tablosundan seçim sınırlama özelliğini kullanarak salary’isi 10000 olanları versin  ;

Select * from employees where salary=10000;
  • Birleşim : Birleşim özelliği ise birden çok tabloda ki verinin bir sorgu içinde birbiriyle etkileşime girbebilmesi özelliğidir. Örnegin HR kullanıcısında ki employees tablosundan first_name ‘i, departments tablosundan department_name’i birleşim özelliğini kullanaraktan çekelim.
Select e.first_name,d.department_name from
employees e,departments d where e.department_id=d.department_id;

All-Distinct

Distinct ve all ifadesi ile ise tekrarlanan verileri seçip seçmemek elimizdedir.

  • All : All kelimesi bir sütunda ki tekrarlanan tekrarlanmayan tüm kayıtları listeler.Örnegin employees tablosunda ki department_id sütununu all sql koduyla çalıştıralım ve tekrarlanan verilerin listelendiğini görelim ;
Select all(department_id) from employees;
  • Distinct : Distinct kelimesi bir sütundaki benzersiz kayıtları listeler. Örnegin employees tablosunda ki department_id sütununu distinct sql koduyla çalıştıralım ve tekrarlanan verilerin bir defa listelendiğini görelim ;
Select distinct(department_id) from employees;

Not : Hiçbir şey yazmasak default’unda all kelimesi vardır ve bir sütunda ki tekrarlanan tekrarlanmayan tüm kayıtları listeler.Örnegin all veya distinct yazmadıgımız halde aşağıda ki sql kodunu çalıştırdığımız da göreceğiz ki tekrarlanan tekrarlanmayan bütün veriler var ;

Select salary from employees;

Sütun Takma İsimleri(alias)

Sütun takma isimleri(alias) tablolarda yer alan sütun isimlerini daha anlaşılır şekilde görüntülemek için kullanılır.Bunu örneklerle anlatacak olursak Örnegin employees tablosunda ki first_name sütununda ki verileri çekelim ama sütun adı yerine first_name degilde Isim yazsın.

Select first_name Isim from employees;

 

Select first_name as Isim from employees;

ISIM
——————–
Ellen
Sundar
Mozhe
David
Hermann
Yukarıda ki örneğleri çalıştırdırgımızda da gördüğümüz gibi ‘as’ takısını yazsak da oluyor yazmasak da oluyor ikisindede aynı sonucu veriyor.
Gene yukarıda ki örneklerde  görüldüğü gibi biz ‘first_name’ yerine ‘Isim’ takma adı çıksın isterken ‘ISIM’ takma adı çıktı yani kendisi bütün harfleri büyük yaptı.Bunun önüne geçmek istersek de yani takma adı nasıl yazdıysak öyle gözükmesini istersek tırnak(“) içine almamız gerekir. Örnegin ;

Select first_name "Isim" from employees;

 

Select first_name as "Isim" from employees;

ISIM
——————–
Ellen
Sundar
Mozhe
David
Hermann
Sütun takma isimlerini bir tabloda birden fazla yerde kullanabiliriz.Örnegin ;

Select first_name "Isim",last_name as Soyad from employees;

Sütun takma isimlerini sütunları birleştirerek de kullanabiliriz.Örnegin employees tablosunda ki first_name ve last_name sütunlarını birleştirip sütun takma isimlerini kullanarak da AdSoyad gibi gözükmesini yapalım.

Select first_name||last_name as AdSoyad from employees;

 

Select first_name||last_name  "AdSoyad" from employees;

 

Select first_name||' '||last_name as "Ad Soyad" from employees;

Ad Soyad
————————————
Ellen Abel
Sundar Ande
Mozhe Atkinson
David Austin
Hermann Baer

Where(Kayıt Sınırlama)

Sadece belirli kritirlere uygun verilerin döndürülmesi için çeşitli kritirler kullanabiliriz.Bu kriterler matematiksel işlemlere dayalı olacağı gibi mantıksal doğrulama sonuçları temel alınarak da belirtilebilir.İstedigimiz kriterlere uygun verilerin seçilmesi için belirlediğimiz kriterleri SQL cümlesinde where ile birlikte belirtiriz.

SELECT [DISTINCT] { * | sütun, ….} FROM tablo_adı where koşullar;

Örnegin employees tablosunda first_name ‘i M ile başlayanları listeleyelim.

Select * from employees where first_name like 'M%';

NOT : Bir sonra ki yazımda SQL sorgu dilinde ki Operatörleri(Operators) anllatıktan sonra örnekler sayesinde bu kısım daha iyi anlaşılacaktır bunun sebebide where sql kodundan sonra operatör kullanıyor olmamızdır.

Order By(Seçim Sınırlama)

Normalde SQL ifade ile veri çekerken sıralı olarak getirir ama bu her zaman böyle degildir yani SQL çekilen verilerin her zaman sıralı geleceginin garantisini vermez bu yüzdende gelen verileri sıralamak için SELECT cümlesinin en sonuna konulacak olan ORDER BY ifadesini kullanırız.

Order by yazdığımız Select cümlelerinde en son kullanılan ifade olmalıdır.

Select first_name from employees order by first_name;

Order by varsayılan olarak artan şekilde sıralar.Ama bunu biz belirleyebiliriz ;

  • ASC : Kayıtları artan şekilde sıralar.(Varsayılan sıralama şeklidir)
Select first_name from employees order by first_name ASC;
  • DESC : Kayıtları azalan şekilde sıralar.
Select first_name from employees order by first_name DESC;

Sıralamayı başka bir sütuna kayıt çekmeyi başka bir sütuna göre yapabiliriz.

Select first_name from employees order by salary;

 

Select first_name,salary from employees order by salary;

Sıralamayı birden fazla sütuna göre yapabiliriz bu durumda önce birinci sütuna göre sıralama yapar daha sonra ise kendi içinde ikinci sütuna göre eleme yapar.Örnegin employees tablosunda ki salary ve first_name’e göre sıralama yaparsak önce salary’e göre sıralama yapar daha sonra ise salary’leri aynı olanların first_name’lerine göre sıralama yapar.

Select first_name,salary from employees order by salary,first_name;

 

Select first_name,salary from employees order by salary DESC,first_name ASC;

Order by ile sıralama yaparken NULL değerlerin en başta mı en sonda mı gözükeceğini ise aşağıda ki ifadelerle belirleriz ;

Nulls First ; Sıralamada ilk önce NULL değerleri verir.Örnegin employees tablosunda ki commission_pct sütununa göre sıralama yapdırtır ve bunun sonuna da Nulls First yazarsak önce Null değerler yazılır daha sonra sıralamaya göre kayıtlar listelenir.

Select first_name,commission_pct from
employees Order by commission_pct Nulls First;

Nulls Last ; Sıralamada en sonda NULL değerleri verir. Örnegin employees tablosunda ki commission_pct sütununa göre sıralama yapdırtır ve bunun sonuna da Nulls Last yazarsak en sonda Null değerler yazılır.

Select first_name,commission_pct from
employees Order by commission_pct desc Nulls Last;

NOT  : Örneklerimde Oracleda ki DUAL table ‘ ı ve HR user ‘ ı kullanıyorum.
Yararlı olması Dilegiyle…
Yazar : Mustafa Bektaş Tepe
Java && Oracle

Loading