OrientDB - Mostrar registros

De forma similar a RDBMS, OrientDB admite diferentes tipos de consultas SQL para recuperar los registros de la base de datos. Al recuperar los registros, tenemos diferentes variaciones u opciones de consultas junto con la declaración de selección.

La siguiente declaración es la sintaxis básica del comando SELECT.

SELECT [ <Projections> ] [ FROM <Target> [ LET <Assignment>* ] ] 
   [ WHERE <Condition>* ] 
   [ GROUP BY <Field>* ] 
   [ ORDER BY <Fields>* [ ASC|DESC ] * ] 
   [ UNWIND <Field>* ] 
   [ SKIP <SkipRecords> ] 
   [ LIMIT <MaxRecords> ] 
   [ FETCHPLAN <FetchPlan> ] 
   [ TIMEOUT <Timeout> [ <STRATEGY> ] ]
   [ LOCK default|record ] 
   [ PARALLEL ] 
   [ NOCACHE ]

A continuación se muestran los detalles sobre las opciones en la sintaxis anterior.

<Projections> - Indica los datos que desea extraer de la consulta como un conjunto de registros de resultados.

FROM- Indica el objeto a consultar. Puede ser una clase, clúster, ID de registro único, conjunto de ID de registro. Puede especificar todos estos objetos como destino.

WHERE - Especifica la condición para filtrar el conjunto de resultados.

LET - Indica la variable de contexto que se utiliza en proyecciones, condiciones o subconsultas.

GROUP BY - Indica el campo para agrupar los registros.

ORDER BY - Indica el archivo para organizar un registro en orden.

UNWIND - Designa el campo en el que desenrollar la colección de registros.

SKIP - Define el número de registros que desea omitir desde el inicio del conjunto de resultados.

LIMIT - Indica el número máximo de registros en el conjunto de resultados.

FETCHPLAN - Especifica la estrategia que define cómo desea obtener resultados.

TIMEOUT - Define el tiempo máximo en milisegundos para la consulta.

LOCK- Define la estrategia de bloqueo. DEFAULT y RECORD son las estrategias de bloqueo disponibles.

PARALLEL - Ejecuta la consulta en subprocesos concurrentes 'x'.

NOCACHE - Define si quieres usar caché o no.

Ejemplo

Consideremos la siguiente tabla de Clientes creada en el capítulo anterior.

No Señor. Nombre Años
1 Satish 25
2 Krishna 26
3 Kiran 29
4 Javeed 21
5 Raja 29

Pruebe diferentes consultas de selección para recuperar los registros de datos de la tabla Cliente.

Method 1 - Puede utilizar la siguiente consulta para seleccionar todos los registros de la tabla Cliente.

orientdb {db = demo}> SELECT FROM Customer

Si la consulta anterior se ejecuta correctamente, obtendrá el siguiente resultado.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:1|Customer|2   |krishna|26   
2   |#11:2|Customer|3   |kiran  |29 
3   |#11:3|Customer|4   |javeed |21 
4   |#11:4|Customer|5   |raja   |29   
----+-----+--------+----+-------+----

Method 2 - Seleccione todos los registros cuyo nombre comience con la letra 'k'.

orientdb {db = demo}> SELECT FROM Customer WHERE name LIKE 'k%'

O puede utilizar la siguiente consulta para el ejemplo anterior.

orientdb {db = demo}> SELECT FROM Customer WHERE name.left(1) = 'k'

Si la consulta anterior se ejecuta correctamente, obtendrá el siguiente resultado.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:1|Customer|2   |krishna|26   
1   |#11:2|Customer|3   |kiran  |29 
----+-----+--------+----+-------+----

Method 3 - Seleccione id, registros de nombres de la tabla Cliente con nombres en mayúsculas.

orientdb {db = demo}> SELECT id, name.toUpperCase() FROM Customer

Si la consulta anterior se ejecuta correctamente, obtendrá el siguiente resultado.

----+--------+----+------- 
#   |@CLASS  |id  |name     
----+--------+----+------- 
0   |null    |1   |SATISH   
1   |null    |2   |KRISHNA  
2   |null    |3   |KIRAN   
3   |null    |4   |JAVEED  
4   |null    |5   |RAJA      
----+--------+----+-------

Method 4 - Seleccione todos los registros de la tabla Cliente donde la edad esté en el rango de 25 a 29.

orientdb {db = demo}> SELECT FROM Customer WHERE age in [25,29]

Si la consulta anterior se ejecuta correctamente, obtendrá el siguiente resultado.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:2|Customer|3   |kiran  |29 
2   |#11:4|Customer|5   |raja   |29   
----+-----+--------+----+-------+----

Method 5 - Seleccione todos los registros de la tabla Cliente donde cualquier campo contenga la palabra 'sh'.

orientdb {db = demo}> SELECT FROM Customer WHERE ANY() LIKE '%sh%'

Si la consulta anterior se ejecuta correctamente, obtendrá el siguiente resultado.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:1|Customer|2   |krishna|26   
----+-----+--------+----+-------+----

Method 6 - Seleccione todos los registros de la tabla Cliente, ordenados por edad en orden descendente.

orientdb {db = demo}> SELECT FROM Customer ORDER BY age DESC

Si la consulta anterior se ejecuta correctamente, obtendrá el siguiente resultado.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:2|Customer|3   |kiran  |29 
1   |#11:4|Customer|5   |raja   |29   
2   |#11:1|Customer|2   |krishna|26   
3   |#11:0|Customer|1   |satish |25   
4   |#11:3|Customer|4   |javeed |21 
----+-----+--------+----+-------+----