OrientDB顯示記錄

2018-12-22 14:37 更新

與RDBMS類似,OrientDB支持不同類型的SQL查詢以從數(shù)據(jù)庫(kù)檢索記錄。 在檢索記錄時(shí),我們有不同的查詢變體或選項(xiàng)以及select語(yǔ)句。
以下語(yǔ)句是SELECT命令的基本語(yǔ)法。

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 ] 

以下是上述語(yǔ)法中的選項(xiàng)的詳細(xì)信息。

<Projections> - 表示要從查詢中提取為結(jié)果記錄集的數(shù)據(jù)。

FROM:表示要查詢的對(duì)象。這可以是類,集群,單個(gè)記錄ID,一組記錄ID。您可以將所有這些對(duì)象指定為目標(biāo)。

WHERE:指定要過(guò)濾結(jié)果集的條件。

LET:表示在投影,條件或子查詢中使用的上下文變量。

GROUP BY:表示對(duì)記錄進(jìn)行分組的字段。

ORDER BY:表示要按順序排列記錄的文件。

UNWIND:指定要在其上展開(kāi)記錄集合的字段。

SKIP:定義要從結(jié)果集開(kāi)始跳過(guò)的記錄數(shù)。

LIMIT: 表示結(jié)果集中的最大記錄數(shù)。

FETCHPLAN:指定定義如何獲取結(jié)果的策略。

TIMEOUT: 定義查詢的最大時(shí)間(以毫秒為單位)。

LOCK:定義鎖定策略。 DEFAULT和RECORD是可用的鎖策略。

PARALLEL:針對(duì)“x”個(gè)并發(fā)線程執(zhí)行查詢。

NOCACHE:定義是否要使用緩存。

讓我們考慮在上一章中創(chuàng)建的以下Customer表。

編號(hào)名稱年齡
1Satish25
2Krishna26
3Kiran29
4Javeed21
Raja29

嘗試不同的選擇查詢以從Customer表檢索數(shù)據(jù)記錄。
方法1 - 您可以使用以下查詢從Customer表中選擇所有記錄。

orientdb {db = demo}> SELECT FROM Customer 

如果上述查詢成功執(zhí)行,您將得到以下輸出。

----+-----+--------+----+-------+---- 
#   |@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'開(kāi)頭的所有記錄。

orientdb {db = demo}> SELECT FROM Customer WHERE name LIKE 'k%'

或者您可以使用下面的查詢上面的例子。

orientdb {db = demo}> SELECT FROM Customer WHERE name.left(1) = 'k'

如果上面的查詢執(zhí)行成功,你會(huì)得到下面的輸出。

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

方法3 -選擇ID,從大寫(xiě)字母名稱Customer表名稱記錄。

orientdb {db = demo}> SELECT id, name.toUpperCase() FROM Customer

如果上面的查詢執(zhí)行成功,你會(huì)得到下面的輸出。

----+--------+----+------- 
#   |@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的范圍內(nèi)。

orientdb {db = demo}> SELECT FROM Customer WHERE age in [25,29]

如果上面的查詢執(zhí)行成功,你會(huì)得到下面的輸出。

----+-----+--------+----+-------+---- 
#   |@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'。

orientdb {db = demo}> SELECT FROM Customer WHERE ANY() LIKE '%sh%' 

如果上面的查詢執(zhí)行成功,你會(huì)得到下面的輸出。

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:1|Customer|2   |krishna|26   
----+-----+--------+----+-------+---- 

方法6 - 從客戶表中選擇所有記錄,按年齡降序排列。

orientdb {db = demo}> SELECT FROM Customer ORDER BY age DESC 

如果上面的查詢執(zhí)行成功,你會(huì)得到下面的輸出。

----+-----+--------+----+-------+---- 
#   |@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 
----+-----+--------+----+-------+---- 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)