- Konu sahibi
- #1
SQL öğrenmeye başlamak için önce temel sorgu mantığını, ardından tablo tasarımını ve veri değiştirme işlemlerini öğrenin. Bunun için bilgisayarınıza bir SQL veritabanı sistemi veya tarayıcıda çalışan bir SQL ortamı kurup küçük bir örnek tablo oluşturun; sonra
SQL, ilişkisel veritabanlarında bulunan verileri tanımlamak, eklemek, değiştirmek, silmek ve sorgulamak için kullanılan bir dildir. MySQL, PostgreSQL, Microsoft SQL Server ve SQLite gibi sistemler SQL kullanır; ancak bazı komutların yazımı ve sundukları özellikler ürüne göre değişebilir.
Başlangıç için ileri düzey programlama bilmeniz gerekmez. Değişken, koşul ve döngü mantığını bilmek yararlı olsa da SQL öğrenirken asıl önemli olan verinin tablolar, sütunlar ve satırlar hâlinde nasıl düzenlendiğini anlamaktır.
Yeni başlayanlar için iki yol uygundur: Bilgisayara SQLite gibi hafif bir veritabanı kurmak veya MySQL ya da PostgreSQL gibi bir sistemi yerel ortamda çalıştırmak. İlk denemelerde önemli olan ürün seçimi değil, komutları çalıştırabileceğiniz ve sonucu görebileceğiniz bir ortam kullanmanızdır.
Çalışma ortamınızda bir sorgu penceresi açın ve önce basit bir tablo oluşturun. Aşağıdaki örnek varsayımsaldır;
Bu komut tabloyu oluşturur. Henüz tabloya veri eklemediğiniz için başarılı çalışması, sorgu sonucunda kayıt göreceğiniz anlamına gelmez. Tablo yapısını oluşturduktan sonra örnek kayıt ekleyin:
Eklemeyi yaptıktan sonra işlem başarılı görünse bile sonucu ayrıca sorgulayın. Böylece komutun yalnızca hata vermediğini değil, beklediğiniz veriyi oluşturduğunu da kontrol edersiniz.
SQL başlangıcında en sık kullanacağınız komut
Buradaki yıldız bütün sütunları ister. Öğrenme aşamasında kullanışlıdır; uygulama kodunda ise ihtiyaç duyduğunuz sütunları açıkça yazmak daha anlaşılırdır:
Belirli koşullara uyan kayıtları
Bu sorgunun sonucu Ayşe ve Zeynep kayıtlarını döndürür. Bu sonuç, yalnızca mevcut veriler içinde bölüm değeri tam olarak
Sonuçların sırasını belirlemek için
SQL komutlarını öğrenirken veri okuma ile veri değiştirmeyi karıştırmayın. Temel komutlar şu amaçlara hizmet eder:
Örneğin Mert'in puanını değiştirmek için:
Ardından değişikliği kontrol edin:
Temel filtreleme ve sıralama anlaşılmadan karmaşık sorgulara geçmek yerine önce toplam, ortalama ve kayıt sayısı gibi toplama işlemlerini öğrenin:
Bu sorgu her bölüm için ayrı ortalama üretir.
Daha sonra tablolar arasındaki ilişkileri öğrenin. Örneğin öğrencilerin bölüm bilgilerini ayrı bir tabloda tutmak, aynı bölüm adını her satırda tekrar etmekten daha düzenli olabilir. Bu aşamada birincil anahtar, yabancı anahtar ve
Konuları şu sırayla çalışmanız, her adımın bir öncekine dayanmasını sağlar:
SQL öğrenirken yazım hatası ile mantık hatasını ayırın. Sözdizimi hatasında veritabanı komutu çalıştırmaz ve genellikle hatanın bulunduğu bölgeyi bildirir. Sorgu çalışıp boş sonuç döndürüyorsa bu, komutun doğru soruyu sorduğunu kanıtlamaz; değer yazımı, büyük-küçük harf davranışı,
Başlangıçta gerçek veriler üzerinde deneme yapmayın. Kopya bir veritabanı veya küçük bir örnek veri kümesi kullanın; özellikle
SELECT, WHERE, ORDER BY ve GROUP BY komutlarını kullanarak veriyi sorgulayın. İlk hedefiniz, bir tablodan doğru kayıtları seçebilmek ve sorgu sonucunun neden öyle oluştuğunu açıklayabilmek olmalıdır.SQL öğrenmeye başlamadan önce bilinmesi gerekenler
SQL, ilişkisel veritabanlarında bulunan verileri tanımlamak, eklemek, değiştirmek, silmek ve sorgulamak için kullanılan bir dildir. MySQL, PostgreSQL, Microsoft SQL Server ve SQLite gibi sistemler SQL kullanır; ancak bazı komutların yazımı ve sundukları özellikler ürüne göre değişebilir.
Başlangıç için ileri düzey programlama bilmeniz gerekmez. Değişken, koşul ve döngü mantığını bilmek yararlı olsa da SQL öğrenirken asıl önemli olan verinin tablolar, sütunlar ve satırlar hâlinde nasıl düzenlendiğini anlamaktır.
İlk çalışma ortamını hazırlayın
Yeni başlayanlar için iki yol uygundur: Bilgisayara SQLite gibi hafif bir veritabanı kurmak veya MySQL ya da PostgreSQL gibi bir sistemi yerel ortamda çalıştırmak. İlk denemelerde önemli olan ürün seçimi değil, komutları çalıştırabileceğiniz ve sonucu görebileceğiniz bir ortam kullanmanızdır.
Çalışma ortamınızda bir sorgu penceresi açın ve önce basit bir tablo oluşturun. Aşağıdaki örnek varsayımsaldır;
ogrenciler adlı tabloda öğrenci adı, bölüm ve puan bilgisi tutulur.
SQL:
CREATE TABLE ogrenciler (
id INTEGER PRIMARY KEY,
ad VARCHAR(50) NOT NULL,
bolum VARCHAR(50),
puan INTEGER
);
Bu komut tabloyu oluşturur. Henüz tabloya veri eklemediğiniz için başarılı çalışması, sorgu sonucunda kayıt göreceğiniz anlamına gelmez. Tablo yapısını oluşturduktan sonra örnek kayıt ekleyin:
SQL:
INSERT INTO ogrenciler (id, ad, bolum, puan)
VALUES
(1, 'Ayşe', 'Bilgisayar', 85),
(2, 'Mert', 'Elektrik', 72),
(3, 'Zeynep', 'Bilgisayar', 93);
Eklemeyi yaptıktan sonra işlem başarılı görünse bile sonucu ayrıca sorgulayın. Böylece komutun yalnızca hata vermediğini değil, beklediğiniz veriyi oluşturduğunu da kontrol edersiniz.
Önce veri okuma komutlarını öğrenin
SQL başlangıcında en sık kullanacağınız komut
SELECT komutudur. Tablodaki bütün sütunları görmek için:
SQL:
SELECT *
FROM ogrenciler;
Buradaki yıldız bütün sütunları ister. Öğrenme aşamasında kullanışlıdır; uygulama kodunda ise ihtiyaç duyduğunuz sütunları açıkça yazmak daha anlaşılırdır:
SQL:
SELECT ad, bolum, puan
FROM ogrenciler;
Belirli koşullara uyan kayıtları
WHERE ile seçersiniz:
SQL:
SELECT ad, puan
FROM ogrenciler
WHERE bolum = 'Bilgisayar' AND puan >= 80;
Bu sorgunun sonucu Ayşe ve Zeynep kayıtlarını döndürür. Bu sonuç, yalnızca mevcut veriler içinde bölüm değeri tam olarak
Bilgisayar olan ve puanı 80 veya üzeri kayıtların bulunduğunu gösterir; başka bölümlerde yüksek puanlı öğrenci bulunmadığını kanıtlamaz.Sonuçların sırasını belirlemek için
ORDER BY kullanın:
SQL:
SELECT ad, puan
FROM ogrenciler
ORDER BY puan DESC;
DESC büyükten küçüğe, ASC küçükten büyüğe sıralar. Sıralama yazmazsanız veritabanının kayıtları eklenme sırasıyla döndüreceğini varsaymayın; belirli bir sıra gerekiyorsa bunu sorguda açıkça belirtin.Veri ekleme, değiştirme ve silme işlemlerini ayırın
SQL komutlarını öğrenirken veri okuma ile veri değiştirmeyi karıştırmayın. Temel komutlar şu amaçlara hizmet eder:
| Komut | Görevi | Başlangıçta dikkat edilecek nokta |
|---|---|---|
| SELECT | Veri okur | Sonucu WHERE ve ORDER BY ile sınırlandırın |
| INSERT | Yeni kayıt ekler | Sütun ve değer sırasını kontrol edin |
| UPDATE | Mevcut kaydı değiştirir | WHERE olmadan çalıştırmadan önce mutlaka kontrol edin |
| DELETE | Kayıt siler | Silinecek satırları önce SELECT ile doğrulayın |
SQL:
UPDATE ogrenciler
SET puan = 78
WHERE id = 2;
Ardından değişikliği kontrol edin:
SQL:
SELECT *
FROM ogrenciler
WHERE id = 2;
WHERE koşulunu unutursanız UPDATE veya DELETE komutu birden fazla kaydı etkileyebilir. Bu nedenle özellikle gerçek veritabanlarında, değiştirme veya silme komutundan önce aynı WHERE koşulunu kullanan bir SELECT çalıştırın. Beklenen satırlar dönüyorsa işlemi uygulayın; beklenenden fazla satır dönüyorsa koşulu daraltın.Gruplama ve tablo ilişkilerine geçin
Temel filtreleme ve sıralama anlaşılmadan karmaşık sorgulara geçmek yerine önce toplam, ortalama ve kayıt sayısı gibi toplama işlemlerini öğrenin:
SQL:
SELECT bolum, AVG(puan) AS ortalama_puan
FROM ogrenciler
GROUP BY bolum;
Bu sorgu her bölüm için ayrı ortalama üretir.
GROUP BY kullanıldığında seçilen sütunların gruplama mantığıyla uyumlu olması gerekir; aksi hâlde veritabanı hata verebilir veya ürüne göre farklı davranabilir.Daha sonra tablolar arasındaki ilişkileri öğrenin. Örneğin öğrencilerin bölüm bilgilerini ayrı bir tabloda tutmak, aynı bölüm adını her satırda tekrar etmekten daha düzenli olabilir. Bu aşamada birincil anahtar, yabancı anahtar ve
JOIN kavramlarını öğrenin. JOIN, ilişkili tablolardaki satırları ortak sütunlar üzerinden birleştirir; ancak ilişki kurulmadan yapılan birleştirme beklenenden çok daha fazla satır üretebilir.Başlangıç çalışma sırası
Konuları şu sırayla çalışmanız, her adımın bir öncekine dayanmasını sağlar:
- Tablo, satır, sütun ve veri türlerini öğrenin.
CREATE TABLEile küçük bir tablo oluşturun.INSERTile örnek veriler ekleyin.SELECTile sütun seçmeyi öğrenin.WHEREile koşullu filtreleme yapın.ORDER BYveLIMITile sonuçları düzenleyin.UPDATEveDELETEkomutlarını kontrollü biçimde kullanın.COUNT,SUM,AVGveGROUP BYile özet sonuçlar üretin.- Birincil anahtar, yabancı anahtar ve
JOINile birden fazla tabloyu ilişkilendirin. - Daha sonra alt sorgular, indeksler, işlemler ve sorgu performansına geçin.
SQL öğrenirken yazım hatası ile mantık hatasını ayırın. Sözdizimi hatasında veritabanı komutu çalıştırmaz ve genellikle hatanın bulunduğu bölgeyi bildirir. Sorgu çalışıp boş sonuç döndürüyorsa bu, komutun doğru soruyu sorduğunu kanıtlamaz; değer yazımı, büyük-küçük harf davranışı,
NULL kullanımı veya yanlış koşul kontrol edilmelidir. Beklenenden fazla kayıt dönüyorsa önce JOIN koşullarını ve filtrelerin hangi aşamada uygulandığını inceleyin.Başlangıçta gerçek veriler üzerinde deneme yapmayın. Kopya bir veritabanı veya küçük bir örnek veri kümesi kullanın; özellikle
UPDATE ve DELETE öncesinde etkilenecek satırları SELECT ile doğrulayın. Bu çalışma düzeniyle önce tek tablo üzerinde güvenilir sorgular yazabilir, ardından ilişkili tabloları ve gerçek uygulamalardaki veri işlemlerini daha güvenli biçimde öğrenebilirsiniz.