Link Search Menu Expand Document

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 tarafTanım
.soltablo / kolon adı ayracı
::solPostgreSQL-stili tip dönüştürücü
[ ]soldizi elemanı seçme operatörü
+, -sağpozitif ve negatif operatörü
^solüs alma
*, / , %solçarpma, bölme, mod alma
+, -soltoplama, çıkarma
(any other operator)soltü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
NOTsağmantıksal olumsuzluk ifadesi
ANDsolmantıksal bağlaç
ORsolmantı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;
Altsorgularmytable.arraycolumn[4] mytable.two_d_column[17][34] $1[10:42] (arrayfunction(a,b))[42]
Alan/kolon seçimiexpression.fieldname mytable.mycolumn $1.somecolumn (rowfunction(a,b)).col3
Fonksiyon çağırmafunction_name ([expression [, expression … ]] )
Tip dönüşümleriCAST ( expression AS type ) expression::type
Skalar alt sorgularSELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name) FROM states;