OrientDB - 插入記錄



OrientDB 是一個 NoSQL 資料庫,可以儲存文件和麵向圖的資料。NoSQL 資料庫不包含任何表,那麼如何插入資料作為記錄呢?在這裡您可以看到以類、屬性、頂點和邊的形式呈現的表資料,這意味著類就像表,屬性就像表中的欄位。

我們可以使用 OrientDB 中的模式來定義所有這些實體。屬性資料可以插入到類中。insert 命令在資料庫模式中建立一個新記錄。記錄可以是無模式的,也可以遵循某些指定的規則。

以下語句是 Insert Record 命令的基本語法。

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

序號欄位名稱型別
1Id整數
2姓名字串
3年齡整數

您可以透過執行以下命令來建立模式(表)。

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

執行所有命令後,您將獲得名為 Customer 的表,其中包含 id、name 和 age 欄位。您可以透過對 Customer 表執行 select 查詢來檢查該表。

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

序號姓名年齡
1Satish25
2Krishna26
3Kiran29
4Javeed21
5Raja29

以下命令用於將第一條記錄插入 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   
----+-----+--------+----+-------+---- 
廣告