OrientDB插入記錄


OrientDB是一個NoSQL資料庫,可以儲存文件和面向圖形的資料。 NoSQL資料庫不包含任何表,那麼要如何將資料作為記錄插入?在這裡,您可以以類,屬性,頂點和邊的形式檢視表資料,類表就像表,屬性就像表中的檔案。

可以在OrientDB中使用模式定義所有這些實體。 屬性資料可以被插入到一個類中。 插入命令在資料庫模式中建立一條新記錄。 記錄可以無模式或遵循一些指定的規則。

以下語句是「插入記錄」命令的基本語法。

INSERT INTO [class:]<class>|cluster:<cluster>|index:<index> 
   [(<field>[,]*) VALUES (<expression>[,]*)[,]*]| 
   [SET <field> = <expression>|<sub-command>[,]*]| 
   [CONTENT {<JSON>}] 
   [RETURN <expression>]  
   [FROM <query>]

以下是有關上述語法中選項的詳細資訊。

  • SET - 定義每個欄位和值。
  • CONTENT - 定義JSON資料以設定欄位值。 這是可選的。
  • RETURN - 定義要返回的表示式而不是插入的記錄數。 最常見的用例是 -
    • @rid - 返回新記錄的記錄ID。
    • @this - 返回整個新記錄。
  • FROM - 想要插入記錄或結果集的位置。

範例

假設有一個包含以下欄位和型別的Customer表。

編號 欄位名稱 描述
1 ID Integer
2 Name String
3 Age Integer

可以通過執行以下命令來建立Schema(表)。

CREATE DATABASE PLOCAL:/opt/orientdb/databases/sales 
CREATE CLASS Customer 
CREATE PROPERTY Customer.id integer 
CREATE PROPERTY Customer.name String 
CREATE PROPERTY Customer.age integer

執行完所有命令後,將得到具有idnameage欄位的一個Customer表。 可以通過在Customer表中執行select查詢來檢查表中的資料。

OrientDB提供了插入記錄的不同方法。 考慮下面的包含範例記錄的Customer表。

編號 名字 年齡
1 Satish 25
2 Krishna 26
3 Kiran 29
4 Javeed 21
5 Raja 29

以下命令將第一條記錄插入到Customer表中。

INSERT INTO Customer (id, name, age) VALUES (01,'satish', 25)

如果上述命令成功執行,您將得到以下輸出。

Inserted record 'Customer#11:0{id:1,name:satish,age:25} v1' in 0.069000 sec(s).

以下命令將第二條記錄插入到Customer表中。

INSERT INTO Customer SET id = 02, name = 'krishna', age = 26

如果上述命令成功執行,您將得到以下輸出。

Inserted record 'Customer#11:1{id:2,age:26,name:krishna} v1' in 0.005000 sec(s).

以下命令將第三條記錄插入Customer表中。

INSERT INTO Customer CONTENT {"id": "03", "name": "kiran", "age": "29"}

如果上述命令成功執行,您將得到以下輸出。

Inserted record 'Customer#11:2{id:3,name:kiran,age:29} v1' in 0.004000 sec(s).

以下命令將插入到Customer表中的下兩條記錄。

INSERT INTO Customer (id, name, age) VALUES (04,'javeed', 21), (05,'raja', 29)

如果上述命令成功執行,您將得到以下輸出。

Inserted record '[Customer#11:3{id:4,name:javeed,age:21} v1,
Customer#11:4{id:5,name:raja,age:29} v1]' in 0.007000 sec(s).

可以通過執行以下命令來檢查是否插入了所有這些記錄。

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   
----+-----+--------+----+-------+----