OrientDB查询记录

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

以下语句是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 ]

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

  • <Projections> – 表示想从查询中提取的数据作为结果记录集。
  • FROM – 表示要查询的对象。 这可以是一个类,群集,单个记录标识,一组记录标识。可以将所有这些对象指定为目标。
  • WHERE – 指定过滤结果集的条件。
  • LET – 表示在投影,条件或子查询中使用的上下文变量。
  • GROUP BY – 表示分组记录的字段。
  • ORDER BY – 表示按顺序排列记录的字段。
  • UNWIND – 指定展开记录集合的字段。
  • SKIP – 定义要从结果集开始跳过的记录数。
  • LIMIT – 表示结果集中记录的最大数量。
  • FETCHPLAN – 指定定义如何获取结果的策略。
  • TIMEOUT – 定义查询的最大时间(以毫秒为单位)。
  • LOCK – 定义锁定策略。 DEFAULTRECORD是可用的锁定策略。
  • PARALLEL – 对'x'并发线程执行查询。
  • NOCACHE – 定义是否要使用缓存。

示例

让我们考虑在前一章中创建的Customer表。

编号名字年龄
1Satish25
2Krishna26
3Kiran29
4Javeed21
5Raja29

尝试使用不同的select查询来从Customer表中检索数据记录。

方法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%'

如果上述查询成功执行,您将得到以下输出。

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

方法3 – 从Customer表中选择idname的记录,name以大写字母形式返回。

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 – 选择年龄在2529范围内的Customer表中的所有记录。

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 – 从Customer表中选择任何字段包含单词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 – 从Customer表中选择所有记录,按年龄按降序排列。

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

        原文作者:OrientDB教程
        原文地址: https://www.yiibai.com/orientdb/orientdb_display_records.html
        本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
    点赞