OrientDB教程

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 ] 
以下是有关上述语法中选项的详细信息。
-表示要从查询中提取的数据作为结果记录集。
FROM-表示要查询的对象。这可以是一个类、集群、单个记录 ID、一组记录 ID。您可以将所有这些对象指定为目标。
WHERE-指定过滤结果集的条件。
LET-表示在投影、条件或子查询中使用的上下文变量。
GROUP BY-表示对记录进行分组的字段。
ORDER BY-表示按顺序排列记录的字段。
UNWIND-指定在其上展开记录集合的字段。
SKIP-定义要从结果集开头跳过的记录数。
LIMIT-表示结果集中的最大记录数。
FETCHPLAN-指定定义您希望如何获取结果的策略。
TIMEOUT-定义查询的最长时间(以毫秒为单位)。
LOCK-定义锁定策略。 DEFAULT 和 RECORD 是可用的锁定策略。
PARALLEL-对"x"个并发线程执行查询。
NOCACHE-定义是否要使用缓存。

示例

让我们考虑在上一章中创建的以下 Customer 表。
姓名 年龄
萨蒂什
克里希纳
基兰
贾维德
王爷
尝试不同的选择查询以从 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%'
或者,您可以对上述示例使用以下查询。
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-从 Customer 表中选择 id,名称记录,名称为大写。
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-从 Customer 表中选择年龄在 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-从 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 
----+-----+--------+----+-------+----
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4