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