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 表。

序號姓名年齡
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%'

或者您可以對上述示例使用以下查詢。

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、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 - 從 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 
----+-----+--------+----+-------+---- 
廣告