在检索记录时,我们有不同的查询变体或选项以及select语句,以下语句是SELECT命令的基本语法。
代码语言:javascript复制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:表示要查询的对象。这可以是类,集群,单个记录ID,一组记录ID。您可以将所有这些对象指定为目标。
WHERE:指定要过滤结果集的条件。
LET:表示在投影,条件或子查询中使用的上下文变量。
GROUP BY:表示对记录进行分组的字段。
ORDER BY:表示要按顺序排列记录的文件。
UNWIND:指定要在其上展开记录集合的字段。
SKIP:定义要从结果集开始跳过的记录数。
LIMIT: 表示结果集中的最大记录数。
FETCHPLAN:指定定义如何获取结果的策略。
TIMEOUT: 定义查询的最大时间(以毫秒为单位)。
LOCK:定义锁定策略。 DEFAULT和RECORD是可用的锁策略。
PARALLEL:针对“x”个并发线程执行查询。
NOCACHE:定义是否要使用缓存。
例
让我们考虑在上一章中创建的以下Customer表。
编号 | 名称 | 年龄 |
---|---|---|
1 | Satish | 25 |
2 | Krishna | 26 |
3 | Kiran | 29 |
4 | Javeed | 21 |
五 | Raja | 29 |
尝试不同的选择查询以从Customer表检索数据记录。 方法1 - 您可以使用以下查询从Customer表中选择所有记录。
代码语言:javascript复制orientdb {db = demo}> SELECT FROM Customer
如果上述查询成功执行,您将得到以下输出。
代码语言:javascript复制---- ----- -------- ---- ------- ----
# |@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'开头的所有记录。
代码语言:javascript复制orientdb {db = demo}> SELECT FROM Customer WHERE name LIKE 'k%'
或者您可以使用下面的查询上面的例子。
代码语言:javascript复制orientdb {db = demo}> SELECT FROM Customer WHERE name.left(1) = 'k'
如果上面的查询执行成功,你会得到下面的输出。
代码语言:javascript复制---- ----- -------- ---- ------- ----
# |@RID |@CLASS |id |name |age
---- ----- -------- ---- ------- ----
0 |#11:1|Customer|2 |krishna|26
1 |#11:2|Customer|3 |kiran |29
---- ----- -------- ---- ------- ----
方法3 -选择ID,从大写字母名称Customer表名称记录。
代码语言:javascript复制orientdb {db = demo}> SELECT id, name.toUpperCase() FROM Customer
如果上面的查询执行成功,你会得到下面的输出。
代码语言:javascript复制---- -------- ---- -------
# |@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的范围内。
代码语言:javascript复制orientdb {db = demo}> SELECT FROM Customer WHERE age in [25,29]
如果上面的查询执行成功,你会得到下面的输出。
代码语言:javascript复制---- ----- -------- ---- ------- ----
# |@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'。
代码语言:javascript复制orientdb {db = demo}> SELECT FROM Customer WHERE ANY() LIKE '%sh%'
如果上面的查询执行成功,你会得到下面的输出。
代码语言:javascript复制---- ----- -------- ---- ------- ----
# |@RID |@CLASS |id |name |age
---- ----- -------- ---- ------- ----
0 |#11:0|Customer|1 |satish |25
1 |#11:1|Customer|2 |krishna|26
---- ----- -------- ---- ------- ----
方法6 - 从客户表中选择所有记录,按年龄降序排列。
代码语言:javascript复制orientdb {db = demo}> SELECT FROM Customer ORDER BY age DESC
如果上面的查询执行成功,你会得到下面的输出。
代码语言:javascript复制---- ----- -------- ---- ------- ----
# |@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
---- ----- -------- ---- ------- ----