SQL Nedir ve Nerede Çalıştırılır?

Bu derste ne yapacağız?

Bir önceki derste veritabanının ne olduğunu, tabloların satır ve sütunlardan oluştuğunu öğrendik. Bu derste ise o tablolara nasıl konuştuğumuzu, yani SQL dilini tanıyacağız. SQL'in ne işe yaradığını, günlük hayattan bir benzetmeyle kavrayacağız ve sorgularımızı deneyebileceğimiz basit, ücretsiz bir ortam kuracağız. Ön koşul olarak yalnızca önceki dersteki "tablo, satır, sütun" kavramlarını hatırlamanız yeterli; hiçbir kurulum deneyimine ihtiyacınız yok.

Kavram

SQL (Structured Query Language, yani Yapılandırılmış Sorgu Dili), veritabanlarıyla konuşmak için kullandığımız bir dildir. Tıpkı bir kütüphanede görevliye "1990 sonrası basılmış, yazarı Türk olan romanları getirir misiniz?" dediğinizde görevlinin rafları tarayıp size ilgili kitapları getirmesi gibi, biz de SQL ile veritabanına "şu koşullara uyan kayıtları bana getir" diye sorgu yazarız. SQL bir programlama dili gibi karmaşık akışlar kurmaz; daha çok "ne istediğinizi" tarif eden bir sorgu dilidir. Örneğin bir mağaza veritabanında "stokta kalan sayısı 10'un altında olan ürünleri listele" demek istediğinizde, bunu SQL cümleleriyle yazarsınız ve veritabanı motoru (yani veritabanını yöneten yazılım) bu isteği işleyip sonucu size tablo hâlinde döndürür.

SQL'i nerede çalıştırırız? SQL, tek başına bir program değildir; bir veritabanı yönetim sistemi (kısaca VYS) üzerinde çalışır. Yaygın VYS örnekleri arasında SQLite, MySQL, PostgreSQL ve Microsoft SQL Server sayılabilir. Yeni başlayanlar için en kolay seçenek genellikle SQLite'tır, çünkü kurulumu son derece basittir; hatta tek bir dosya olarak çalışır, sunucu kurmanıza gerek kalmaz. Bu derste SQLite tabanlı basit bir ortam kuracağız.

Adım adım uygulama

  • 1. adım: Bilgisayarınızda internet tarayıcınızı açın (Chrome, Edge veya Firefox fark etmez).
  • 2. adım: Tarayıcı tabanlı, kurulum gerektirmeyen bir SQL alıştırma sitesine gidin. Bu tür sitelerde genellikle sayfanın ortasında hazır bir örnek veritabanı ve altında bir metin kutusu bulunur; metin kutusuna SQL yazıp bir Çalıştır (Run) düğmesine bastığınızda sonucu hemen görürsünüz. Arayüz kullandığınız siteye göre değişebilir; önemli olan "sorgu yazma kutusu" ve "çalıştır düğmesi" ikilisini bulmaktır.
  • 3. adım: Eğer tarayıcı yerine bilgisayarınıza kalıcı bir araç kurmak isterseniz, "DB Browser for SQLite" adlı ücretsiz masaüstü programını indirip kurabilirsiniz. Kurulumdan sonra programı açın, üst menüden Execute SQL (SQL Çalıştır) sekmesine tıklayın; burada da bir yazı kutusu ve bir Çalıştır düğmesi göreceksiniz.
  • 4. adım: Hangi ortamı seçerseniz seçin, sorgu kutusuna şu basit cümleyi yazın: SELECT 1;
  • 5. adım: Çalıştır düğmesine basın. Ekranda tek bir sütun ve tek bir satırda "1" değerini gördüyseniz, SQL motorunuz çalışıyor ve sizi dinliyor demektir. Bu, arabanın kontağını çevirip motorun çalıştığını duymak gibidir; henüz bir yere gitmedik ama sistemin hazır olduğunu doğruladık.
  • 6. adım: Şimdi gerçek bir tabloyla küçük bir deneme yapalım. Çoğu alıştırma ortamında hazır örnek tablolar (örneğin "ogrenciler" veya "urunler" gibi) bulunur. Eğer sizin ortamınızda böyle bir tablo varsa, sorgu kutusuna şunu yazıp çalıştırın: SELECT * FROM ogrenciler;
  • 7. adım: Bu satırı çalıştırdığınızda, "ogrenciler" tablosundaki tüm sütunları ve tüm satırları ekranda bir liste hâlinde göreceksiniz. Buradaki yıldız işareti (*) "bütün sütunları getir" anlamına gelir; SELECT ise "seç ve getir" demektir. FROM ise "hangi tablodan" sorusunun cevabıdır.
  • 8. adım: Kendi ortamınızdaki tablo adı farklıysa (örneğin "musteriler" veya "kitaplar"), yukarıdaki sorguda "ogrenciler" yerine kendi tablo adınızı yazıp tekrar deneyin.

Sık karşılaşılan sorunlar

Karşılaşılan DurumOlası Neden ve Çözüm
Çalıştır düğmesine bastım ama hiçbir şey olmadıSorgu kutusunun boş olmadığından ve imlecin kutunun içinde olduğundan emin olun; bazı ortamlarda önce kutuya tıklamanız, sonra yazmanız gerekir.
"no such table" (böyle bir tablo yok) hatası aldımTablo adını yanlış yazmış olabilirsiniz. Ortamınızdaki hazır tablo listesine bakıp doğru adı kopyalayarak yazın; büyük-küçük harf bazı sistemlerde önemli olabilir.
Sorgunun sonunda noktalı virgül unuttum, hata aldımSQL cümlelerinin sonuna noktalı virgül (;) koymak iyi bir alışkanlıktır; birçok ortam bunu zorunlu tutar. Cümlenizin sonuna ; ekleyip tekrar deneyin.
SELECT * FROM ... yazdım ama "syntax error" (sözdizimi hatası) çıktıKelimeler arasında fazladan boşluk, Türkçe karakter (ç, ş, ğ gibi) veya yanlış yazım olabilir; SQL anahtar kelimelerini (SELECT, FROM gibi) İngilizce ve doğru yazdığınızdan emin olun.
Hangi ortamı seçeceğime karar veremedimYeni başlıyorsanız tarayıcı tabanlı bir alıştırma sitesiyle başlamak en hızlısıdır; kurulum istemez ve hemen deneme yapmanızı sağlar. Daha kalıcı bir çalışma ortamı isterseniz DB Browser for SQLite'ı tercih edebilirsiniz.

Mini görev

Şimdi sıra sizde. Seçtiğiniz ortamda (tarayıcı tabanlı site veya DB Browser for SQLite) aşağıdaki adımları kendi başınıza tamamlayın:

  • Bir SQL çalıştırma ortamı açın (tarayıcı sitesi ya da masaüstü programı).
  • Sorgu kutusuna SELECT 1; yazıp çalıştırın ve sonucun geldiğini doğrulayın.
  • Ortamınızdaki hazır bir tablonun tüm adını ve tüm sütunlarını öğrenin (genellikle tablo listesi kenar panelde görünür).
  • O tablo için SELECT * FROM tablo_adi; şeklinde bir sorgu yazıp çalıştırın ve gelen satır sayısını sayın.
  • Gördüğünüz sonuç tablosunda kaç sütun olduğunu not edin.

Kontrol listesi: Sorgu kutusunu buldunuz mu? Çalıştır düğmesine basabildiniz mi? SELECT 1; sonucu "1" olarak geldi mi? Gerçek bir tablodan veri çekebildiniz mi? Sütun sayısını doğru saydınız mı?

Kendini sına

1) SQL açılımı nedir ve temel amacı ne?

2) Bir SQL sorgusunu çalıştırmak için nelere ihtiyacımız vardır (hangi tür yazılım gerekir)?

3) SELECT * FROM ogrenciler; sorgusundaki yıldız işareti (*) ne anlama gelir?

4) SQLite'ın yeni başlayanlar için tercih edilmesinin bir nedeni nedir?

5) Bir SQL sorgusunun sonuna neden noktalı virgül (;) koymak iyi bir alışkanlıktır?

Cevaplar

1) SQL, "Structured Query Language" (Yapılandırılmış Sorgu Dili) anlamına gelir ve temel amacı veritabanlarına sorgu göndererek istediğimiz verileri seçip getirmektir.

2) Bir veritabanı yönetim sistemine (VYS) ve o sistemin sorgu çalıştırabileceğimiz bir arayüzüne (tarayıcı tabanlı bir site veya DB Browser for SQLite gibi bir masaüstü programı) ihtiyacımız vardır.

3) Yıldız işareti (*), "tablodaki bütün sütunları getir" anlamına gelir.

4) SQLite kurulumu son derece basittir, sunucu gerektirmez ve tek bir dosya üzerinden çalışır; bu da onu öğrenmeye yeni başlayanlar için pratik bir seçenek yapar.

5) Noktalı virgül, SQL cümlesinin bittiğini veritabanı motoruna bildirir; birçok ortam bu işareti beklediğinden, eklemek hataları önler ve iyi bir alışkanlık kazandırır.

Önceki derste veritabanının temel yapı taşlarını (tablo, satır, sütun) tanımıştık; bu derste ise o yapı taşlarına SQL ile nasıl "konuşacağımızı" ve sorgularımızı nerede çalıştıracağımızı gördük. Bir sonraki derste artık gerçek bir sorgu yazmaya başlayacak ve SELECT komutuyla belirli sütunları seçmeyi öğreneceğiz.

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol