OrientDB - แทรกบันทึก

OrientDB เป็นฐานข้อมูล NoSQL ที่สามารถจัดเก็บเอกสารและข้อมูลเชิงกราฟ ฐานข้อมูล NoSQL ไม่มีตารางดังนั้นคุณจะแทรกข้อมูลเป็นบันทึกได้อย่างไร ที่นี่คุณสามารถดูข้อมูลตารางในรูปแบบของคลาสคุณสมบัติจุดสุดยอดและขอบความหมายคลาสก็เหมือนตารางและคุณสมบัติก็เหมือนไฟล์ในตาราง

เราสามารถกำหนดเอนทิตีทั้งหมดนี้ได้โดยใช้ schemaใน OrientDB ข้อมูลคุณสมบัติสามารถแทรกลงในคลาสได้ คำสั่งแทรกสร้างเรกคอร์ดใหม่ในสคีมาฐานข้อมูล เร็กคอร์ดสามารถเป็น schema-less หรือปฏิบัติตามกฎที่ระบุ

คำสั่งต่อไปนี้เป็นไวยากรณ์พื้นฐานของคำสั่ง 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 - ส่งคืนรหัสบันทึกของระเบียนใหม่

  • @this - ส่งคืนระเบียนใหม่ทั้งหมด

FROM - ตำแหน่งที่คุณต้องการแทรกระเบียนหรือชุดผลลัพธ์

ตัวอย่าง

ให้เราพิจารณาตารางลูกค้าที่มีฟิลด์และประเภทต่อไปนี้

ซีเนียร์ ชื่อฟิลด์ ประเภท
1 Id จำนวนเต็ม
2 ชื่อ สตริง
3 อายุ จำนวนเต็ม

คุณสามารถสร้าง 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

หลังจากดำเนินการคำสั่งทั้งหมดแล้วคุณจะได้รับชื่อตารางว่าลูกค้าพร้อมด้วย id, ชื่อและฟิลด์อายุ คุณสามารถตรวจสอบตารางได้โดยดำเนินการเลือกคิวรีในตารางลูกค้า

OrientDB มีวิธีต่างๆในการแทรกเรกคอร์ด พิจารณาตารางลูกค้าต่อไปนี้ที่มีระเบียนตัวอย่าง

ซีเนียร์ ชื่อ อายุ
1 Satish 25
2 กฤษณะ 26
3 Kiran 29
4 Javeed 21
5 ราชา 29

คำสั่งต่อไปนี้คือการแทรกระเบียนแรกลงในตารางลูกค้า

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).

คำสั่งต่อไปนี้คือการแทรกระเบียนที่สองลงในตารางลูกค้า

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).

คำสั่งต่อไปนี้คือการแทรกระเบียนที่สามลงในตารางลูกค้า

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).

คำสั่งต่อไปนี้คือการแทรกสองระเบียนถัดไปในตารางลูกค้า

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