Yazma ayarları yenilenemedi. Tekrar denemek için sayfayı yeniden yükleyin.
Klavyede 10 parmakla yazma dersi: SQL dilinde programlama
Doğruluk hesaplama kuralları değişti. Bu alıştırma baştan başlıyor.
Tamamlanan oturumunuzun kaydedildiği doğrulanamadı. Metni yeniden yazmadan kaydetmeyi tekrar deneyin.
Klavyede 10 parmakla yazma dersi: SQL dilinde programlama
Programlamada 10 parmak klavye önemlidir. SQL programlama dilinde kod yazmak için hızlı yazma tekniklerini kullanarak daha verimli olursunuz.
SQL dilinde programlama ve 10 parmak klavye
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. Sorgu bölümlerinin 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 () fonksiyon argümanlarını çevreler ve koşulları gruplandırır. 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 veritabanı ve tablo adlarının büyük/küçük harfe duyarlılığı işletim sistemine ve sunucu ayarlarına 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
SQL'de noktalı virgül ; bir ifadeyi sonlandırır. psql, MySQL istemcisi ve SQLite kabuğu gibi etkileşimli araçlar genellikle bu karakter girilene kadar ifadeyi çalıştırmaz. Psql'de mevcut sorguyu \g komutuyla da gönderebilirsiniz. Sonuç yerine daha fazla metin girmenizi isteyen bir komut satırı görürseniz ifadeyi sonlandırıp sonlandırmadığınızı kontrol edin.
SELECT sorguları ve join'ler
Sorgu yazmak genellikle join yazmak anlamına gelir. PostgreSQL INNER JOIN, LEFT JOIN, RIGHT JOIN kullanır. Aşağıdaki örnekte join koşulu ON anahtar kelimesinden sonra belirtilir. USING veya NATURAL kullanan join biçimleri de vardır. 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'de kullanılabilir; bu fonksiyonların kullanılabilirliği ve davranışı veritabanına göre değişir. MySQL'de CURDATE() veya DATE_FORMAT() gibi fonksiyonlar da 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 değer atamak için =, atamaları birbirinden ayırmak için ise virgül 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 uygun yapar. MySQL, SQLite ve SQL Server da CTE'leri destekler. Her açılış parantezinin karşılığında bir kapanış parantezi bulunduğunu kontrol edin.
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 pencere fonksiyonlarını destekler. Aşağıdaki örnek PostgreSQL sözdizimini kullanır.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parametreler ve placeholders
Uygulamalarda parametre yer tutucuları hem veritabanına hem de sürücüye bağlıdır. PostgreSQL'in yerel hazırlanmış ifadeleri $1, $2 kullanır; MySQL'in hazırlanmış ifadeleri ve SQLite sorguları ? kullanabilir. SQL Server parametreleri @p1 gibi adlar alır. Sürücü, Psycopg'daki %s gibi farklı bir sözdizimi isteyebilir. Bu küçük semboller kolayca yanlış yazılabildiği için sürücünün belgelerini kontrol edin.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Özet
Geleneksel olarak SQL anahtar kelimeleri büyük harflerle yazılır. PostgreSQL, çift tırnak içine alınmayan tanımlayıcıları küçük harfe dönüştürür; diğer sistemlerde farklı kurallar geçerlidir. 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.