5 Dakikada SQL Temelleri ve SELECT Deyimi

Programlama ile uğraşıyorsanız, veri analizi yapıyorsanız yani kısacası işiniz veri ise SQL nedir, ne değildir bilmek gerekiyor kaçış yok. Sitemde SQL ile alakalı bir çok uygulama yazısı bulabilirsiniz. Bu yazımda SQL’e şöyle kısa ve çok hızlı bir bakış atmayı hedefleyen bir içerik sunmak istedim size. Yoksa tabi 5 dakikada her şey bitmiyor tabii ki 🙂

Bazı genel tanımlamalar ile başlayalım.

Kayıt veya Satır Nedir?

Genellikle sql tarafında satır olarak tanımladığımız ancak kayıt olarak da adlandırılan bu tanım aslında tek bir varlığı temsil eden niteliklerin yani değişkenlerin topluluğudur. Örneğin bir hastanenin veri kayıtlarında bir hastayı düşünelim. Bu hastanın adı, soyadı, yaşı, cinsiyeti, telefonu, kilosu, boyu ve daha bir çok özelliği bu hastayı yani bu varlığı oluşturan bir satır bir kayıt kümesidir.

Örnek olarak buna benzer bir tabloyu aşağıda sundum.

IDHasta AdHasta SoyadHasta CinsiyetHasta TC Kimlik NoHasta BoyHasta KiloHasta Telefon
1İsmailGÜRSOYErkek111111111111748512345
2EmirKAYAErkek222222222221758023456
3FilizKARAKadın333333333331685598765
4DenizOKYANUSKadın444444444441656033333

Burada yazı rengi sarı olan kısım bir kayıt yani bir başka deyişle satırdır.

Tablo Nedir?

Buranın tamamı ise bir tablodur. Yani üstteki 4 kayıttan oluşan kısmın tamamı tablodur. Aynı özniteliklere sahip, satırların bir araya gelmiş halidir tablo. Tıpkı bir excel tablosu gibi düşünebilirsiniz.

Sütun nedir?

Sütun bir tabloda yer alan bir özniteliktir. Yani yukarıdaki tabloda Ad bir sütundur.

Query nedir?

Bunu dikkat ederseniz özellikle İngilizce bıraktım çünkü çok fazla benimsenmiş durumda. Query, sorgu anlamına gelir, istek anlamında da düşünebilirsiniz aslında. Bir veri tabanı tablosundan veya tabloların birleşiminden gelen veriler için bir istektir. Örnek olarak üstteki tabloda diyelim ki Erkek hastaların listelenmesini istemek bir query’dir.

Bu yazıda tabi SQL’in her şeyini anlatmayacağız. Ama SQL’de listeleme nasıl yapılır, buna makale babında değinelim biraz. Sitem de zaten yazının başında dediğim gibi birçok örnek bulabileceksiniz.

SQL SELECT Kullanımı

Şimdi üstteki tablo gibi bir veri setimin olduğunu düşünelim. Veri listeleyebilmek için temelde kullanılan 5 deyim var. Bunlar:

  • SELECT : Mutlaka kullanılır
  • FROM : Mutlaka kullanılır.
  • WHERE: Tercihen kullanılır.
  • GROUP BY: Tercihen kullanılır.
  • ORDER BY : Tercihen kullanılır.

Bir listeleme sorgusundaki yapı aşağıdaki gibidir:

SELECT
[KolonAd_1],
[KolonAd_2],
[KolonAd_n]
FROM
[TabloAd]
WHERE
[şart]
GROUP BY
[KolonAd] 
ORDER BY
[KolonAd]

Detaylarını aşağıdaki açıklayacağız, şimdilik geçelim.

Aşağıdaki gibi bir tablom olsun; Hastalar Tablosu olsun adı.

IDHastaAdHastaSoyadHastaCinsiyetHastaTCKimlikNoHastaBoyHastaKiloHastaYas
1İsmailGÜRSOYErkek111111111111748538
2EmirKAYAErkek222222222221758018
3FilizKARAKadın333333333331685528
4DenizOKYANUSKadın444444444441656025
5HalimeYILMAZKadın123456789011605555
6HasanTÜRKErkek090000000001657563
7AyhanTAŞErkek000000000001708555
8FatoşDURMAZKadın444444444491607550
9TuncayKEKErkek999999999991767631
10GülhanGÜLKadın888888888881655833

SELECT kullanımı SQL’de listeleme yapmak için mutlaka gereken deyimlerdendir. İstediğimiz tablodan, istediğimiz kolonları çekmek için kullanılır. SELECT ifadesinden sonra kolonlar gelir. Örneğin hastaların adını seçmek için;

SELECT HastaAd

Diyelim ki tüm kolonları listelemek istiyorum.

SELECT * 

Burada yıldız o tablonun tüm kolonları anlamına gelir. Tabi SELECT tek başına yeterli değil. FROM kullanımı da zorunlu.

FROM nereden veri çekileceğini belirtmek için kullanılır, yani hangi tablodan veri çekeceğim. Yukarıdaki örneği düzenlersek;

SELECT HastaAd FROM Hastalar

Hastalar tablosundan HastaAd kolonunu çekiyorum.

WHERE kullanımı zorunlu değil ancak ben eğer filtreleme yapmak, gelen veriler içinde belirli bir şartta veriler gelsin istiyor isem WHERE deyimini kullanmak zorundayım. Exceldeki filtreleme olayı gibi düşünebilirsiniz. Diyelim ki bu tabloda 40 yaşından büyük hastaların adlarını ve soyadlarını listelemek istiyorum. O zaman query şu şekilde olur:

SELECT HastaAd, HastaSoyad FROM Hastalar WHERE HastaYas > 40

Diyelim ki 40 yaşından büyük ve erkek olan hastaların ad ve soyadlarını çekmek istiyorum. O halde sorgum şu şekilde olur:

SELECT HastaAd, HastaSoyad FROM Hastalar WHERE HastaYas > 40 AND HastaCinsiyet=’Erkek’

Birde şöyle bir sorgumuz olsun, 40 yaşından büyük veya 75 kilodan büyük hastaların ad ve soyadlarını çekelim.

SELECT HastaAd, HastaSoyad FROM Hastalar WHERE HastaYas > 40 OR HastaKilo > 75
SELECT ile Birlikte ORDER BY ve GROUP BY Kullanımı

GROUP BY, veri listeleme işlemlerinde kullanılan bir diğer deyimdir. Yine opsiyonel bir kullanıma sahiptir. Herhangi bir tablodan veri çektiğimizde aynı değere sahip satırları özet bir tablo halinde göstermek, gruplamak için kullanılır. Genellikle COUNT, MIN, MAX, SUM, AVG gibi fonksiyonlar ile birlikte kullanılır. Diyelim ki üstteki tablomda kaç kadın, kaç erkek var bulalım:

SELECT HastaCinsiyet, COUNT(HastaCinsiyet) FROM Hastalar GROUP BY HastaCinsiyet

ORDER BY, veri listeleme işlemlerinde kullanılan bir diğer deyimdir. Yine opsiyonel bir kullanıma sahiptir. Herhangi bir tablodan veri çekerken, istediğimiz kolona göre verilerin sıralanmasına imkan sağlanması amacı ile kullanılır. ORDER BY kullanılırken ASC ve DESC ile birlikte kullanılır. ASC ile artan bir sıralama, DESC ile azalan bir sıralama işlemi gerçekleştirilir.

Örneğin yine üstteki tablo için; verileri çektiğimde yaşlar artan sırada görünsün istiyor isem sql queryim aşağıdaki gibi olur:

SELECT * FROM Hastalar ORDER BY HastaYas ASC

Şimdilik bu kadar, SQL’de SELECT sorgusunu, tablo mantığını, satır ve kolon mantığını irdelemiş olduk 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir