Sunucu ve istemci
Veritabanı bir sunucu programıdır (SQL Server, PostgreSQL, MySQL, Oracle). Sorguyu ise bir istemci araçta yazarsın; araç sorguyu sunucuya gönderir, sonucu tablo olarak gösterir. Bu uygulamada istemci de veritabanı da tarayıcının içinde çalışır. İş hayatında ise genellikle şu araçlardan birini kullanırsın:
| SQL türü | Resmi araç | Not |
|---|---|---|
| SQL Server | SQL Server Management Studio (SSMS) | Windows'ta en yaygın araç. VS Code için resmi MSSQL eklentisi de var. |
| PostgreSQL | pgAdmin, psql (komut satırı) | psql, sunucu yönetiminde çok kullanılır. |
| MySQL | MySQL Workbench | Modelleme (ER diyagramı) özellikleri de vardır. |
| Oracle | SQL Developer, SQL*Plus | PL/SQL geliştirme için. |
| SQLite | DB Browser for SQLite | Tek dosyalık veritabanlarını açar. |
| Hepsi | DBeaver, DataGrip, VS Code | Birden çok SQL türüyle çalışanlar için tek araç. |
Kendi bilgisayarında denemek istersenSQL Server'ın Developer ve Express sürümleri, PostgreSQL ve MySQL'in topluluk sürümleri ücretsizdir. Docker biliyorsan tek komutla bir veritabanı sunucusu başlatabilirsin.
Sorgu nasıl çalıştırılır?
- SSMS: F5 veya Ctrl+E. Bir bölümü seçip F5'e basarsan yalnızca seçili kısım çalışır; bu, uzun betiklerde en çok kullanılan alışkanlıktır.
- SSMS'te GO: Betiği “batch”lere böler. GO bir SQL komutu değil, aracın ayırıcısıdır.
- pgAdmin / DBeaver: Ctrl+Enter (imlecin bulunduğu ifade) ya da F5.
- Bu uygulama: Ctrl+Enter (Mac'te ⌘+Enter) sorguyu kontrol eder.
SQL komut grupları
SQL komutları ne iş yaptıklarına göre beş gruba ayrılır. İş ilanlarında ve mülakatlarda bu kısaltmalar sık geçer:
| Grup | Açılımı | Komutlar | Ne yapar? |
|---|---|---|---|
| DQL | Data Query Language | SELECT | Veriyi okur |
| DML | Data Manipulation Language | INSERT, UPDATE, DELETE, MERGE | Veriyi değiştirir |
| DDL | Data Definition Language | CREATE, ALTER, DROP, TRUNCATE | Tablo gibi nesneleri tanımlar |
| DCL | Data Control Language | GRANT, REVOKE, DENY | Yetki verir veya alır |
| TCL | Transaction Control Language | BEGIN, COMMIT, ROLLBACK, SAVEPOINT | İşlemleri yönetir |
Bazı kaynaklar DQL'i ayırmazSELECT'i DML'in içinde sayan kitaplar da var. Önemli olan ayrım şudur: veriyi mi değiştiriyorsun, yapıyı mı, yetkiyi mi?