Veritabanı

SQL SELECT Komutu: Veritabanından Veri Çekmenin Temelleri

SQL SELECT Komutu: Veritabanından Veri Çekmenin Temelleri

SQL, Structured Query Language (Yapılandırılmış Sorgu Dili) ifadesinin kısaltmasıdır. İlişkisel veritabanlarında veri okumak, eklemek, güncellemek ve silmek için kullanılır. Bu işlemlerin en sık yapılanı veri okumaktır ve bunun komutu SELECT‘tir.

Örnek Tablo

Aşağıdaki örneklerde kullanicilar adında bir tablo olduğunu varsayalım:

id | ad       | sehir    | yas
1  | Ahmet    | Ankara   | 25
2  | Elif     | İzmir    | 31
3  | Mehmet   | Ankara   | 42
4  | Zeynep   | Antalya  | 28

Tablo satırlardan (kayıt) ve sütunlardan (alan) oluşur.

Tüm Veriyi Çekmek

SELECT * FROM kullanicilar;

* tüm sütunlar anlamına gelir. Gerçek projelerde yalnızca ihtiyacınız olan sütunları yazmak daha doğrudur.

Belirli Sütunları Seçmek

SELECT ad, sehir FROM kullanicilar;

Sonuçta yalnızca ad ve sehir sütunları gelir.

WHERE ile Filtreleme

SELECT ad FROM kullanicilar WHERE sehir = 'Ankara';

Bu sorgu Ahmet ve Mehmet’i döndürür. Metin değerleri tek tırnak içinde yazılır. Karşılaştırma için kullanabileceğiniz işleçler şunlardır:

  • = eşittir
  • <> veya != eşit değildir
  • >, <, >=, <= büyük ve küçük karşılaştırmaları
  • BETWEEN 20 AND 30 iki değer arasında
  • LIKE 'A%' belirli bir kalıba uyan metinler
  • IN ('Ankara', 'İzmir') listedeki değerlerden biri

Koşulları AND ve OR ile birleştirebilirsiniz:

SELECT ad, yas FROM kullanicilar
WHERE sehir = 'Ankara' AND yas > 30;

ORDER BY ile Sıralama

SELECT ad, yas FROM kullanicilar ORDER BY yas DESC;

ASC küçükten büyüğe (varsayılan), DESC büyükten küçüğe sıralar.

LIMIT ile Kayıt Sayısını Sınırlamak

SELECT ad FROM kullanicilar ORDER BY yas DESC LIMIT 2;

En yaşlı iki kullanıcıyı getirir. MySQL ve PostgreSQL LIMIT kullanır. SQL Server’da bunun karşılığı TOP‘tur.

COUNT ile Sayım

SELECT COUNT(*) FROM kullanicilar WHERE sehir = 'Ankara';

Sonuç 2 olur. AVG, SUM, MIN ve MAX gibi diğer toplama fonksiyonları da benzer şekilde kullanılır.

GROUP BY ile Gruplamak

SELECT sehir, COUNT(*) AS kisi_sayisi
FROM kullanicilar
GROUP BY sehir;

Her şehir için kaç kullanıcı olduğunu verir. AS ile sütuna takma ad verilir.

Güvenlik Notu

Web uygulamalarında kullanıcıdan gelen değeri sorgu metnine doğrudan eklemeyin. Her zaman hazırlanmış ifadeler (prepared statements) kullanın. Aksi halde uygulamanız SQL injection açığına maruz kalır.

Özet

Bir sorgunun genel sırası şöyledir: SELECT hangi sütunlar, FROM hangi tablo, WHERE hangi kayıtlar, GROUP BY nasıl gruplanacak, ORDER BY nasıl sıralanacak, LIMIT kaç kayıt. Bu yapıyı bir kez oturttuğunuzda karmaşık sorgular da aynı mantığın uzantısı olarak görünür.

#order by#select#sql#veritabanı#where

التعليقات

لا توجد تعليقات بعد. كن أول من يعلّق.

اكتب تعليقاً

تُنشر التعليقات بعد موافقة المشرف.