PostgreSQL Soruguları ve Yazım Kuralları
Düzeltme Öner

Sorgular ve Yazım Kuralları

SQL cümlecikleri aslında bir komutlar dizisi olarak oluşturulur. Her cümlecik, bir sembol dizisinden ibaret olup noktalı virgülle sonlanır. Cümlecikleri oluşturan sembol dizileri anahtar kelimeler, tanımlayıcılar, tırnak içinde ifadeler, sabit veya tanımlanmış değerler ya da özel bir karakter sembolü olabilirler. Her sembol birbirinden boşluk karakteri ile ayrışır.

SQL’de anahtar kelimeler bir işlem süreci başlatırlar. Bu anahtar kelimelerden bazıları yazım olarak başka anahtar kelimeleri ya da seçeneklerin girilmesini gerektirir. Örneğin UPDATE kullanıldığında SET’in kullanılma gerekliliği gibi.

SQL’de anahtar kelimeler ve tırnak içine alınmamış nesne isimleri büyük-küçük harf duyarsızdır. İfadesel olarak şu ikisi arasında fark yoktur.

UPDATE MY_TABLE SET A = 5;           uPDaTE my_TabLE SeT a = 5;

SQL’de yorum eklemek için çeşitli yollar bulunmaktadır. Tek satırlık yorum eklemek için çift tire (--) ve C stilinde çok satırlı yorumlar eklemek için /* kullanabilir. Örnekleri şu şekildedir:

-- This is a standard SQL comment

/* multiline comment
 * with nesting: /* nested block comment */
 */

Girilen sorgu, yorumlayıcıda belli bir sırayla işlenmektedir. Aşağıdaki tabloda en yüksek öncelikli operatörden en düşük öncelikli olana doğru bir sıralama sunulmuştur.

Operatör/Element İlişki kurduğu taraf Tanım
. sol tablo / kolon adı ayracı
:: sol PostgreSQL-stili tip dönüştürücü
[ ] sol dizi elemanı seçme operatörü
+, - sağ pozitif ve negatif operatörü
^ sol üs alma
*, / , % sol çarpma, bölme, mod alma
+, - sol toplama, çıkarma
(any other operator) sol tüm diğer dahili ve kullanıcı tanımlı operatörler
BETWEEN, IN, LIKE, ILIKE, SIMILAR   değer aralığına aidiyet sorgulama, küme üyeliği sorgulama, metinsel eşleştirme
<, >, =, <=, >=, <>   karşılaştırma operatörleri
IS, ISNULL, NOTNULL   IS TRUE, IS FALSE, IS NULL, IS DISTINCT FROM, vs
NOT sağ mantıksal olumsuzluk ifadesi
AND sol mantıksal bağlaç
OR sol mantıksal ayraç

SQL yazımında çokça rastlanan değer ifadeleri vardır. Bu ifadeler yazım içinde çoğu yerde çok farklı amaçlarla kullanılmaktadır. Bunların kullanım yerleri ve örnekleri aşağıdaki tabloda sunulmuştur.

Değer İfadesi Örnek
Kolon referansı correlation.columnname
SQL cümleciğine haricen iletilen parametreler $number CREATE FUNCTION dept(text) RETURNS dept AS $$ SELECT * FROM dept WHERE name = $1 $$ LANGUAGE SQL;
Altsorgular mytable.arraycolumn[4] mytable.two_d_column[17][34] $1[10:42] (arrayfunction(a,b))[42]
Alan/kolon seçimi expression.fieldname mytable.mycolumn $1.somecolumn (rowfunction(a,b)).col3
Fonksiyon çağırma function_name ([expression [, expression … ]] )
Tip dönüşümleri CAST ( expression AS type ) expression::type
Skalar alt sorgular SELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name) FROM states;
Tags: PostgreSQL