OrientDB - Chức năng
Chương này giải thích sự tham khảo đầy đủ về các loại chức năng khác nhau trong OrientDB. Bảng sau đây xác định danh sách các chức năng, được phân loại theo chức năng của chúng.
Hàm đồ thị
Sr.No. | Tên & Mô tả chức năng |
---|---|
1 | Out(): Nhận các đỉnh đi ra liền kề bắt đầu từ bản ghi hiện tại là Vertex. Syntax - out ([<label-1>] [, <label-n>] *) |
2 | In(): Nhận các đỉnh đến liền kề bắt đầu từ bản ghi hiện tại là Vertex. Syntax - trong ([<label-1>] [, <label-n>] *) |
3 | Both(): Nhận các đỉnh đi và đến liền kề bắt đầu từ bản ghi hiện tại là Vertex. Syntax - cả hai ([<label1>] [, <label-n>] *) |
4 | outE(): Nhận các cạnh đi liền kề bắt đầu từ bản ghi hiện tại là Vertex. Syntax - outE ([<label1>] [, <label-n>] *) |
5 | inE(): Nhận các cạnh đến liền kề bắt đầu từ bản ghi hiện tại là Vertex. Syntax - inE ([<label1>] [, <label-n>] *) |
6 | bothE(): Nhận các cạnh đi và đến liền kề bắt đầu từ bản ghi hiện tại là Vertex. Syntax - bothE ([<label1>] [, <label-n>] *) |
7 | outV(): Nhận các đỉnh đi ra bắt đầu từ bản ghi hiện tại là Edge. Syntax - outV () |
số 8 | inV(): Lấy các đỉnh đến từ bản ghi hiện tại làm Edge. Syntax - inV () |
9 | traversedElement(): Trả về (các) phần tử được duyệt trong các lệnh Traverse. Syntax - traversedElement (<index> [, <items>]) |
10 | traversedVertex(): Trả lại (các) đỉnh đã duyệt trong các lệnh Traverse. Syntax - traversedVertex (<index> [, <items>]) |
11 | traversedEdge(): Trả về (các) cạnh được duyệt trong các lệnh Traverse. Syntax - traversedEdge (<index> [, <items>]) |
12 | shortestPath(): Trả về đường đi ngắn nhất giữa hai đỉnh. Hướng có thể là OUT (mặc định), IN hoặc BOTH. Synatx - shortPath (<sourceVertex>, <destinationVertex> [, <direction> [, <edgeClassName>]]) |
13 | dijkstra(): Trả về đường đi rẻ nhất giữa hai đỉnh bằng cách sử dụng thuật toán Dijkstra. Syntax - dijkstra (<sourceVertex>, <destinationVertex>, <weightEdgeFieldName> [, <direction>]) |
Hãy thử một số hàm đồ thị cùng với các truy vấn sau.
Thực hiện truy vấn sau để lấy tất cả các đỉnh đi từ tất cả các đỉnh của xe.
orientdb {db = demo}>SELECT out() from Vehicle
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
---+----------+---------
# | @class | out
---+----------+---------
0 | Vehicle | #11:2
1 | Vehicle | #13:1
2 | Vehicle | #13:4
---+----------+---------
Thực hiện truy vấn sau để lấy cả đỉnh đến và đỉnh đi từ đỉnh # 11: 3.
orientdb {db = demo}>SELECT both() FROM #11:3
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
---+----------+--------+-------
# | @class | out | in
---+----------+--------+-------
0 | Vehicle | #13:2 | #10:2
---+----------+-------+-------
Các hàm toán học
Sr.No. | Tên & Mô tả chức năng |
---|---|
1 | eval(): Đánh giá biểu thức giữa các dấu ngoặc kép (hoặc dấu ngoặc kép). Syntax - eval ('<biểu thức>') |
2 | min(): Trả về giá trị nhỏ nhất. Nếu được gọi với nhiều hơn một tham số, thì nó trả về giá trị đối số tối thiểu giữa tất cả các đối số. Syntax - min (<field> [, <field-n>] *) |
3 | max(): Trả về giá trị lớn nhất. Nếu được gọi với nhiều hơn một tham số, thì trả về giá trị lớn nhất giữa tất cả các đối số. Syntax - max (<trường> [, <trường-n>] *) |
4 | sum() Trả về tổng của tất cả các giá trị được trả về. Syntax - sum (<trường>) |
5 | abs(): Trả về giá trị tuyệt đối. Nó hoạt động với Integer, Long, Short, Double, Float, BigInteger, BigDecimal, null. Syntax - abs (<trường>) |
6 | avg(): Trả về giá trị trung bình. Syntax - avg (<trường>) |
7 | count(): Đếm bản ghi phù hợp với điều kiện truy vấn. Nếu * không được sử dụng làm trường, thì bản ghi sẽ chỉ được tính nếu nội dung không rỗng. Syntax - count (<trường>) |
số 8 | mode(): Trả về giá trị xuất hiện với tần suất lớn nhất. Các giá trị rỗng được bỏ qua trong phép tính. Syntax - mode (<trường>) |
9 | median(): Trả về giá trị giữa hoặc giá trị nội suy đại diện cho giá trị giữa sau khi các giá trị được sắp xếp. Các giá trị rỗng được bỏ qua trong phép tính. Syntax - trung vị (<trường>) |
10 | percentile(): Trả về phân vị thứ n. Null được bỏ qua trong phép tính. Syntax - phân vị (<trường> [, <quantile-n>] *) |
11 | variance() Trả về phương sai giữa: Giá trị trung bình của chênh lệch bình phương so với giá trị trung bình.
Syntax - phương sai (<trường>) |
12 | stddev() Trả về độ lệch chuẩn: Thước đo mức độ dàn trải của các giá trị. Các giá trị rỗng được bỏ qua trong phép tính. Syntax - stddev (<trường>) |
Hãy thử một số hàm toán học bằng cách sử dụng các truy vấn sau.
Thực hiện truy vấn sau để lấy tổng tiền lương của tất cả nhân viên.
orientdb {db = demo}>SELECT SUM(salary) FROM Employee
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
---+----------+---------
# | @CLASS | sum
---+----------+---------
0 | null | 150000
---+----------+---------
Thực hiện truy vấn sau để lấy mức lương trung bình của tất cả nhân viên.
orientdb {db = demo}>SELECT avg(salary) FROM Employee
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
---+----------+---------
# | @CLASS | avg
---+----------+---------
0 | null | 25
---+----------+---------
Chức năng Bộ sưu tập
Sr.No. | Tên & Mô tả chức năng |
---|---|
1 | set(): Thêm một giá trị vào một tập hợp. Nếu giá trị là một tập hợp, thì nó được hợp nhất với tập hợp, nếu không thì <giá trị> sẽ được thêm vào. Syntax - set (<trường>) |
2 | map(): Thêm một giá trị vào bản đồ lần đầu tiên bản đồ được tạo. Nếu <giá trị> là một bản đồ, thì nó được hợp nhất với bản đồ, nếu không thì cặp <khóa> và <giá trị> được thêm vào bản đồ dưới dạng mục nhập mới. Syntax - bản đồ (<khóa>, <giá trị>) |
3 | ist(): Thêm giá trị vào danh sách lần đầu tiên danh sách được tạo. Nếu <giá trị> là một tập hợp, thì nó được hợp nhất với danh sách, nếu không thì <giá trị> sẽ được thêm vào danh sách. Syntax - danh sách (<trường>) |
4 | difference(): Hoạt động dưới dạng tổng hợp hoặc nội tuyến. Nếu chỉ một đối số được truyền thì tổng hợp, ngược lại sẽ thực thi và trả về SỰ KHÁC BIỆT giữa các tập hợp nhận được dưới dạng tham số. Syntax - khác biệt (<trường> [, <trường-n>] *) |
5 | first(): Chỉ truy xuất mục đầu tiên của các trường đa giá trị (mảng, bộ sưu tập và bản đồ). Đối với các loại không có nhiều giá trị, chỉ trả về giá trị. Syntax - đầu tiên (<trường>) |
6 | intersect(): Hoạt động dưới dạng tổng hợp hoặc nội tuyến. Nếu chỉ một đối số được truyền thì tổng hợp, ngược lại sẽ thực thi và trả về, TƯƠNG TÁC của các tập hợp nhận được dưới dạng tham số. Syntax - giao nhau (<trường> [, <trường-n>] *) |
7 | distinct(): Chỉ truy xuất các mục nhập dữ liệu duy nhất tùy thuộc vào trường bạn đã chỉ định làm đối số. Sự khác biệt chính so với SQL DISTINCT tiêu chuẩn là với OrientDB, một hàm có dấu ngoặc đơn và chỉ một trường có thể được chỉ định. Syntax - khác biệt (<trường>) |
số 8 | expand(): Hàm này có hai nghĩa
Syntax - mở rộng (<trường>) |
9 | unionall(): Hoạt động dưới dạng tổng hợp hoặc nội tuyến. Nếu chỉ một đối số được truyền thì tổng hợp, nếu không sẽ thực thi và trả về một UNION của tất cả các tập hợp nhận được dưới dạng tham số. Cũng hoạt động với không có giá trị bộ sưu tập. Syntax - unionall (<trường> [, <trường-n>] *) |
10 | flatten(): Trích xuất bộ sưu tập trong trường và sử dụng nó. Nó không được dùng nữa, hãy sử dụng expand () để thay thế. Syntax - làm phẳng (<trường>) |
11 | last(): Chỉ truy xuất mục cuối cùng của các trường đa giá trị (mảng, tập hợp và bản đồ). Đối với các loại không có nhiều giá trị, chỉ trả về giá trị. Syntax - cuối cùng (<trường>) |
12 | symmetricDifference(): Hoạt động dưới dạng tổng hợp hoặc nội tuyến. Nếu chỉ một đối số được truyền thì tổng hợp, nếu không sẽ thực thi và trả về, SỰ KHÁC BIỆT ĐỒNG BỘ giữa các tập hợp nhận được dưới dạng tham số. Syntax --MetricDifference (<trường> [, <trường-n>] *) |
Hãy thử một số hàm thu thập bằng các truy vấn sau.
Thực hiện câu truy vấn sau để lấy bộ giáo viên, dạy lớp 9.
orientdb {db = demo}>SELECT ID, set(teacher.id) AS teacherID from classess where class_id = 9
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
---+----------+--------+--------------------------
# | @CLASS | id | TeacherID
---+----------+--------+--------------------------
0 | null | 9 | 1201, 1202, 1205, 1208
---+----------+-------+---------------------------
Các chức năng khác
Sr.No. | Tên & Mô tả chức năng |
---|---|
1 | date(): Trả về định dạng ngày tháng cho một chuỗi. <date-as-string> là ngày ở định dạng chuỗi và <format> là định dạng ngày tuân theo các quy tắc này. Syntax - date (<date-as-string> [<format>] [, <timezone>]) |
2 | sysdate(): Trả về ngày và giờ hiện tại. Syntax - sysdate ([<format>] [, <timezone>]) |
3 | format(): Định dạng một giá trị bằng cách sử dụng quy ước String.format (). Syntax - định dạng (<định dạng> [, <arg1>] (, <arg-n>] *. Md) |
4 | distance(): Trả về khoảng cách giữa hai điểm trên hình ảnh địa cầu bằng thuật toán Haversine. Tọa độ phải là độ. Syntax - khoảng cách (<x-field>, <y-field>, <x-value>, <y-value>) |
5 | ifnull(): Trả về trường / giá trị đã truyền (hoặc tham số tùy chọn return_value_if_not_null). Nếu trường / giá trị không phải là null, nó trả về giá trị return_value_if_null. Syntax - ifnull (<field | value>, <return_value_if_null> [, <return_value_if_not_null>] (, <field & .md # 124; value>] *) |
6 | coalesce(): Trả về trường / giá trị đầu tiên không phải là tham số rỗng. Nếu không có trường / giá trị nào không phải là null, trả về null. Syntax - Coalesce (<field | value> [, <field-n | value-n>] *) |
7 | uuid(): Tạo UUID dưới dạng giá trị 128 bit bằng cách sử dụng biến thể Leach-Salz. Syntax - uuid () |
số 8 | if(): Đánh giá một điều kiện (tham số đầu tiên) và trả về tham số thứ hai nếu điều kiện là đúng, tham số thứ ba nếu không. Syntax - if (<biểu thức>, <result-if-true>, <result-if-false>) |
Hãy thử một số hàm khác bằng các truy vấn sau.
Thực thi truy vấn sau để tìm hiểu cách thực thi biểu thức if.
orientdb {db = demo}> SELECT if(eval("name = 'satish'"), "My name is satish",
"My name is not satish") FROM Employee
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
----+--------+-----------------------
# |@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
----+--------+------------------------
Thực hiện truy vấn sau để lấy ngày hệ thống.
orientdb {db = demo}> SELECT SYSDATE() FROM Employee
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
----+--------+-----------------------
# |@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
----+--------+------------------------
Bằng cách sử dụng triệt để chức năng này, bạn có thể dễ dàng thao tác với dữ liệu OrientDB.