OrientDB - ฟังก์ชัน

บทนี้อธิบายการอ้างอิงที่สมบูรณ์ของฟังก์ชันประเภทต่างๆใน OrientDB ตารางต่อไปนี้กำหนดรายการฟังก์ชันซึ่งแบ่งตามฟังก์ชันการทำงาน

ฟังก์ชั่นกราฟ

ซีเนียร์ ชื่อฟังก์ชันและคำอธิบาย
1

Out():

รับจุดยอดขาออกที่อยู่ติดกันโดยเริ่มจากระเบียนปัจจุบันเป็น Vertex

Syntax - ออก ([<label-1>] [, <label-n>] *)

2

In():

รับจุดยอดขาเข้าที่อยู่ติดกันโดยเริ่มจากระเบียนปัจจุบันเป็น Vertex

Syntax - ใน ([<label-1>] [, <label-n>] *)

3

Both():

รับจุดยอดขาออกและขาเข้าที่อยู่ติดกันโดยเริ่มจากระเบียนปัจจุบันเป็น Vertex

Syntax - ทั้ง ([<label1>] [, <label-n>] *)

4

outE():

รับขอบขาออกที่อยู่ติดกันโดยเริ่มจากระเบียนปัจจุบันเป็น Vertex

Syntax - outE ([<label1>] [, <label-n>] *)

5

inE():

รับขอบขาเข้าที่อยู่ติดกันโดยเริ่มจากระเบียนปัจจุบันเป็น Vertex

Syntax - inE ([<label1>] [, <label-n>] *)

6

bothE():

รับขอบขาออกและขาเข้าที่อยู่ติดกันโดยเริ่มจากระเบียนปัจจุบันเป็น Vertex

Syntax - ทั้ง E ([<label1>] [, <label-n>] *)

7

outV():

รับจุดยอดขาออกโดยเริ่มจากบันทึกปัจจุบันเป็น Edge

Syntax - outV ()

8

inV():

รับจุดยอดที่เข้ามาจากบันทึกปัจจุบันเป็น Edge

Syntax - inV ()

9

traversedElement():

ส่งคืนอิลิเมนต์ traversed ในคำสั่ง Traverse

Syntax - traversedElement (<index> [, <items>])

10

traversedVertex():

ส่งกลับจุดยอดที่ข้ามผ่านในคำสั่ง Traverse

Syntax - traversedVertex (<index> [, <items>])

11

traversedEdge():

ส่งกลับขอบที่ข้ามในคำสั่ง Traverse

Syntax - traversedEdge (<index> [, <items>])

12

shortestPath():

ส่งกลับเส้นทางที่สั้นที่สุดระหว่างจุดยอดสองจุด ทิศทางสามารถเป็น OUT (ค่าเริ่มต้น), IN หรือ BOTH

Synatx - shortestPath (<sourceVertex>, <destinationVertex> [, <direction> [, <edgeClassName>]])

13

dijkstra():

ส่งคืนเส้นทางที่ถูกที่สุดระหว่างจุดยอดสองจุดโดยใช้อัลกอริทึม Dijkstra

Syntax - dijkstra (<sourceVertex>, <destinationVertex>, <weightEdgeFieldName> [, <direction>])

ลองใช้ฟังก์ชันกราฟร่วมกับคำค้นหาต่อไปนี้

ดำเนินการค้นหาต่อไปนี้เพื่อรับจุดยอดขาออกทั้งหมดจากจุดยอดรถทั้งหมด

orientdb {db = demo}>SELECT out() from Vehicle

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

---+----------+--------- 
 # | @class   | out 
---+----------+--------- 
 0 | Vehicle  | #11:2 
 1 | Vehicle  | #13:1 
 2 | Vehicle  | #13:4 
---+----------+---------

ดำเนินการค้นหาต่อไปนี้เพื่อรับจุดยอดทั้งขาเข้าและขาออกจากจุดยอด # 11: 3

orientdb {db = demo}>SELECT both() FROM #11:3

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

---+----------+--------+------- 
 # | @class   | out    | in  
---+----------+--------+------- 
 0 | Vehicle  | #13:2  | #10:2   
 ---+----------+-------+-------

ฟังก์ชันคณิตศาสตร์

ซีเนียร์ ชื่อฟังก์ชันและคำอธิบาย
1

eval():

ประเมินนิพจน์ระหว่างอัญประกาศ (หรือเครื่องหมายคำพูดคู่)

Syntax - eval ('<นิพจน์>')

2

min():

ส่งคืนค่าต่ำสุด หากเรียกใช้ด้วยพารามิเตอร์มากกว่าหนึ่งพารามิเตอร์จะส่งคืนค่าอาร์กิวเมนต์ขั้นต่ำระหว่างอาร์กิวเมนต์ทั้งหมด

Syntax - นาที (<field> [, <field-n>] *)

3

max():

ส่งคืนค่าสูงสุด หากเรียกใช้ด้วยพารามิเตอร์มากกว่าหนึ่งพารามิเตอร์ให้ส่งกลับค่าสูงสุดระหว่างอาร์กิวเมนต์ทั้งหมด

Syntax - สูงสุด (<field> [, <field-n>] *)

4

sum()

ส่งคืนผลรวมของค่าทั้งหมดที่ส่งคืน

Syntax - ผลรวม (<field>)

5

abs():

ส่งคืนค่าสัมบูรณ์ ใช้งานได้กับ Integer, Long, Short, Double, Float, BigInteger, BigDecimal, null

Syntax - หน้าท้อง (<field>)

6

avg():

ส่งคืนค่าเฉลี่ย

Syntax - เฉลี่ย (<field>)

7

count():

นับระเบียนที่ตรงกับเงื่อนไขแบบสอบถาม หากไม่ได้ใช้ * เป็นฟิลด์เรกคอร์ดจะถูกนับก็ต่อเมื่อเนื้อหาไม่เป็นโมฆะ

Syntax - นับ (<field>)

8

mode():

ส่งคืนค่าที่เกิดขึ้นพร้อมกับความถี่ที่มากที่สุด Nulls จะถูกละเว้นในการคำนวณ

Syntax - โหมด (<field>)

9

median():

ส่งคืนค่ากลางหรือค่า interpolated ที่แสดงถึงค่ากลางหลังจากจัดเรียงค่าแล้ว Nulls จะถูกละเว้นในการคำนวณ

Syntax - ค่ามัธยฐาน (<field>)

10

percentile():

ส่งคืนเปอร์เซ็นไทล์ที่ n Null จะถูกละเว้นในการคำนวณ

Syntax - เปอร์เซ็นไทล์ (<field> [, <quantile-n>] *)

11

variance()

ส่งกลับค่าความแปรปรวนกลาง: ค่าเฉลี่ยของผลต่างกำลังสองจากค่าเฉลี่ย

Syntax - ความแปรปรวน (<field>)

12

stddev()

ส่งกลับค่าเบี่ยงเบนมาตรฐาน: การวัดว่าค่ากระจายออกเป็นอย่างไร Nulls จะถูกละเว้นในการคำนวณ

Syntax - stddev (<ฟิลด์>)

ลองใช้ฟังก์ชันทางคณิตศาสตร์โดยใช้แบบสอบถามต่อไปนี้

ดำเนินการค้นหาต่อไปนี้เพื่อรับผลรวมของเงินเดือนของพนักงานทั้งหมด

orientdb {db = demo}>SELECT SUM(salary) FROM Employee

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

---+----------+--------- 
 # | @CLASS   | sum 
---+----------+--------- 
 0 | null     | 150000 
---+----------+---------

ดำเนินการค้นหาต่อไปนี้เพื่อรับเงินเดือนเฉลี่ยของพนักงานทั้งหมด

orientdb {db = demo}>SELECT avg(salary) FROM Employee

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

---+----------+--------- 
 # | @CLASS   | avg 
---+----------+--------- 
 0 | null     | 25 
---+----------+---------

ฟังก์ชันคอลเลกชัน

ซีเนียร์ ชื่อฟังก์ชันและคำอธิบาย
1

set():

เพิ่มค่าให้กับชุด หากค่าเป็นคอลเล็กชันจะรวมเข้ากับชุดนั้นมิฉะนั้นจะเพิ่ม <value>

Syntax - ตั้งค่า (<ฟิลด์>)

2

map():

เพิ่มมูลค่าให้กับแผนที่ในครั้งแรกที่สร้างแผนที่ หาก <value> เป็นแผนที่จะรวมเข้ากับแผนที่มิฉะนั้นคู่ <key> และ <value> จะถูกเพิ่มลงในแผนที่เป็นรายการใหม่

Syntax - แผนที่ (<key>, <value>)

3

ist():

เพิ่มค่าลงในรายการในครั้งแรกที่สร้างรายการ หาก <value> เป็นคอลเล็กชันจะรวมเข้ากับรายการมิฉะนั้น <value> จะถูกเพิ่มในรายการ

Syntax - รายการ (<field>)

4

difference():

ทำงานเป็นแบบรวมหรือแบบอินไลน์ หากมีการส่งผ่านเพียงอาร์กิวเมนต์เดียวจากนั้นจะรวมมิฉะนั้นจะดำเนินการและส่งกลับค่าความแตกต่างระหว่างคอลเล็กชันที่ได้รับเป็นพารามิเตอร์

Syntax - ความแตกต่าง (<field> [, <field-n>] *)

5

first():

ดึงเฉพาะรายการแรกของเขตข้อมูลหลายค่า (อาร์เรย์คอลเลกชันและแผนที่) สำหรับชนิดที่ไม่ใช่หลายค่าให้ส่งคืนค่า

Syntax - แรก (<field>)

6

intersect():

ทำงานเป็นแบบรวมหรือแบบอินไลน์ หากมีการส่งผ่านเพียงอาร์กิวเมนต์เดียวจากนั้นจะรวมหรือดำเนินการและส่งกลับค่า INTERACTION ของคอลเล็กชันที่ได้รับเป็นพารามิเตอร์

Syntax - ตัดกัน (<field> [, <field-n>] *)

7

distinct():

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

Syntax - แตกต่าง (<field>)

8

expand():

ฟังก์ชันนี้มีสองความหมาย

  • เมื่อใช้ในฟิลด์คอลเลกชันจะคลายคอลเลกชันในฟิลด์และใช้เป็นผลลัพธ์

  • เมื่อใช้กับฟิลด์ลิงก์ (RID) จะขยายเอกสารที่ลิงก์นั้นชี้

Syntax - ขยาย (<field>)

9

unionall():

ทำงานเป็นแบบรวมหรือแบบอินไลน์ หากมีการส่งผ่านอาร์กิวเมนต์เพียงรายการเดียวจากนั้นจะรวมมิฉะนั้นจะดำเนินการและส่งคืน UNION ของคอลเล็กชันทั้งหมดที่ได้รับเป็นพารามิเตอร์ ยังทำงานโดยไม่มีค่าคอลเลกชัน

Syntax - ยูเนี่ยนอล (<field> [, <field-n>] *)

10

flatten():

แยกคอลเล็กชันในฟิลด์และใช้เป็นผลลัพธ์ เลิกใช้แล้วให้ใช้ expand () แทน

Syntax - แบน (<field>)

11

last():

ดึงเฉพาะรายการสุดท้ายของเขตข้อมูลหลายค่า (อาร์เรย์คอลเลกชันและแผนที่) สำหรับชนิดที่ไม่ใช่หลายค่าให้ส่งคืนค่า

Syntax - สุดท้าย (<field>)

12

symmetricDifference():

ทำงานเป็นแบบรวมหรือแบบอินไลน์ หากมีการส่งผ่านอาร์กิวเมนต์เดียวเท่านั้นจากนั้นจะรวมมิฉะนั้นจะดำเนินการและส่งกลับค่า SYMMETRIC DIFFERENCE ระหว่างคอลเล็กชันที่ได้รับเป็นพารามิเตอร์

Syntax - สมมาตร (<field> [, <field-n>] *)

ลองใช้ฟังก์ชันการเก็บรวบรวมโดยใช้คำค้นหาต่อไปนี้

ดำเนินการค้นหาต่อไปนี้เพื่อรับชุดครูที่สอนชั้น 9

orientdb {db = demo}>SELECT ID, set(teacher.id) AS teacherID from classess where class_id = 9

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

---+----------+--------+-------------------------- 
 # | @CLASS   | id     | TeacherID 
---+----------+--------+-------------------------- 
 0 | null     | 9     |   1201, 1202, 1205, 1208 
---+----------+-------+---------------------------

ฟังก์ชันอื่น ๆ

ซีเนียร์ ชื่อฟังก์ชันและคำอธิบาย
1

date():

ส่งคืนวันที่ที่จัดรูปแบบสตริง <date-as-string> คือวันที่ในรูปแบบสตริงและ <format> คือรูปแบบวันที่ตามกฎเหล่านี้

Syntax - วันที่ (<date-as-string> [<format>] [, <timezone>])

2

sysdate():

ส่งคืนวันที่และเวลาปัจจุบัน

Syntax - sysdate ([<format>] [, <timezone>])

3

format():

จัดรูปแบบค่าโดยใช้หลักการ String.format ()

Syntax - รูปแบบ (<format> [, <arg1>] (, <arg-n>] *. md)

4

distance():

ส่งกลับระยะห่างระหว่างจุดสองจุดในโลกโดยใช้อัลกอริทึม Haversine พิกัดต้องเป็นองศา

Syntax - ระยะทาง (<x-field>, <y-field>, <x-value>, <y-value>)

5

ifnull():

ส่งคืนฟิลด์ / ค่าที่ส่งผ่าน (หรือพารามิเตอร์ทางเลือก return_value_if_not_null) หากฟิลด์ / ค่าไม่เป็นโมฆะจะส่งคืน return_value_if_null

Syntax - ifnull (<ฟิลด์ | ค่า>, <return_value_if_null> [, <return_value_if_not_null>] (, <ฟิลด์ & .md # 124; ค่า>] *)

6

coalesce():

ส่งคืนฟิลด์ / ค่าแรกไม่ใช่พารามิเตอร์ null หากไม่มีฟิลด์ / ค่าใดที่ไม่ใช่ค่าว่างให้ส่งกลับค่า null

Syntax - รวมกัน (<ฟิลด์ | ค่า> [, <ฟิลด์ -n | ค่า -n>] *)

7

uuid():

สร้าง UUID เป็นค่า 128 บิตโดยใช้ตัวแปร Leach-Salz

Syntax - uuid ()

8

if():

ประเมินเงื่อนไข (พารามิเตอร์ตัวแรก) และส่งกลับพารามิเตอร์ที่สองหากเงื่อนไขเป็นจริงมิฉะนั้นเงื่อนไขที่สาม

Syntax - ถ้า (<expression>, <result-if-true>, <result-if-false>)

ลองใช้ฟังก์ชันอื่น ๆ โดยใช้แบบสอบถามต่อไปนี้

ดำเนินการสอบถามต่อไปนี้เพื่อเรียนรู้วิธีดำเนินการนิพจน์ if

orientdb {db = demo}> SELECT if(eval("name = 'satish'"), "My name is satish", 
"My name is not satish") FROM Employee

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

----+--------+----------------------- 
#   |@CLASS  | IF 
----+--------+----------------------- 
0   |null    |My name is satish  
1   |null    |My name is not satish 
2   |null    |My name is not satish  
3   |null    |My name is not satish  
4   |null    |My name is not satish  
----+--------+------------------------

ดำเนินการค้นหาต่อไปนี้เพื่อรับวันที่ของระบบ

orientdb {db = demo}> SELECT SYSDATE() FROM Employee

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

----+--------+----------------------- 
#   |@CLASS  | SYSDATE 
----+--------+----------------------- 
0   |null    |2016-02-10 12:05:06 
1   |null    |2016-02-10 12:05:06 
2   |null    |2016-02-10 12:05:06 
3   |null    |2016-02-10 12:05:06 
4   |null    |2016-02-10 12:05:06 
----+--------+------------------------

เมื่อใช้ฟังก์ชันนี้อย่างละเอียดคุณสามารถจัดการข้อมูล OrientDB ได้อย่างง่ายดาย