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