Programlamada 10 parmak klavye önemlidir. SQL programlama dilinde kod yazmak için hızlı yazma tekniklerini kullanarak daha verimli olursunuz.
SQL ve 10 parmak klavye dilinde programlama
SQL öğrenmek ve 10 parmak klavye pratiği yapmak doğal olarak bir araya gelir. SQL sorguları parantezler, virgüller, operatörler ve tırnak işaretleriyle doludur. Küçük hatalar, örneğin yanlış tırnak ya da unutulmuş noktalı virgül, tüm sorgunun başarısız olmasına neden olabilir. SQL yazarken, hangi sözdizimi unsurlarının farklı veritabanlarında ortak, hangilerinin belirli sistemlere özgü olduğunu bilmek faydalıdır. Bu makale esas olarak PostgreSQL'e odaklanır, ancak sözdiziminin farklı olduğu yerlerde MySQL, SQLite ve SQL Server'dan da bahseder.
SQL sözdiziminin karakteristik özellikleri nelerdir?
SQL (Structured Query Language) bildirimsel bir dildir. Verilerin nasıl alınacağını adım adım tarif etmek yerine, hangi verilerin istendiğini belirtirsiniz. Hemen her ifade SELECT
, INSERT
veya UPDATE
gibi bir anahtar kelime ile başlar. Klauzların sırası sabittir: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
. PostgreSQL ve MySQL bu sıralamayı paylaşır, bu yüzden birinde öğrendiğiniz şey diğerinde de geçerlidir.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Sık kullanılan özel karakterler
SQL birçok noktalama işareti içerir. Parantezler ()
fonksiyonları ve koşulları çevreler. Virgüller ,
sütunları ayırır. Nokta .
şema ve tablo adlarında kullanılır, örn: public.users
. Tek tırnak '...'
karakter dizilerini belirtir. PostgreSQL, tanımlayıcılar için çift tırnak "..."
kullanır, MySQL ise backtick `...`
. SQL Server'da ayrıca köşeli parantezler [...]
görülür. Bu sembolleri pratik etmek, sorguları bozmadan doğru yazmayı sağlar.
-- Karakter dizisi
SELECT * FROM books WHERE title = 'War and Peace';
-- Boşluk içeren tanımlayıcılar (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Büyük/küçük harf
Geleneksel olarak SQL anahtar kelimeleri büyük harflerle yazılır: SELECT
, FROM
, WHERE
. Bu onları daha görünür kılar, ancak zorunlu değildir. PostgreSQL'de tırnaksız tanımlayıcılar otomatik olarak küçük harfe dönüştürülür, bu nedenle MyTable
ve mytable
aynı kabul edilir. MySQL'de davranış işletim sistemine bağlıdır. Alıştırmalarda, sorgunun yapısını vurgulamak için anahtar kelimeleri büyük harflerle yazmak yaygındır.
Noktalı virgül ve ifadelerin sonu
PostgreSQL'de her ifade genellikle noktalı virgül ;
ile biter. Bunu unutmak, psql
gibi araçlarda yürütmeyi durdurabilir. MySQL ve SQLite etkileşimli modda daha hoşgörülüdür, ancak noktalı virgül yine de tavsiye edilir. Bu küçük sembol çoğu zaman hataların sebebidir.
SELECT sorguları ve join'ler
Sorgu yazmak genellikle join yazmak anlamına gelir. PostgreSQL INNER JOIN
, LEFT JOIN
, RIGHT JOIN
kullanır. Her join, ON
anahtar kelimesi ve ardından bir koşul gerektirir. Eksik bir boşluk ya da yanlış yazılmış bir koşul sorguyu bozar. Join pratiği yapmak, =
ve .
gibi sembollerin doğru yazılmasını sağlar.
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Fonksiyonlar ve ifadeler
PostgreSQL, COUNT()
, SUM()
, AVG()
gibi birçok yerleşik fonksiyona sahiptir. Parantezler her zaman gereklidir. NOW()
ve DATE_TRUNC()
gibi tarih ve saat fonksiyonları PostgreSQL'e özeldir. MySQL'de CURDATE()
veya DATE_FORMAT()
gibi eşdeğerleri vardır. Doğru yazmak için alt çizgi, virgül ve parantezlere dikkat etmek gerekir.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Veri değiştiren ifadeler çok sayıda noktalama işareti içerir. INSERT
sütunları ve değerleri listelemek için parantezler ve virgüller kullanır. UPDATE
virgülle ayrılmış =
ifadeleri kullanır. DELETE
anahtar kelimelerle koşulları birleştirir. Bu yapılar PostgreSQL, MySQL, SQLite ve SQL Server'da neredeyse aynıdır, ancak tırnak kuralları farklı olabilir.
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'a@example.com');
UPDATE users
SET name = 'Bob', email = 'bob@example.com'
WHERE id = 1;
DELETE FROM users WHERE id = 2;
Common Table Expressions (CTE)
PostgreSQL, WITH
ile başlayan CTE'leri sıkça kullanır. Çok sayıda parantez ve virgül içerirler, bu da onları yazma pratiği için ideal yapar. MySQL ve SQLite'ın yeni sürümleri bunları destekler, SQL Server da aynı şekilde. Parantezleri doğru yerleştirmek en yaygın hatadır.
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '30 days'
)
SELECT customer_id, COUNT(*) AS order_count
FROM recent_orders
GROUP BY customer_id;
Pencere fonksiyonları
PostgreSQL gelişmiş pencere fonksiyonlarıyla ünlüdür. Tipik sözdizimi OVER (PARTITION BY ... ORDER BY ...)
parantez ve anahtar kelimelerin dikkatli yazılmasını gerektirir. MySQL ve SQL Server da bunları destekler, ancak PostgreSQL genellikle referans olarak kabul edilir.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parametreler ve placeholders
Uygulamalarda, placeholders veritabanına göre değişir. PostgreSQL $1, $2
kullanır, MySQL ve SQLite ?
, SQL Server ise @p1
kullanır. Bu küçük semboller yanlış yazmaya çok müsaittir, ancak çalıştırma için zorunludur.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Özet
Geleneklere göre SQL anahtar kelimeleri büyük harflerle yazılır, tanımlayıcılar ise tırnak içine alınmadıkça küçük harfli kalır. PostgreSQL tanımlayıcılar için çift tırnak, $n
placeholders, CTE ve pencere fonksiyonları kullanır. MySQL backtick ve ?
placeholders kullanır. SQL Server köşeli parantezler ve @
parametreler ekler. SQLite sözdizimini basit tutar, ancak hassasiyet ister. SQL sorgularını pratik etmek semboller ve anahtar kelimeleri doğru yazmayı geliştirir ve PostgreSQL'e odaklanmak en çok kullanılan modern veritabanlarından birinde deneyim kazandırır.