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