OrientDB - แสดงบันทึก

เช่นเดียวกับ RDBMS OrientDB สนับสนุนการสืบค้น SQL ประเภทต่างๆเพื่อดึงข้อมูลจากฐานข้อมูล ในขณะที่ดึงข้อมูลเรามีรูปแบบหรือตัวเลือกของแบบสอบถามที่แตกต่างกันพร้อมกับคำสั่งเลือก

คำสั่งต่อไปนี้เป็นไวยากรณ์พื้นฐานของคำสั่ง SELECT

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 ]

ต่อไปนี้เป็นรายละเอียดเกี่ยวกับตัวเลือกในไวยากรณ์ด้านบน

<Projections> - ระบุข้อมูลที่คุณต้องการดึงจากแบบสอบถามเป็นชุดระเบียนผลลัพธ์

FROM- ระบุวัตถุที่ต้องการค้นหา ซึ่งอาจเป็นคลาสคลัสเตอร์ ID เรกคอร์ดเดียวชุดรหัสเรกคอร์ด คุณสามารถระบุวัตถุเหล่านี้ทั้งหมดเป็นเป้าหมาย

WHERE - ระบุเงื่อนไขที่จะกรองชุดผลลัพธ์

LET - ระบุตัวแปรบริบทที่ใช้ในการคาดการณ์เงื่อนไขหรือแบบสอบถามย่อย

GROUP BY - ระบุเขตข้อมูลเพื่อจัดกลุ่มระเบียน

ORDER BY - ระบุการยื่นเพื่อจัดเรียงบันทึกตามลำดับ

UNWIND - กำหนดฟิลด์ที่จะคลายการรวบรวมบันทึก

SKIP - กำหนดจำนวนบันทึกที่คุณต้องการข้ามจากจุดเริ่มต้นของชุดผลลัพธ์

LIMIT - ระบุจำนวนบันทึกสูงสุดในชุดผลลัพธ์

FETCHPLAN - ระบุกลยุทธ์ที่กำหนดว่าคุณต้องการดึงผลลัพธ์อย่างไร

TIMEOUT - กำหนดเวลาสูงสุดเป็นมิลลิวินาทีสำหรับแบบสอบถาม

LOCK- กำหนดกลยุทธ์การล็อค DEFAULT และ RECORD เป็นกลยุทธ์การล็อกที่ใช้ได้

PARALLEL - ดำเนินการค้นหากับเธรดพร้อมกัน 'x'

NOCACHE - กำหนดว่าคุณต้องการใช้แคชหรือไม่

ตัวอย่าง

ลองพิจารณาตารางลูกค้าต่อไปนี้ที่สร้างขึ้นในบทที่แล้ว

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

ลองใช้แบบสอบถามแบบเลือกอื่นเพื่อดึงข้อมูลบันทึกจากตารางลูกค้า

Method 1 - คุณสามารถใช้แบบสอบถามต่อไปนี้เพื่อเลือกระเบียนทั้งหมดจากตารางลูกค้า

orientdb {db = demo}> 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   
----+-----+--------+----+-------+----

Method 2 - เลือกบันทึกทั้งหมดที่มีชื่อขึ้นต้นด้วยตัวอักษร 'k'.

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

หรือคุณสามารถใช้แบบสอบถามต่อไปนี้สำหรับตัวอย่างข้างต้น

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

หากดำเนินการค้นหาข้างต้นสำเร็จคุณจะได้ผลลัพธ์ดังต่อไปนี้

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

Method 3 - เลือก id บันทึกชื่อจากตารางลูกค้าที่มีชื่อเป็นตัวพิมพ์ใหญ่

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

หากดำเนินการค้นหาข้างต้นสำเร็จคุณจะได้ผลลัพธ์ดังต่อไปนี้

----+--------+----+------- 
#   |@CLASS  |id  |name     
----+--------+----+------- 
0   |null    |1   |SATISH   
1   |null    |2   |KRISHNA  
2   |null    |3   |KIRAN   
3   |null    |4   |JAVEED  
4   |null    |5   |RAJA      
----+--------+----+-------

Method 4 - เลือกบันทึกทั้งหมดจากตารางลูกค้าที่อายุอยู่ในช่วง 25 ถึง 29

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

หากดำเนินการค้นหาข้างต้นสำเร็จคุณจะได้ผลลัพธ์ดังต่อไปนี้

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

Method 5 - เลือกระเบียนทั้งหมดจากตารางลูกค้าที่ฟิลด์ใด ๆ มีคำว่า 'sh'

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

หากดำเนินการค้นหาข้างต้นสำเร็จคุณจะได้ผลลัพธ์ดังต่อไปนี้

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

Method 6 - เลือกบันทึกทั้งหมดจากตารางลูกค้าเรียงตามอายุจากมากไปหาน้อย

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

หากดำเนินการค้นหาข้างต้นสำเร็จคุณจะได้ผลลัพธ์ดังต่อไปนี้

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