SQL Nedir? Veritabanı Dili Basitçe Anlatıldı
SQL (Structured Query Language, “S-Q-L” ya da “sequel” diye okunur), ilişkisel veritabanlarıyla çalışmak için kullanılan standart dildir — verileri satır ve sütunlardan oluşan tablolarda saklayan türden; örneğin Postgres, MySQL, SQLite ve SQL Server. Verilerinize soru sormak (“bu ay hangi müşteriler randevu aldı?”) ve kayıt eklemek, değiştirmek ya da kaldırmak için kullanırsınız. 1970’lerden beri vardır, uluslararası bir standarttır ve dünyadaki uygulamaların büyük bir kısmını çalıştırır.
Yapay zekayla inşa ederken SQL neden önemlidir
Bir yapay zeka uygulama inşa edicisinden “siparişleri kaydet” ya da “yaklaşan randevuların listesini göster” dediğinizde, bir şeyin veritabanıyla konuşması gerekir — ve çoğu uygulamada bu, doğrudan yazılmış ya da bir ORM tarafından üretilmiş SQL’dir.
Kendiniz SQL yazmak zorunda değilsiniz, ama biraz anlamak karşılığını verir:
- Kendi verinizi kontrol edebilirsiniz. Kısa bir sorgu, “bu hafta kaç kayıt aldık?” sorusuna yeni bir ekran yapmaktan daha hızlı cevap verir.
- Daha iyi raporlar isteyebilirsiniz. “Geliri aya ve hizmete göre grupla” bir SQL fikridir. Bunu bilmek isteğinizi daha net yapar.
- Tehlikeli değişiklikleri fark edebilirsiniz.
WHEREmaddesi olmayan birDELETEya daUPDATEher satırı etkiler. Çalışmadan önce yakalamaya değer. - Verileriniz kilitli değildir. SQL ortak bir standarttır; bu yüzden bir SQL veritabanındaki veriler birçok araç tarafından taşınabilir ve okunabilir.
Günlük hayattan bir benzetme
Çok düzenli bir kütüphane ve yalnızca kesin, basit bir dil konuşan bir kütüphaneci düşünün.
Rafları kendiniz gezmezsiniz. Kütüphanecinin eline bir kart verirsiniz: “Bu yazarın 2010’dan sonra yayımlanan tüm kitaplarını, en yenisi önce olacak şekilde bul.” Kütüphaneci binayı baştan sona bilir ve tam olarak bu kitapları, bu sırayla getirir.
SQL, kartta yazan dildir. Bulmanın nasıl yapılacağını değil, ne istediğinizi söylersiniz — en hızlı yolu veritabanı kendisi bulur.
SQL nasıl çalışır: tablolar, satırlar ve sütunlar
İlişkisel bir veritabanı, verileri tablolarda tutar. Her tablo bir tür şeyi barındırır, her satır bir kayıttır ve her sütun bir bilgi parçasıdır:
customers
| id | name | city | |
|---|---|---|---|
| 1 | Lena Ortiz | lena@example.com | Lisbon |
| 2 | Sam Patel | sam@example.com | Leeds |
orders
| id | customer_id | total | placed_at |
|---|---|---|---|
| 101 | 1 | 42.00 | 2026-09-20 |
| 102 | 2 | 18.50 | 2026-09-22 |
| 103 | 1 | 25.00 | 2026-09-27 |
customer_id sütunu her siparişi bir müşteriye bağlar. Bu bağlantı, veritabanını “ilişkisel” yapan şeydir.
Uygulamalı örnek: gerçek soruları yanıtlamak
1. Veri okumak — “Lisbon’daki tüm müşterileri göster”:
SELECT name, email
FROM customers
WHERE city = 'Lisbon';
2. Sıralamak ve sınırlamak — “en son beş sipariş”:
SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;
3. Tabloları birleştirmek — “her sipariş ve müşterinin adı”:
SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;
4. Özetlemek — “müşteri başına toplam harcama”:
SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;
Bu örnek verilerle sorgu, Lena Ortiz için 67.00 ve Sam Patel için 18.50 döndürür.
5. Veriyi değiştirmek:
INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');
UPDATE customers SET city = 'Porto' WHERE id = 1;
DELETE FROM orders WHERE id = 102;
Bunlar neredeyse her uygulamanın dört temel eylemine karşılık gelir — oluştur, oku, güncelle ve sil; CRUD olarak bilinir.
Bir uyarı: WHERE maddesi olmayan UPDATE customers SET city = 'Porto'; her müşteriyi değiştirir. Bir değişikliği çalıştırmadan önce mutlaka WHERE kısmını kontrol edin.
SQL’in başlıca parçaları
| Komut | Ne yapar |
|---|---|
SELECT | Veri okur |
INSERT | Yeni satırlar ekler |
UPDATE | Mevcut satırları değiştirir |
DELETE | Satırları kaldırır |
CREATE TABLE / ALTER TABLE | Bir tablonun yapısını oluşturur ya da değiştirir |
WHERE | Hangi satırların etkileneceğini filtreler |
JOIN | İlişkili tabloları birleştirir |
GROUP BY | Satırları gruplara özetler; COUNT, SUM, AVG ile birlikte |
ORDER BY / LIMIT | Sonuçları sıralar ve sınırlar |
SQL standarttır, ama her veritabanı lehçe (dialect) adı verilen kendi ek özelliklerini ekler. Postgres, MySQL ve SQLite yukarıdaki örnekleri anlar; tarih fonksiyonları gibi ayrıntılar ise biraz farklılaşır.
Önemli terimler
| Terim | Anlamı |
|---|---|
| Sorgu (query) | Bir SQL ifadesi; özellikle veri okuyan olan. |
| Tablo / satır / sütun | Bir tür şey / bir kayıt / bir özellik. |
| Birincil anahtar (primary key) | Her satırı benzersiz biçimde tanımlayan sütun; genellikle id. |
| Yabancı anahtar (foreign key) | Başka bir tablodaki bir satıra işaret eden sütun, örneğin customer_id. |
| İndeks (index) | Bir sütunda aramayı çok daha hızlı yapan arama yapısı. |
| Şema (schema) | Tüm tabloların ve sütunların yapısı. |
| İşlem (transaction) | Birlikte başarılı olan ya da başarısız olan değişiklikler grubu. |
| SQL injection | Kullanıcı girdisinin gizlice bir sorguya eklendiği saldırı. Parametreli sorgularla önlenir. |
Yaygın yanlış anlamalar
- “SQL bir veritabanıdır.” SQL dildir; Postgres, MySQL ve SQLite bu dili konuşan veritabanlarıdır.
- “SQL eski olduğu için güncel değildir.” Olgundur, modası geçmiş değildir. Modern veritabanları ve veri araçları hâlâ kullanır, yeni olanlar çoğu zaman SQL desteği ekler.
- “Yalnızca geliştiriciler SQL kullanabilir.” Analistler, pazarlamacılar ve kurucular basit sorguları her gün kullanır.
- “SQL esnek verileri işleyemez.” Birçok SQL veritabanı JSON da saklar. Örneğin Postgres’in
jsonbtürü vardır. Bkz. SQL ve NoSQL. - “Yapay zekanın canlı veritabanında her SQL’i çalıştırmasında sorun yok.” Okumalar düşük risklidir; canlı veride yapılan değişiklikler ve silmeler ise bir yedek ve ikinci bir bakış gerektirir. Bkz. uygulama veritabanınızı nasıl yedeklersiniz.
Yapay zeka inşa edicinizden ne istemelisiniz
- “Veritabanımdaki tabloları ve her sütunun ne anlama geldiğini göster.”
- “Yalnızca okuma yapan bir sorgu yaz: son 30 günde günlük kaç yeni kayıt var?”
- “Herhangi bir UPDATE ya da DELETE çalıştırmadan önce sorguyu ve kaç satırı etkileyeceğini göster.”
- “En çok filtrelediğimiz ve sıraladığımız sütunlara indeks ekle.”
- “Kullanıcı girdisi kullanan her sorgunun parametreli olduğundan emin ol.”
- “Sipariş ve ödeme güncellemelerini bir işlemin (transaction) içine al ki yarım kalarak başarılı olamasınlar.”
Mythex’te SQL
Uygulamanızın veri saklaması gerektiğinde Mythex projeye özel bir Postgres veritabanı ekler — sohbette sorarak, örneğin “bekleme listesi e-postalarını bir veritabanına kaydet” diyerek ya da /database komutunu kullanarak (Veritabanı). Agent tabloları oluşturur ve sorguları yazar; Ask modunda herhangi bir sorguyu sade bir dille açıklamasını da isteyebilirsiniz. Veritabanının kendisi hakkında daha fazlası için Postgres nedir rehberini okuyun.
Sorular
SQL basitçe ne demek?
SQL (Structured Query Language), ilişkisel veritabanlarıyla çalışmak için kullanılan standart dildir. Verilerinize “bu hafta hangi siparişler verildi” gibi sorular sormak ve kayıt eklemek, değiştirmek ya da silmek için kullanırsınız.
SQL nasıl telaffuz edilir?
“S-Q-L” (harfleri tek tek okuyarak) ve “sequel” telaffuzlarının ikisi de yaygın ve doğrudur. Dil başlangıçta SEQUEL adıyla anıldığı için ikinci telaffuz oradan gelir.
SQL bir programlama dili mi?
SQL, verileri yönetmek için tasarlanmış bir sorgu dilidir. Hangi sonucu istediğinizi tarif edersiniz, veritabanı da bu sonuca nasıl ulaşacağını kendisi çözer. Tek başına tüm uygulamaları inşa etmek için kullanılmaz, ama ilişkisel veritabanı kullanan neredeyse her uygulamanın bir parçasıdır.
SQL öğrenmek zor mu?
Temelleri anlaşılır düzeydedir: SELECT, WHERE, ORDER BY, INSERT, UPDATE ve DELETE gündelik ihtiyaçların çoğunu karşılar ve neredeyse İngilizce gibi okunur. Join’ler, gruplama ve performans ayarlaması ustalaşmak için daha uzun sürer.
Yapay zeka ile uygulama inşa etmek için SQL bilmem gerekir mi?
Hayır. Bir yapay zeka inşa edici sizin yerinize SQL ya da veritabanı kodunu yazar. Biraz bilmek, verilerinizi kontrol etmenize, rapor istemenize ve riskli değişiklikler olmadan önce fark etmenize yardımcı olur.