DocumentDB SQL - Operatörler

Operatör, karşılaştırmalar ve aritmetik işlemler gibi işlemleri gerçekleştirmek için öncelikle bir SQL WHERE yan tümcesinde kullanılan ayrılmış bir kelime veya karakterdir. DocumentDB SQL ayrıca çeşitli skaler ifadeleri de destekler. En sık kullanılanlarbinary and unary expressions.

Aşağıdaki SQL operatörleri şu anda desteklenmektedir ve sorgularda kullanılabilir.

SQL Karşılaştırma Operatörleri

Aşağıda DocumentDB SQL dilbilgisinde bulunan tüm karşılaştırma işleçlerinin bir listesi bulunmaktadır.

S.No. Operatörler ve Açıklama
1

=

İki işlenenin değerlerinin eşit olup olmadığını kontrol eder. Evet ise, koşul gerçek olur.

2

!=

İki işlenenin değerlerinin eşit olup olmadığını kontrol eder. Değerler eşit değilse, koşul doğru olur.

3

<>

İki işlenenin değerlerinin eşit olup olmadığını kontrol eder. Değerler eşit değilse, koşul doğru olur.

4

>

Sol işlenenin değerinin sağ işlenenin değerinden büyük olup olmadığını kontrol eder. Evet ise, koşul gerçek olur.

5

<

Sol işlenenin değerinin sağ işlenenin değerinden küçük olup olmadığını kontrol eder. Evet ise, koşul gerçek olur.

6

>=

Sol işlenenin değerinin sağ işlenenin değerinden büyük veya ona eşit olup olmadığını kontrol eder. Evet ise, koşul gerçek olur.

7

<=

Sol işlenenin değerinin sağ işlenenin değerinden küçük veya ona eşit olup olmadığını kontrol eder. Evet ise, koşul gerçek olur.

SQL Mantıksal Operatörleri

Aşağıda, DocumentDB SQL dilbilgisinde bulunan tüm mantıksal işleçlerin bir listesi bulunmaktadır.

S.No. Operatörler ve Açıklama
1

AND

AND operatörü, bir SQL ifadesinin WHERE yan tümcesinde birden çok koşulun varlığına izin verir.

2

BETWEEN

BETWEEN operatörü, minimum değer ve maksimum değer verildiğinde, bir değerler kümesi içindeki değerleri aramak için kullanılır.

3

IN

IN operatörü, bir değeri belirtilen değişmez değerler listesiyle karşılaştırmak için kullanılır.

4

OR

OR operatörü, bir SQL ifadesinin WHERE yan tümcesinde birden çok koşulu birleştirmek için kullanılır.

5

NOT

NOT operatörü, birlikte kullanıldığı mantıksal operatörün anlamını tersine çevirir. Örneğin, MEVCUT DEĞİL, ARASINDA DEĞİL, İÇİNDE DEĞİL vb. Bu bir olumsuzlama operatörüdür.

SQL Aritmetik Operatörleri

Aşağıda, DocumentDB SQL gramerinde bulunan tüm aritmetik operatörlerin bir listesi bulunmaktadır.

S.No. Operatörler ve Açıklama
1

+

Addition - Operatörün her iki tarafına da değerler ekler.

2

-

Subtraction - Sağ el işleneni sol el işlenenden çıkarır.

3

*

Multiplication - Operatörün her iki tarafındaki değerleri çarpar.

4

/

Division - Sol el işleneni sağ el işlenene böler.

5

%

Modulus - Sol el işleneni sağ el işlenene böler ve kalanı döndürür.

Bu örnekte de aynı belgeleri ele alacağız. AşağıdakiAndersenFamily belge.

{ 
   "id": "AndersenFamily", 
   "lastName": "Andersen", 
	
   "parents": [ 
      { "firstName": "Thomas", "relationship":  "father" }, 
      { "firstName": "Mary Kay", "relationship":  "mother" } 
   ], 
	
   "children": [ 
      { 
         "firstName": "Henriette Thaulow", 
         "gender": "female", 
         "grade": 5, 
         "pets": [ { "givenName": "Fluffy", "type":  "Rabbit" } ] 
      } 
   ],
	
   "location": { "state": "WA", "county": "King", "city": "Seattle" }, 
   "isRegistered": true 
}

Aşağıdaki SmithFamily belge.

{ 
   "id": "SmithFamily", 
	
   "parents": [ 
      { "familyName": "Smith", "givenName": "James" }, 
      { "familyName": "Curtis", "givenName": "Helen" } 
   ],
	
   "children": [ 
      { 
         "givenName": "Michelle", 
         "gender": "female", 
         "grade": 1 
      },
		
      { 
         "givenName": "John", 
         "gender": "male",
         "grade": 7, 
			
         "pets": [ 
            { "givenName": "Tweetie", "type": "Bird" } 
         ] 
      } 
   ],
	
   "location": { 
      "state": "NY", 
      "county": "Queens", 
      "city": "Forest Hills" 
   },
	
   "isRegistered": true 
}

Aşağıdaki WakefieldFamily belge.

{ 
   "id": "WakefieldFamily", 
	
   "parents": [ 
      { "familyName": "Wakefield", "givenName": "Robin" }, 
      { "familyName": "Miller", "givenName": "Ben" } 
   ],
	
   "children": [ 
      { 
         "familyName": "Merriam", 
         "givenName": "Jesse", 
         "gender": "female", 
         "grade": 6,
			
         "pets": [ 
            { "givenName": "Charlie Brown", "type": "Dog" }, 
            { "givenName": "Tiger", "type": "Cat" }, 
            { "givenName": "Princess", "type": "Cat" } 
         ] 
      },
		
      { 
         "familyName": "Miller", 
         "givenName": "Lisa", 
         "gender": "female", 
         "grade": 3, 
			
         "pets": [ 
            { "givenName": "Jake", "type": "Snake" } 
         ] 
      } 
   ],
	
   "location": { "state": "NY", "county": "Manhattan", "city": "NY" }, 
   "isRegistered": false 
}

WHERE cümlesinde bir karşılaştırma operatörünün kullanıldığı basit bir örneğe bakalım.

Bu sorguda, WHERE yan tümcesinde, (WHERE f.id = "WakefieldFamily") koşulu belirtilir ve kimliği WakefieldFamily'e eşit olan belgeyi alır.

SELECT * 
FROM f  
WHERE f.id = "WakefieldFamily"

Yukarıdaki sorgu yürütüldüğünde, aşağıdaki çıktıda gösterildiği gibi WakefieldFamily için eksiksiz JSON belgesini döndürecektir.

[ 
   { 
      "id": "WakefieldFamily", 
      "parents": [ 
         { 
            "familyName": "Wakefield", 
            "givenName": "Robin" 
         },
			
         { 
            "familyName": "Miller", 
            "givenName": "Ben" 
         } 
      ],
		
      "children": [ 
         { 
            "familyName": "Merriam", 
            "givenName": "Jesse", 
            "gender": "female", 
            "grade": 6,
				
            "pets": [ 
               { 
                  "givenName": "Charlie Brown", 
                  "type": "Dog" 
               }, 
					
               { 
                  "givenName": "Tiger", 
                  "type": "Cat" 
               },
					
               { 
                  "givenName": "Princess", 
                  "type": "Cat" 
               } 
            ]
				
         },
			
         { 
            "familyName": "Miller", 
            "givenName": "Lisa", 
            "gender": "female", 
            "grade": 3, 
				
            "pets": [ 
               { 
                  "givenName": "Jake", 
                  "type": "Snake" 
               } 
            ] 
         } 
      ],
		
      "location": { 
         "state": "NY", 
         "county": "Manhattan", 
         "city": "NY" 
      }, 
		
      "isRegistered": false, 
      "_rid": "Ic8LAJFujgECAAAAAAAAAA==", 
      "_ts": 1450541623, 
      "_self": "dbs/Ic8LAA==/colls/Ic8LAJFujgE=/docs/Ic8LAJFujgECAAAAAAAAAA==/", 
      "_etag": "\"00000500-0000-0000-0000-567582370000\"", 
      "_attachments": "attachments/" 
   } 
]

Sorgunun notu 5'ten büyük olan çocuk verilerini alacağı başka bir örneğe bakalım.

SELECT * 
FROM Families.children[0] c 
WHERE (c.grade > 5)

Yukarıdaki sorgu yürütüldüğünde, çıktıda gösterildiği gibi aşağıdaki alt belgeyi alacaktır.

[
   {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", 
      "grade": 6, 
		
      "pets": [
         { 
            "givenName": "Charlie Brown", 
            "type": "Dog" 
         }, 
			
         { 
            "givenName": "Tiger", 
            "type": "Cat" 
         }, 
			
         { 
            "givenName": "Princess", 
            "type": "Cat" 
         } 
      ] 
   } 
]