DocumentDB SQL - Operadores

Un operador es una palabra reservada o un carácter que se utiliza principalmente en una cláusula WHERE de SQL para realizar operaciones, como comparaciones y operaciones aritméticas. DocumentDB SQL también admite una variedad de expresiones escalares. Los más utilizados sonbinary and unary expressions.

Los siguientes operadores de SQL se admiten actualmente y se pueden utilizar en consultas.

Operadores de comparación SQL

A continuación se muestra una lista de todos los operadores de comparación disponibles en la gramática SQL de DocumentDB.

S.No. Operadores y descripción
1

=

Comprueba si los valores de dos operandos son iguales o no. Si es así, la condición se vuelve verdadera.

2

!=

Comprueba si los valores de dos operandos son iguales o no. Si los valores no son iguales, la condición se vuelve verdadera.

3

<>

Comprueba si los valores de dos operandos son iguales o no. Si los valores no son iguales, la condición se vuelve verdadera.

4

>

Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho. Si es así, la condición se vuelve verdadera.

5

<

Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho. Si es así, la condición se convierte en verdadera.

6

>=

Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho. Si es así, la condición se vuelve verdadera.

7

<=

Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho. Si es así, la condición se vuelve verdadera.

Operadores lógicos SQL

A continuación se muestra una lista de todos los operadores lógicos disponibles en la gramática SQL de DocumentDB.

S.No. Operadores y descripción
1

AND

El operador AND permite la existencia de múltiples condiciones en la cláusula WHERE de una instrucción SQL.

2

BETWEEN

El operador BETWEEN se utiliza para buscar valores que se encuentran dentro de un conjunto de valores, dado el valor mínimo y el valor máximo.

3

IN

El operador IN se utiliza para comparar un valor con una lista de valores literales que se han especificado.

4

OR

El operador OR se utiliza para combinar varias condiciones en la cláusula WHERE de una instrucción SQL.

5

NOT

El operador NOT invierte el significado del operador lógico con el que se utiliza. Por ejemplo, NO EXISTE, NO ENTRE, NO EN, etc. Este es un operador de negación.

Operadores aritméticos SQL

A continuación se muestra una lista de todos los operadores aritméticos disponibles en la gramática SQL de DocumentDB.

S.No. Operadores y descripción
1

+

Addition - Agrega valores a ambos lados del operador.

2

-

Subtraction - Resta el operando de la derecha del operando de la izquierda.

3

*

Multiplication - Multiplica los valores a ambos lados del operador.

4

/

Division - Divide el operando de la izquierda por el operando de la derecha.

5

%

Modulus - Divide el operando de la izquierda por el operando de la derecha y devuelve el resto.

También consideraremos los mismos documentos en este ejemplo. Lo siguiente es elAndersenFamily documento.

{ 
   "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 
}

Lo siguiente es el SmithFamily documento.

{ 
   "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 
}

Lo siguiente es el WakefieldFamily documento.

{ 
   "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 
}

Echemos un vistazo a un ejemplo sencillo en el que se utiliza un operador de comparación en la cláusula WHERE.

En esta consulta, en la cláusula WHERE, se especifica la condición (WHERE f.id = "WakefieldFamily"), y recuperará el documento cuya identificación es igual a WakefieldFamily.

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

Cuando se ejecuta la consulta anterior, devolverá el documento JSON completo para WakefieldFamily como se muestra en el siguiente resultado.

[ 
   { 
      "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/" 
   } 
]

Echemos un vistazo a otro ejemplo en el que la consulta recuperará los datos de los niños cuya calificación sea superior a 5.

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

Cuando se ejecuta la consulta anterior, recuperará el siguiente subdocumento como se muestra en el resultado.

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