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 ]
以下是有关上述语法中选项的详细信息。
<Projections> – 表示要从查询中提取的数据作为结果记录集。
FROM – 表示要查询的对象。这可以是一个类、集群、单个记录 ID、一组记录 ID。您可以将所有这些对象指定为目标。
WHERE – 指定过滤结果集的条件。
LET – 表示在投影、条件或子查询中使用的上下文变量。
GROUP BY – 指示对记录进行分组的字段。
ORDER BY – 指示按顺序排列记录的文件。
UNWIND – 指定在其上展开记录集合的字段。
SKIP – 定义要从结果集开头跳过的记录数。
LIMIT – 表示结果集中的最大记录数。
FETCHPLAN – 指定定义您希望如何获取结果的策略。
TIMEOUT – 定义查询的最长时间(以毫秒为单位)。
LOCK – 定义锁定策略。DEFAULT 和 RECORD 是可用的锁定策略。
PARALLEL – 对“x”个并发线程执行查询。
NOCACHE – 定义是否要使用缓存。
例子
让我们考虑在上一章中创建的以下 Customer 表。
Sr.No. | 名称 | 年龄 |
---|---|---|
1 | 萨蒂什 | 25 |
2 | 克里希纳 | 26 |
3 | 基兰 | 29 |
4 | 贾维德 | 21 |
5 | 拉惹 | 29 |
尝试不同的选择查询以从 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 ----+-----+--------+----+-------+----