İçeriğe geç

SQL · 1/8

Tablodan veri seçme: SELECT

İlişkisel bir tablodan belirli sütunları veya tüm satırları SELECT sorgusuyla getirmek.

Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.

Bu sayfada · 9 başlık

Başlamadan önce

Ön bilgi gerekmiyor. Kodu yazacağın alan ile sonucu okuyacağın alanı ayırt ederek başlayacağız.

Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

SQL · Tablodan veri seçme: SELECT — videolu atölye: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.

Videoyla adım adım izle

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Tablodan veri seçme: SELECT

İlişkisel bir tablodan belirli sütunları veya tüm satırları SELECT sorgusuyla getirmek.

Kavramı kur

SQL bir programlama dili gibi satır satır çalışan komutlardan ziyade veritabanına ne istediğini söyleyen bildirimsel (declarative) bir sorgu dilidir. Tablolar satır ve sütunlardan oluşur. SELECT ifadesi hangi sütunları görmek istediğini, FROM ifadesi ise bu verinin hangi tabloda bulunduğunu belirtir.

Neden böyle çalışıyor?

Tüm sütunları tek seferde çekmek için yıldız (*) kullanılır; ancak büyük ve üretim ortamındaki veritabanlarında ihtiyacın olan sütunları tek tek yazmak performansı ve ağ trafiğini korur. SQL anahtar sözcüklerini büyük harfle yazma geleneği (SELECT, FROM) kodun okunabilirliğini artırır; küçük harfle yazsan da çalışır.

Çalışma sırası

Veritabanı motoru sorguyu aldığında bir çalıştırma planı (execution plan) çıkarır ve sonucu satırlar halinde döner. SELECT sonucunda tablonun orijinal verisi değişmez; yalnızca istediğin görünüm sana sunulur.

İkinci örnek · 1

SELECT anahtar sözcüğü sorgunun veri çekme işlemi olduğunu bildirir. Kodun tamamı yazılı derste bulunur.

Kod

SELECT ad, bolum
FROM calisanlar;

Beklenen sonucu oku

Motor tablodaki her satırı sırayla tarar ve belirtilen sütunları içeren bir sonuç kümesi üretir.

Beklenen çıktı: ad | bolum Ahmet | Yazılım Ayşe | Tasarım Mehmet | Pazarlama

Bir değeri sen değiştir

calisanlar tablosundan tüm sütunları (*) getiren sorguyu yaz. Yalnızca ad ve maas sütunlarını getirecek şekilde sorguyu düzenle.

Hata nereden gelir?

Sütun isimleri arasına virgül koymayı unutmak sözdizimi hatası verir; sütunları virgülle ayır.

Kendi çözümünü kur

Tablo adını musteriler yaparak ad ve sehir sütunlarını seçen bir sorgu kur. SELECT sonrasına getirmek istediğin sütun adlarını aralarına virgül koyarak yaz. Hedef tabloyu FROM sonrasında belirt.

Çözüm varyasyonu · 1

Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.

Kod

SELECT ad, maas
FROM calisanlar;

Kendini kontrol et

SELECT * neden üretim ortamlarında önerilmez? Yanıt: İhtiyaç duyulmayan fazla sütunları taşımak gereksiz ağ trafiği ve bellek yükü oluşturur; sütunları açıkça belirtmek daha güvenli ve hızlıdır.

Beklenen çıktı: ad | maas Ahmet | 65000 Ayşe | 52000 Mehmet | 48000

Konu anlatımı

SQL bir programlama dili gibi satır satır çalışan komutlardan ziyade veritabanına ne istediğini söyleyen bildirimsel (declarative) bir sorgu dilidir. Tablolar satır ve sütunlardan oluşur. SELECT ifadesi hangi sütunları görmek istediğini, FROM ifadesi ise bu verinin hangi tabloda bulunduğunu belirtir.

Tüm sütunları tek seferde çekmek için yıldız (*) kullanılır; ancak büyük ve üretim ortamındaki veritabanlarında ihtiyacın olan sütunları tek tek yazmak performansı ve ağ trafiğini korur. SQL anahtar sözcüklerini büyük harfle yazma geleneği (SELECT, FROM) kodun okunabilirliğini artırır; küçük harfle yazsan da çalışır.

Veritabanı motoru sorguyu aldığında bir çalıştırma planı (execution plan) çıkarır ve sonucu satırlar halinde döner. SELECT sonucunda tablonun orijinal verisi değişmez; yalnızca istediğin görünüm sana sunulur.

İlk örneği oku ve dene

1

Tablodan veri seçme: SELECT

SELECT komutu hangi sütunları istediğini, FROM ise hangi tablodan okuyacağını belirtir. * işareti tablodaki tüm sütunları getirir.

SQL
SELECT ad, bolum
FROM calisanlar;

▶ Sonuç

ad | bolum
Ahmet | Yazılım
Ayşe | Tasarım

Adım adım neden böyle çalışıyor?

  1. SELECT anahtar sözcüğü sorgunun veri çekme işlemi olduğunu bildirir.
  2. ad ve bolum sütunları sonuç tablosuna dahil edilecek alanları belirler.
  3. FROM calisanlar hedef tablonun calisanlar tablosu olduğunu gösterir.
  4. Motor tablodaki her satırı sırayla tarar ve belirtilen sütunları içeren bir sonuç kümesi üretir.
101

İkinci çözümlü örnek

İlişkisel bir tablodan belirli sütunları veya tüm satırları SELECT sorgusuyla getirmek.

SQL
SELECT ad, bolum
FROM calisanlar;

▶ Sonuç

ad | bolum
Ahmet | Yazılım
Ayşe | Tasarım
Mehmet | Pazarlama

Kolaydan zora sen dene

  1. calisanlar tablosundan tüm sütunları (*) getiren sorguyu yaz.
  2. Yalnızca ad ve maas sütunlarını getirecek şekilde sorguyu düzenle.
  3. Tablo adını musteriler yaparak ad ve sehir sütunlarını seçen bir sorgu kur.
İpucunu aç

SELECT sonrasına getirmek istediğin sütun adlarını aralarına virgül koyarak yaz. Hedef tabloyu FROM sonrasında belirt.

Üç görevin açıklamalı çözümünü oku
  1. calisanlar tablosundan tüm sütunları çekmek için SELECT * FROM calisanlar; kullanılır.
  2. Yalnızca ad ve maas sütunlarını seçmek için SELECT ad, maas FROM calisanlar; yaz.
  3. musteriler tablosundan iki sütunu seçmek için SELECT ad, sehir FROM musteriler; yazılır.
Bir çözüm varyasyonu gör
201

Çözüm varyasyonu

Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.

SQL
SELECT ad, maas
FROM calisanlar;

▶ Sonuç

ad | maas
Ahmet | 65000
Ayşe | 52000
Mehmet | 48000

Yaygın hata ve çözümü

  1. Sütun isimleri arasına virgül koymayı unutmak sözdizimi hatası verir; sütunları virgülle ayır.
  2. FROM sözcüğünü SELECT ile karıştırmak veya tablo adını yanlış yazmak hataya yol açar.

Kendini değerlendir

Tablodaki tüm sütunları tek seferde seçmek için hangi karakter kullanılır?

Ezberlemeden açıklayabiliyor musun?

SELECT * neden üretim ortamlarında önerilmez?

Açıklamalı yanıt

İhtiyaç duyulmayan fazla sütunları taşımak gereksiz ağ trafiği ve bellek yükü oluşturur; sütunları açıkça belirtmek daha güvenli ve hızlıdır.

Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.

Kaynak ve çalışma ortamı

Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.

Resmî dil belgeleri
Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.