SQL SELECT komutu kullanımı örneği (SQL SELECT command usage example)

“SELECT” kelimesi “seçmek” anlamındadır.
SQL yapısında “SELECT” veritabanından istenen koşullara uygun verileri,bilgileri getirmek için kullanılır.

Sade kullanımını şu şekildedir.

SELECT result_clause
  FROM source_clause
 WHERE where_clause.

result_clause :
SQL’den gelmesi istenen kolonların seçildiği alandır.
Alabileceği değerler “*” veya “alan1, alan2, alan3, …”
a. * : Tüm alanları getirmek için kullanılır.

     SELECT *
     FROM personel

Komutu personel tablosundaki tüm kayıtların okuması için kullanılır.

b. alan1, alan2 … : Sadece istenen kolonların gelmesi için kullanılır.

     SELECT calismadonemi, personid, calismagunu
       FROM calisma

komutu ise çalışma tablosundan sadece calisma donemi, personel id ve calisma gunu bilgilerini getirmek için kullanılır.

from_clause :
SQL de okunacak verilerin hangi tablolardan okunacağı ve tablolar arası ilişkilerin nasıl olması gerektiğini gösterir.
Basit SQL cümleciklerinde from_clause da tek tablo adı varken, bazı SQL cümlecikleri onlarca tablo adından oluşabilir.

SELECT * 
  FROM personel : 

Basit bir SQL cümleciğidir.
PERSONEL tablosundaki tüm verileri koşulsuz olarak okur ve getirir.

SELECT * 
  FROM personel 
  INNER JOIN calisma ON calisma.personid = personel.personid

Biraz daha karmaşık bir SQL cumleceğidir.
Personel tablosundaki tüm verilerden çalışma tablosunda da var olanları getirir.
Burada WHERE olmadığı için koşulsuz bir IF(eğer) oldugu düşünülebilir, ancak INNER JOIN de araya gizli bir koşul ilave edilmiştir.
Sadece çalışma tablosunda hareketi olan kayıtlar karsımıza gelir.

Birden fazla tablodan veri okuyan SQL cümleciklerinde karşılaştırılacak/gösterilecek kolonların hangi tabloya ait olduğu
“.”(nokta) işareti ile belirtilir. Bu veritabanından veritabanı değişebilir. Örneğin bu SAP/ABAP dili için “~” dir.

  SELECT personel.personid, personel.name, calisma.calismadonemi,calismagunu
  FROM personel 
  INNER JOIN calisma ON calisma.personid = personel.personid.

Cümleciğinde program PERSONEL tablosundan personid, name alanlarını, CALISMA tablosundan calisma donemi ve calisma gunu bilgisini getirmektedir.

where_clause :
SQL de okunacak verinin hangi özelliklere seçileceği/filtreleneceğini belirtir.

SELECT * 
  FROM personel 
  INNER JOIN calisma ON calisma.personid = personel.personid
  WHERE personel.name = 'HALIL KINIK'.

cümleciği bize sadece adı “HALIL KINIK” olan personelin bilgilerinin getirilmesini sağlar.

Where_clause da kullanılabilecek komutlar;

a.Standart matematik karşılaştırmaları aynen matematikte nasıl kullanılıyorlarsa SQL’de de aynı anlama gelirler.
Bazı SQL’lerde sol taraftaki matematik ifade yerine sağ tarafta parantez içinde yazılan kısaltmalarda aynı analama gelecek şekilde kullanılabilir.

= (eq) eşittir

> (gt) büyüktür

< (lt) küçüktür >=(ge) büyük veya eşittir

<=(le) küçük veya eşittir <>(ne) eşit değildir

b. Like : Benzer komutu. Bu okunan datalar içinden matematik ifadelerle seçemediğimiz komutalar için kullanılır.
Girdiğimiz ifadeye göre benzer olan verilerin seçilmesi için kullanılır.

Burada benzerlik girdiğimiz %(yüzde) işaretinin yerine göre oluşur.
* Aşağıdaki komut bize istenen listeden adı “HALİL” ile başlayanları listeler.

SELECT * 
  FROM personel 
  INNER JOIN calisma ON calisma.personid = personel.personid
  WHERE personel.name like 'HALİL%'.

* Aşağıdaki komut bize istenen listeden adı “HALİL” ile bitenleri listeler.

SELECT * 
  FROM personel 
  INNER JOIN calisma ON calisma.personid = personel.personid
  WHERE personel.name like '%HALİL'.

* Aşağıdaki komut bize istenen listeden adının herhangi bir yerinde ( başı,ortası,sonu ) “HALİL” olanları listeler.

SELECT * 
  FROM personel 
  INNER JOIN calisma ON calisma.personid = personel.personid
  WHERE personel.name like '%HALİL%'

Kullanılan SQL komutları aşağıdaki tablo yapısı baz alınarak yazılmıştır.
Burada basit olarak;
Personelin çalıştığı Departman bilgilerinin tutulduğu “Departman”,
Personel özlük bilgilerinin tutulduğu “Personel” ve
Personel aylık dönemlere göre çalısma bilgilerinin tutulacağı “calisma” tabloları oluşturulmuştur.

CREATE SCHEMA `yazilimcitynet` ;


CREATE  TABLE `yazilimcitynet`.`departman` (
  `departmanid` INT NOT NULL ,
  `departmanname` VARCHAR(45) NOT NULL ,
  `adet` INT NOT NULL ,
  PRIMARY KEY (`departmanid`) ,
  UNIQUE INDEX `departmanid_UNIQUE` (`departmanid` ASC) ,
  UNIQUE INDEX `departmanname_UNIQUE` (`departmanname` ASC) );


CREATE  TABLE `yazilimcitynet`.`personel` (
  `personid` INT NOT NULL ,
  `name` VARCHAR(50) NOT NULL ,
  `address` VARCHAR(255) NULL ,
  `city` VARCHAR(50) NULL ,
  `departmanid` INT ,
  `age` INT NULL ,
  PRIMARY KEY (`personid`) );


CREATE  TABLE `yazilimcitynet`.`calisma` (
  `calismadonemi` VARCHAR(6) NOT NULL ,
  `personid` INT NOT NULL ,
  `calismagunu` INT NULL ,
  `ucretliizin` INT NULL ,
  `ucretsizizin` INT NULL ,
  PRIMARY KEY (`personid`) );
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

Leave a Reply


*