Menu
Coddy logo textTech

SQL Hile Sayfası

Son güncelleme

Veri sorgulama (SELECT)

SQL'in temeli: bir veya daha fazla tablodan satır okuma.

İşlemSöz dizimi
Tüm sütunları seçSELECT * FROM users;
Belirli sütunları seçSELECT id, name FROM users;
Bir sütunu yeniden adlandır (alias)SELECT name AS full_name FROM users;
Benzersiz değerlerSELECT DISTINCT country FROM users;
Satır sayısını sınırlaSELECT * FROM users LIMIT 10;
Atla ve sonra sınırla (sayfalama)SELECT * FROM users LIMIT 10 OFFSET 20;
Satırları saySELECT COUNT(*) FROM users;

Satırları filtreleme (WHERE)

Bir sorgunun hangi satırları döndüreceğini daraltın.

İşlemSöz dizimi
Eşitlik / karşılaştırmaWHERE age >= 18
Birden fazla koşulWHERE age >= 18 AND country = 'US'
Koşullardan biriWHERE role = 'admin' OR role = 'owner'
Bir kümedeWHERE country IN ('US', 'CA', 'MX')
Bir aralıktaWHERE price BETWEEN 10 AND 50
Desen eşleştirmeWHERE email LIKE '%@gmail.com'
Null mı / değil miWHERE deleted_at IS NULL
OlumsuzlamaWHERE status NOT IN ('archived')

Sıralama ve gruplama

İşlemSöz dizimi
Artan sıralama (varsayılan)ORDER BY created_at
Azalan sıralamaORDER BY created_at DESC
Birden fazla sütuna göre sıralaORDER BY country, name DESC
Satırları gruplaSELECT country, COUNT(*) FROM users GROUP BY country;
Grupları filtreleGROUP BY country HAVING COUNT(*) > 100

Join'ler

İki tablonun satırlarını eşleşen bir sütun üzerinden birleştirin.

Join türüDöndürdüğüSöz dizimi
INNER JOINYalnızca her iki tabloda da eşleşen satırlarFROM orders o INNER JOIN users u ON o.user_id = u.id
LEFT JOINTüm sol satırlar + eşleşmeler (yoksa null)FROM users u LEFT JOIN orders o ON o.user_id = u.id
RIGHT JOINTüm sağ satırlar + eşleşmelerFROM orders o RIGHT JOIN users u ON o.user_id = u.id
FULL OUTER JOINHer iki taraftaki tüm satırlarFROM a FULL OUTER JOIN b ON a.id = b.a_id
CROSS JOINHer kombinasyon (kartezyen)FROM sizes CROSS JOIN colors
Self joinBir tablonun kendisiyle join'lenmesiFROM employees e JOIN employees m ON e.manager_id = m.id

Toplama fonksiyonları

Bir satır grubu üzerinden tek bir değer hesaplayın.

FonksiyonNe yapar
COUNT(*)Satır sayısı
COUNT(col)Null olmayan değerlerin sayısı
SUM(col)Sayısal bir sütunun toplamı
AVG(col)Ortalama değer
MIN(col) / MAX(col)En küçük / en büyük değer
STRING_AGG(col, ',')Değerleri birleştirir (Postgres; MySQL'de GROUP_CONCAT)

Pencere fonksiyonları

Bir satır kümesi üzerinde, onları tek satıra indirgemeden hesaplama yapın.

FonksiyonSöz dizimi
Satır numarasıROW_NUMBER() OVER (ORDER BY score DESC)
Sıralama (boşluklu)RANK() OVER (PARTITION BY country ORDER BY score DESC)
Yoğun sıralamaDENSE_RANK() OVER (ORDER BY score DESC)
Yürüyen toplamSUM(amount) OVER (ORDER BY created_at)
Önceki / sonraki satırLAG(score) OVER (ORDER BY date), LEAD(score) OVER (...)

Veri değiştirme (INSERT, UPDATE, DELETE)

İşlemSöz dizimi
Bir satır ekleINSERT INTO users (name, email) VALUES ('Ada', 'ada@x.com');
Birden fazla satır ekleINSERT INTO users (name) VALUES ('Ada'), ('Alan');
Satırları güncelleUPDATE users SET active = true WHERE id = 1;
Satırları silDELETE FROM users WHERE active = false;
Upsert (Postgres/SQLite)INSERT ... ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;

Tablo tanımlama (DDL)

İşlemSöz dizimi
Tablo oluşturCREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);
Sütun ekleALTER TABLE users ADD COLUMN age INTEGER;
Sütun silALTER TABLE users DROP COLUMN age;
Tablo silDROP TABLE users;
İndeks oluşturCREATE INDEX idx_users_email ON users (email);
Yabancı anahtarFOREIGN KEY (user_id) REFERENCES users (id)

Başvurduğunuz her SQL ifadesi, yan tümcesi ve join'i tek sayfada. Bu SQL hile sayfası, ilişkisel veriyi sorgulamak ve değiştirmek için hızlı bir başvurudur - SELECT yan tümceleri, dört JOIN türü, toplama (aggregation) ve tablo oluşturup güncellemekte kullandığınız DDL ve DML.

Buradaki söz dizimi standart ANSI SQL'dir ve aksi belirtilmedikçe PostgreSQL, MySQL, SQLite ve SQL Server'da çalışır. İhtiyacınız olanı kopyalayın ya da her sorguyu SQL playground'da canlı deneyin - kurmanız gereken bir veritabanı yok.

SQL hile sayfası SSS

Bu SQL hile sayfası ücretsiz mi?
Evet. Bu SQL hile sayfası tamamen ücretsizdir ve kayıt gerektirmez. Yer imlerinize ekleyin ve bir yan tümce, join ya da fonksiyona bakmanız gerektiğinde geri dönün.
Bu, MySQL, PostgreSQL ve SQLite için çalışır mı?
Çoğunlukla evet. Burada gösterilen SELECT, WHERE, JOIN, GROUP BY ve DDL söz dizimi standart ANSI SQL'dir ve MySQL, PostgreSQL, SQLite ile SQL Server'da aynı şekilde çalışır. Birkaç gelişmiş özellik lehçeye göre farklılık gösterir - upsert ve dize toplama en yaygın olanlardır - ve ilgili satırlar bu farkı not eder.
INNER JOIN ile LEFT JOIN arasındaki fark nedir?
Bir INNER JOIN yalnızca her iki tabloda da eşleşen satırları döndürür. Bir LEFT JOIN ise sol (ilk) tablodaki her satırı döndürür ve eşleşme olmadığında sağ tablodaki sütunları NULL ile doldurur - bazı kullanıcıların hiç siparişi olmasa bile tüm kullanıcıları istediğinizde işe yarar.
Bu SQL komutlarını çevrimiçi olarak deneyebilir miyim?
Evet. SQL playground'u açarak bu hile sayfasındaki herhangi bir sorguyu tarayıcınızda gerçek bir veritabanına karşı çalıştırabilirsiniz - kurulum gerekmez. Yapı istediğinizde, Coddy'nin ücretsiz etkileşimli SQL kursu sizi adım adım SELECT'ten join'lere ve pencere fonksiyonlarına götürür.
Bu hile sayfası yeni başlayanlar için uygun mu?
Evet. En yaygın işlemlerden (sorgulama ve filtreleme) gelişmiş olanlara (pencere fonksiyonları) doğru düzenlenmiştir, böylece üstteki bölümleri ilk günden kullanabilir ve zamanla geri kalanına geçebilirsiniz.
Coddy programming languages illustration

Coddy ile SQL öğren

BAŞLA