OrientDB - Exibir registros

Semelhante ao RDBMS, o OrientDB suporta diferentes tipos de consultas SQL para recuperar os registros do banco de dados. Ao recuperar os registros, temos diferentes variações ou opções de consultas junto com a instrução select.

A instrução a seguir é a sintaxe básica do 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 seguir estão os detalhes sobre as opções na sintaxe acima.

<Projections> - indica os dados que você deseja extrair da consulta como um conjunto de registros de resultados.

FROM- indica o objeto a ser consultado. Pode ser uma classe, cluster, ID de registro único, conjunto de IDs de registro. Você pode especificar todos esses objetos como destino.

WHERE - Especifica a condição para filtrar o conjunto de resultados.

LET - Indica as variáveis ​​de contexto que são usadas nas projeções, condições ou subconsultas.

GROUP BY - Indica o campo para agrupar os registros.

ORDER BY - Indica o campo para organizar um registro em ordem.

UNWIND - Designa o campo no qual será desfeita a coleção de registros.

SKIP - Define o número de registros que você deseja ignorar desde o início do conjunto de resultados.

LIMIT - indica o número máximo de registros no conjunto de resultados.

FETCHPLAN - Especifica a estratégia que define como você deseja buscar resultados.

TIMEOUT - Define o tempo máximo em milissegundos para a consulta.

LOCK- Define a estratégia de bloqueio. DEFAULT e RECORD são as estratégias de bloqueio disponíveis.

PARALLEL - Executa a consulta em 'x' threads simultâneos.

NOCACHE - Define se você deseja usar o cache ou não.

Exemplo

Vamos considerar a seguinte tabela de clientes criada no capítulo anterior.

Sr. Não. Nome Era
1 Satish 25
2 Krishna 26
3 Kiran 29
4 Javeed 21
5 Rajá 29

Tente consultas de seleção diferentes para recuperar os registros de dados da tabela do cliente.

Method 1 - Você pode usar a seguinte consulta para selecionar todos os registros da tabela Cliente.

orientdb {db = demo}> SELECT FROM Customer

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

----+-----+--------+----+-------+---- 
#   |@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 - Selecione todos os registros cujo nome comece com a letra 'k'.

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

OU você pode usar a seguinte consulta para o exemplo acima.

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

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

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

Method 3 - Selecione id, registros de nomes da tabela de clientes com nomes em letras maiúsculas.

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

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

----+--------+----+------- 
#   |@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 - Selecione todos os registros da tabela Cliente em que a idade esteja no intervalo de 25 a 29.

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

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

----+-----+--------+----+-------+---- 
#   |@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 - Selecione todos os registros da tabela Cliente onde qualquer campo contém a palavra 'sh'.

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

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

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

Method 6 - Selecione todos os registros da tabela Cliente, ordenados por idade em ordem decrescente.

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

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

----+-----+--------+----+-------+---- 
#   |@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 
----+-----+--------+----+-------+----