SQL dili tek tip komutlardan oluşmaz. Veritabanı şemasını tanımlayan komutlar, kayıtları değiştiren komutlar ve veri sorgulayan komutlar farklı amaçlara hizmet eder. Bu ayrım anlaşılmadan SQL yazmak, yalnızca cümleleri ezberlemek anlamına gelir.
DDL, DML ve DQL ayrımı; veritabanında neyi, hangi seviyede değiştirdiğinizi anlamayı sağlar. Böylece tablo tasarımı ile veri işlemleri ve raporlama mantığı birbirine karışmaz.
Kısa cevap: Şema tanımı, veri değişikliği ve veri sorgusunu ayırmak.
Konu özeti
| Başlık | Özet |
|---|---|
| Odak nokta | Şema tanımı, veri değişikliği ve veri sorgusunu ayırmak |
| Öğrenilecek yapılar | CREATE, ALTER, INSERT, UPDATE, DELETE ve SELECT |
| En kritik uyarı | Yapıyı değiştiren komutla veri çeken komut aynı sorumluluğu taşımaz |
DDL veritabanının iskeletini kurar
DDL yani Data Definition Language, veritabanının yapısını oluşturan komutları kapsar. CREATE, ALTER ve DROP gibi komutlar tablo, sütun ve kısıtlama düzeyinde değişiklik yapar.
Başka bir ifadeyle DDL komutları verinin kendisinden çok, verinin hangi yapı içinde saklanacağını belirler.

DML verinin kendisiyle çalışır
DML yani Data Manipulation Language, tablolardaki kayıtlar üzerinde işlem yapar. INSERT yeni satır ekler, UPDATE mevcut veriyi günceller, DELETE ise kayıtları siler.
Bu komutlar uygulama geliştirme sürecinde çok daha sık görünür; çünkü kullanıcı işlemleri çoğu zaman doğrudan veri ekleme, değiştirme ve silme senaryolarına dayanır.
INSERT INTO Urunler(Ad, Fiyat) VALUES ('Direnc', 12.50);
UPDATE Urunler
SET Fiyat = 14.00
WHERE Id = 1;
DQL veriyi görünür kılar
DQL yani Data Query Language, veriyi belirli kurallara göre filtrelemek ve raporlamak için kullanılır. Bu başlığın merkezinde SELECT bulunur. FROM, WHERE, GROUP BY ve HAVING gibi yapılar SELECT ile birlikte düşünülür.
Veri tabanının gerçek gücü çoğu zaman burada ortaya çıkar. Çünkü doğru sorgu, dağınık kayıtları anlamlı bilgiye dönüştürür.
- DDL yapıyı tanımlar veya değiştirir.
- DML kayıt ekler, günceller veya siler.
- DQL veriyi seçer ve raporlar.
- WHERE satır bazında, HAVING grup bazında filtreleme yapar.

Sık yapılan hatalar
- CREATE ile INSERT işlevini karıştırmak
- Şema değişikliğini veri güncellemesi sanmak
- SELECT komutunu yalnızca tüm tabloyu görmek için kullanmak
- WHERE ve HAVING farkını göz ardı etmek
Sık sorulan sorular
DDL ve DML neden ayrı sınıflandırılır?
Çünkü biri yapıyı, diğeri verinin kendisini değiştirir. Bu ayrım bakım ve güvenlik açısından önemlidir.
SELECT neden DQL altında değerlendirilir?
Çünkü amacı veriyi değiştirmek değil, sorgulayıp görünür kılmaktır.
UPDATE çalışırken neden WHERE önemlidir?
Çünkü hedef kayıtları sınırlandırmazsanız beklenmedik ölçekte veri değişikliği yapabilirsiniz.
İlgili aramalar
- sql ddl dml dql farkı
- create insert update select mantığı
- where ve having farkı
- sql komutları temel
- veri sorgulama dili

Bir yanıt yazın