OrientDB - Visualizza record
Simile a RDBMS, OrientDB supporta diversi tipi di query SQL per recuperare i record dal database. Durante il recupero dei record abbiamo diverse varianti o opzioni di query insieme all'istruzione select.
La seguente dichiarazione è la sintassi di base 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 ]
Di seguito sono riportati i dettagli sulle opzioni nella sintassi precedente.
<Projections> - Indica i dati che si desidera estrarre dalla query come set di record dei risultati.
FROM- Indica l'oggetto da interrogare. Può essere una classe, un cluster, un singolo ID record, un set di ID record. È possibile specificare tutti questi oggetti come destinazione.
WHERE - Specifica la condizione per filtrare il set di risultati.
LET - Indica la variabile di contesto utilizzata nelle proiezioni, condizioni o sottoquery.
GROUP BY - Indica il campo per raggruppare i record.
ORDER BY - Indica l'archivio per organizzare un record in ordine.
UNWIND - Designa il campo su cui svolgere la raccolta di record.
SKIP - Definisce il numero di record che si desidera saltare dall'inizio del set di risultati.
LIMIT - Indica il numero massimo di record nel set di risultati.
FETCHPLAN - Specifica la strategia che definisce come si desidera recuperare i risultati.
TIMEOUT - Definisce il tempo massimo in millisecondi per la query.
LOCK- Definisce la strategia di chiusura. DEFAULT e RECORD sono le strategie di blocco disponibili.
PARALLEL - Esegue la query su thread simultanei "x".
NOCACHE - Definisce se si desidera utilizzare la cache o meno.
Esempio
Consideriamo la seguente tabella Customer creata nel capitolo precedente.
Sr.No. | Nome | Età |
---|---|---|
1 | Satish | 25 |
2 | Krishna | 26 |
3 | Kiran | 29 |
4 | Javeed | 21 |
5 | Raja | 29 |
Prova diverse query di selezione per recuperare i record di dati dalla tabella Cliente.
Method 1 - È possibile utilizzare la seguente query per selezionare tutti i record dalla tabella Clienti.
orientdb {db = demo}> SELECT FROM Customer
Se la query precedente viene eseguita correttamente, otterrai il seguente output.
----+-----+--------+----+-------+----
# |@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 - Seleziona tutti i record il cui nome inizia con la lettera 'k'.
orientdb {db = demo}> SELECT FROM Customer WHERE name LIKE 'k%'
OPPURE puoi utilizzare la seguente query per l'esempio precedente.
orientdb {db = demo}> SELECT FROM Customer WHERE name.left(1) = 'k'
Se la query precedente viene eseguita correttamente, otterrai il seguente output.
----+-----+--------+----+-------+----
# |@RID |@CLASS |id |name |age
----+-----+--------+----+-------+----
0 |#11:1|Customer|2 |krishna|26
1 |#11:2|Customer|3 |kiran |29
----+-----+--------+----+-------+----
Method 3 - Seleziona id, record di nome dalla tabella Customer con i nomi in lettere maiuscole.
orientdb {db = demo}> SELECT id, name.toUpperCase() FROM Customer
Se la query precedente viene eseguita correttamente, otterrai il seguente output.
----+--------+----+-------
# |@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 - Seleziona tutti i record dalla tabella Cliente in cui l'età è compresa tra 25 e 29.
orientdb {db = demo}> SELECT FROM Customer WHERE age in [25,29]
Se la query precedente viene eseguita correttamente, otterrai il seguente output.
----+-----+--------+----+-------+----
# |@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 - Seleziona tutti i record dalla tabella Cliente in cui qualsiasi campo contiene la parola "sh".
orientdb {db = demo}> SELECT FROM Customer WHERE ANY() LIKE '%sh%'
Se la query precedente viene eseguita correttamente, otterrai il seguente output.
----+-----+--------+----+-------+----
# |@RID |@CLASS |id |name |age
----+-----+--------+----+-------+----
0 |#11:0|Customer|1 |satish |25
1 |#11:1|Customer|2 |krishna|26
----+-----+--------+----+-------+----
Method 6 - Seleziona tutti i record dalla tabella Cliente, ordinati per età in ordine decrescente.
orientdb {db = demo}> SELECT FROM Customer ORDER BY age DESC
Se la query precedente viene eseguita correttamente, otterrai il seguente output.
----+-----+--------+----+-------+----
# |@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
----+-----+--------+----+-------+----