Ana içeriğe geç
Kesit SQL
İleri · Modern SQL

SQL lehçeleri: PostgreSQL, MySQL, SQL Server, Oracle, BigQuery

Aynı işin farklı veritabanlarındaki yazımı.

Uygulamada aç, 8 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Ortak çekirdek, farklı aksanlar

SELECT/FROM/WHERE/JOIN/GROUP BY her yerde aynıdır. Farklar en çok şu alanlarda çıkar:

İşlemPostgreSQLMySQLSQL ServerOracleBigQuery
İlk N satırLIMIT nLIMIT nTOP nFETCH FIRST n ROWS ONLYLIMIT n
Metin birleştir||CONCAT()+ / CONCAT()||CONCAT() / ||
NULL yerineCOALESCEIFNULLISNULLNVLIFNULL
Ay başıDATE_TRUNC('month', d)DATE_FORMAT(d,'%Y-%m-01')DATETRUNC(month, d)TRUNC(d, 'MM')DATE_TRUNC(d, MONTH)
Tarih ekled + INTERVAL '7 day'DATE_ADD(d, INTERVAL 7 DAY)DATEADD(day, 7, d)d + 7DATE_ADD(d, INTERVAL 7 DAY)
Otomatik IDIDENTITY/SERIALAUTO_INCREMENTIDENTITY(1,1)IDENTITY/sequenceyok (GENERATE_UUID)
Büyük/küçük harf duyarsız aramaILIKEvarsayılan duyarsızcollation'a bağlıUPPER() ileLOWER() ile
Prosedürel dilPL/pgSQLSQL/PSMT-SQLPL/SQLScripting

Ambar dünyasına özgü özellikler

Bu uygulamadaHer kod kutusunun üstündeki SQL türü sekmeleri ve alıştırmalardaki “Diğer SQL türlerinde gör” düğmesi, bir sorgunun altı SQL türündeki yazılışını ve çıktısını yan yana görmeni sağlar. Bir SQL türünde geçersiz olan sözdizimini (ör. SQL Server'da LIMIT) yazarsan o SQL türünün vereceği hatayı alırsın. Motor SQLite olduğu için her fark yakalanamaz: yazım hataları ve sık anlam hataları (WHERE'de takma ad, gruplanmamış sütun, koşul toplamı, LIKE harf duyarlılığı) denetlenir; karmaşık sorgularda gerçek motorun vereceği hata burada çıkmayabilir. Yakalanmayan örnekler: SQL Server'da SELECT "abc" burada metin döner, gerçek motorda QUOTED_IDENTIFIER açıkken sütun adı sayılır. MySQL'de SELECT DISTINCT category ... ORDER BY price burada satır döndürür, sql_mode ayarına göre gerçek motorda hata verebilir. BigQuery'de '5' + 1 burada 6 verir, gerçek motorda farklı davranabilir. 0.1 + 0.2 = 0.3 burada her türde “eşit değil” çıkar, çünkü motor ondalığı kayan nokta tutar; gerçek motorda sabitin türüne bağlıdır. Önemli bir sorguyu gerçek motorunda da dene.
Taşınabilir SQL yazmakStandart fonksiyonları (COALESCE, CASE, CAST, pencere fonksiyonları, CTE) tercih et. Lehçeye özgü fonksiyonları tek bir view veya makroda topla.
Alıştırmalara geç (8)