📜  OrientDB-显示记录

📅  最后修改于: 2020-11-26 05:24:10             🧑  作者: Mango


与RDBMS相似,OrientDB支持不同类型的SQL查询以从数据库检索记录。在检索记录时,我们具有不同的查询变体或选项以及select语句。

以下语句是SELECT命令的基本语法。

SELECT [  ] [ FROM  [ LET * ] ] 
   [ WHERE * ] 
   [ GROUP BY * ] 
   [ ORDER BY * [ ASC|DESC ] * ] 
   [ UNWIND * ] 
   [ SKIP  ] 
   [ LIMIT  ] 
   [ FETCHPLAN  ] 
   [ TIMEOUT  [  ] ]
   [ LOCK default|record ] 
   [ PARALLEL ] 
   [ NOCACHE ] 

以下是上述语法中有关选项的详细信息。

-表示要从查询中提取的数据作为结果记录集。

FROM-表示要查询的对象。这可以是类,集群,单个记录ID,记录ID集。您可以将所有这些对象指定为目标。

WHERE-指定过滤结果集的条件。

LET-指示在投影,条件或子查询中使用的上下文变量。

GROUP BY-指示将记录分组的字段。

ORDER BY-指示字段按顺序排列记录。

UNWIND-指定要在其上展开记录集合的字段。

跳过-定义要从结果集的开头跳过的记录数。

LIMIT-指示结果集中的最大记录数。

FETCHPLAN-指定定义要如何获取结果的策略。

超时-定义查询的最长时间(以毫秒为单位)。

LOCK-定义锁定策略。 DEFAULT和RECORD是可用的锁定策略。

PARALLEL-对“ x”个并发线程执行查询。

NOCACHE-定义是否要使用缓存。

让我们考虑在上一章中创建的以下Customer表。

Sr.No. Name Age
1 Satish 25
2 Krishna 26
3 Kiran 29
4 Javeed 21
5 Raja 29

尝试其他选择查询以从“客户”表中检索数据记录。

方法1-您可以使用以下查询从Customer表中选择所有记录。

orientdb {db = demo}> SELECT FROM Customer 

如果上面的查询成功执行,您将获得以下输出。

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

方法2-选择名称以字母“ k ”开头的所有记录。

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

或者,您可以在上面的示例中使用以下查询。

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

如果上面的查询成功执行,您将获得以下输出。

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

方法3-选择id,从Customer表中命名记录,并使用大写字母命名。

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

如果上面的查询成功执行,您将获得以下输出。

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

方法4-从“客户”表中选择年龄在25到29之间的所有记录。

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

如果上面的查询成功执行,您将获得以下输出。

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

方法5-从“客户”表中选择所有记录,其中任何字段包含单词“ sh”。

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

如果上面的查询成功执行,您将获得以下输出。

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

方法6-从“客户”表中选择所有记录,按年龄降序排列。

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

如果上面的查询成功执行,您将获得以下输出。

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