OrientDB - Funkcje
W tym rozdziale opisano pełne opisy różnych typów funkcji w OrientDB. Poniższa tabela zawiera listę funkcji, które są podzielone na kategorie według ich funkcjonalności.
Funkcje wykresów
Sr.No. | Nazwa i opis funkcji |
---|---|
1 | Out(): Pobiera sąsiednie wierzchołki wychodzące, zaczynając od bieżącego rekordu jako Vertex. Syntax - out ([<label-1>] [, <label-n>] *) |
2 | In(): Pobiera sąsiednie przychodzące wierzchołki, zaczynając od bieżącego rekordu jako Vertex. Syntax - w ([<label-1>] [, <label-n>] *) |
3 | Both(): Pobiera sąsiednie wierzchołki wychodzące i przychodzące, zaczynając od bieżącego rekordu jako Vertex. Syntax - oba ([<label1>] [, <label-n>] *) |
4 | outE(): Pobiera sąsiednie krawędzie wychodzące, zaczynając od bieżącego rekordu jako Vertex. Syntax - outE ([<label1>] [, <label-n>] *) |
5 | inE(): Pobiera sąsiednie krawędzie przychodzące, zaczynając od bieżącego rekordu jako Vertex. Syntax - inE ([<label1>] [, <label-n>] *) |
6 | bothE(): Pobiera sąsiednie krawędzie wychodzące i przychodzące, zaczynając od bieżącego rekordu jako Vertex. Syntax - obaE ([<label1>] [, <label-n>] *) |
7 | outV(): Pobiera wychodzące wierzchołki, zaczynając od bieżącego rekordu jako Edge. Syntax - outV () |
8 | inV(): Pobierz nadchodzące wierzchołki z bieżącego rekordu jako Edge. Syntax - inV () |
9 | traversedElement(): Zwraca przemierzane elementy w poleceniach ciągu poligonowego. Syntax - traversedElement (<index> [, <items>]) |
10 | traversedVertex(): Zwróć przecięte wierzchołki w poleceniach ciągu poligonowego. Syntax - traversedVertex (<index> [, <items>]) |
11 | traversedEdge(): Zwraca przechodzącą krawędź (e) w poleceniach Ciąg poligonowy. Syntax - traversedEdge (<index> [, <items>]) |
12 | shortestPath(): Zwraca najkrótszą ścieżkę między dwoma wierzchołkami. Kierunek może być OUT (domyślnie), IN lub BOTH. Synatx - shortestPath (<sourceVertex>, <destinationVertex> [, <direction> [, <edgeClassName>]]) |
13 | dijkstra(): Zwraca najtańszą ścieżkę między dwoma wierzchołkami przy użyciu algorytmu Dijkstry. Syntax - dijkstra (<sourceVertex>, <destinationVertex>, <weightEdgeFieldName> [, <direction>]) |
Wypróbuj kilka funkcji wykresów wraz z następującymi zapytaniami.
Wykonaj następujące zapytanie, aby pobrać wszystkie wychodzące wierzchołki ze wszystkich wierzchołków pojazdu.
orientdb {db = demo}>SELECT out() from Vehicle
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
---+----------+---------
# | @class | out
---+----------+---------
0 | Vehicle | #11:2
1 | Vehicle | #13:1
2 | Vehicle | #13:4
---+----------+---------
Wykonaj następujące zapytanie, aby pobrać zarówno przychodzące, jak i wychodzące wierzchołki z wierzchołka 11: 3.
orientdb {db = demo}>SELECT both() FROM #11:3
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
---+----------+--------+-------
# | @class | out | in
---+----------+--------+-------
0 | Vehicle | #13:2 | #10:2
---+----------+-------+-------
Funkcje matematyczne
Sr.No. | Nazwa i opis funkcji |
---|---|
1 | eval(): Oblicza wyrażenie w cudzysłowie (lub w cudzysłowie). Syntax - eval ('<expression>') |
2 | min(): Zwraca minimalną wartość. Jeśli zostanie wywołany z więcej niż jednym parametrem, zwraca minimalną wartość argumentu między wszystkimi argumentami. Syntax - min (<pole> [, <pole-n>] *) |
3 | max(): Zwraca maksymalną wartość. W przypadku wywołania z więcej niż jednym parametrem zwraca maksymalną wartość między wszystkimi argumentami. Syntax - max (<field> [, <field-n>] *) |
4 | sum() Zwraca sumę wszystkich zwróconych wartości. Syntax - suma (<pole>) |
5 | abs(): Zwraca wartość bezwzględną. Działa z liczbami Integer, Long, Short, Double, Float, BigInteger, BigDecimal, null. Syntax - abs (<pole>) |
6 | avg(): Zwraca średnią wartość. Syntax - avg (<pole>) |
7 | count(): Zlicza rekord, który pasuje do warunku zapytania. Jeśli * nie jest używane jako pole, rekord będzie liczony tylko wtedy, gdy zawartość nie jest pusta. Syntax - liczba (<pole>) |
8 | mode(): Zwraca wartość, która występuje z największą częstotliwością. W obliczeniach pomijane są wartości zerowe. Syntax - tryb (<pole>) |
9 | median(): Zwraca wartość środkową lub wartość interpolowaną, która reprezentuje wartość środkową po posortowaniu wartości. W obliczeniach pomijane są wartości zerowe. Syntax - mediana (<pole>) |
10 | percentile(): Zwraca n-ty percentyl. W obliczeniach ignorowana jest wartość Null. Syntax - percentyl (<field> [, <quantile-n>] *) |
11 | variance() Zwraca środkową wariancję: średnią kwadratową różnicę od średniej.
Syntax - wariancja (<pole>) |
12 | stddev() Zwraca odchylenie standardowe: miara rozłożenia wartości. W obliczeniach pomijane są wartości zerowe. Syntax - stddev (<pole>) |
Wypróbuj kilka funkcji matematycznych, używając następujących zapytań.
Wykonaj następujące zapytanie, aby uzyskać sumę wynagrodzeń wszystkich pracowników.
orientdb {db = demo}>SELECT SUM(salary) FROM Employee
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
---+----------+---------
# | @CLASS | sum
---+----------+---------
0 | null | 150000
---+----------+---------
Wykonaj następujące zapytanie, aby uzyskać średnią pensję wszystkich pracowników.
orientdb {db = demo}>SELECT avg(salary) FROM Employee
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
---+----------+---------
# | @CLASS | avg
---+----------+---------
0 | null | 25
---+----------+---------
Funkcje kolekcji
Sr.No. | Nazwa i opis funkcji |
---|---|
1 | set(): Dodaje wartość do zestawu. Jeśli wartość jest zbiorem, to jest scalana z zestawem, w przeciwnym razie dodawana jest wartość <value>. Syntax - ustaw (<pole>) |
2 | map(): Dodaje wartość do mapy przy pierwszym tworzeniu mapy. Jeśli <value> jest mapą, to jest scalane z mapą, w przeciwnym razie para <key> i <value> jest dodawana do mapy jako nowy wpis. Syntax - mapa (<key>, <value>) |
3 | ist(): Dodaje wartość do listy podczas pierwszego tworzenia listy. Jeśli <wartość> jest zbiorem, to jest scalana z listą, w przeciwnym razie <wartość> jest dodawana do listy. Syntax - lista (<pole>) |
4 | difference(): Działa jako agregat lub wbudowany. Jeśli przekazano tylko jeden argument, agreguje, w przeciwnym razie wykonuje i zwraca RÓŻNICĘ między kolekcjami odebranymi jako parametry. Syntax - różnica (<field> [, <field-n>] *) |
5 | first(): Pobiera tylko pierwszą pozycję z pól wielowartościowych (tablice, kolekcje i mapy). W przypadku typów innych niż wielowartościowe po prostu zwraca wartość. Syntax - pierwszy (<pole>) |
6 | intersect(): Działa jako agregat lub wbudowany. Jeśli przekazany zostanie tylko jeden argument, agreguje, w przeciwnym razie wykonuje i zwraca INTERAKCJĘ kolekcji odebranych jako parametry. Syntax - przecięcie (<pole> [, <pole-n>] *) |
7 | distinct(): Pobiera tylko unikatowe wpisy danych w zależności od pola określonego jako argument. Główną różnicą w porównaniu ze standardowym SQL DISTINCT jest to, że w OrientDB można określić funkcję z nawiasami i tylko jedno pole. Syntax - wyraźny (<pole>) |
8 | expand(): Ta funkcja ma dwa znaczenia -
Syntax - rozwiń (<pole>) |
9 | unionall(): Działa jako agregat lub wbudowany. Jeśli przekazano tylko jeden argument, agreguje, w przeciwnym razie wykonuje i zwraca UNION wszystkich kolekcji odebranych jako parametry. Działa również bez wartości kolekcji. Syntax - unionall (<field> [, <field-n>] *) |
10 | flatten(): Wyodrębnia kolekcję w polu i wykorzystuje ją jako wynik. Jest przestarzały, zamiast tego użyj expand (). Syntax - spłaszcz (<pole>) |
11 | last(): Pobiera tylko ostatnią pozycję z pól wielowartościowych (tablice, kolekcje i mapy). W przypadku typów innych niż wielowartościowe po prostu zwraca wartość. Syntax - ostatnia (<pole>) |
12 | symmetricDifference(): Działa jako agregat lub wbudowany. Jeśli przekazany zostanie tylko jeden argument, agreguje, w przeciwnym razie wykonuje i zwraca RÓŻNOŚĆ SYMETRYCZNĄ między kolekcjami odebranymi jako parametry. Syntax - symmetricDifference (<field> [, <field-n>] *) |
Wypróbuj niektóre funkcje kolekcji, korzystając z następujących zapytań.
Wykonaj następujące zapytanie, aby uzyskać zestaw nauczycieli, uczących klasę 9.
orientdb {db = demo}>SELECT ID, set(teacher.id) AS teacherID from classess where class_id = 9
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
---+----------+--------+--------------------------
# | @CLASS | id | TeacherID
---+----------+--------+--------------------------
0 | null | 9 | 1201, 1202, 1205, 1208
---+----------+-------+---------------------------
Różne funkcje
Sr.No. | Nazwa i opis funkcji |
---|---|
1 | date(): Zwraca datę formatującą ciąg. <data-as-string> to data w formacie ciągu, a <format> to format daty zgodny z tymi regułami. Syntax - data (<date-as-string> [<format>] [, <timezone>]) |
2 | sysdate(): Zwraca bieżącą datę i godzinę. Syntax - sysdate ([<format>] [, <timezone>]) |
3 | format(): Formatuje wartość przy użyciu konwencji String.format (). Syntax - format (<format> [, <arg1>] (, <arg-n>] *. Md) |
4 | distance(): Zwraca odległość między dwoma punktami na kuli ziemskiej za pomocą algorytmu Haversine. Współrzędne muszą być stopniami. Syntax - odległość (<x-field>, <y-field>, <x-value>, <y-value>) |
5 | ifnull(): Zwraca przekazane pole / wartość (lub opcjonalny parametr return_value_if_not_null). Jeśli pole / wartość nie jest null, zwraca wartość return_value_if_null. Syntax - ifnull (<pole | wartość>, <return_value_if_null> [, <return_value_if_not_null>] (, <pole & .md # 124; wartość>] *) |
6 | coalesce(): Zwraca pierwsze pole / wartość niepustą jako parametr. Jeśli żadne pole / wartość nie jest puste, zwraca wartość null. Syntax - coalesce (<pole | wartość> [, <pole-n | wartość-n>] *) |
7 | uuid(): Generuje UUID jako 128-bitową wartość przy użyciu wariantu Leach-Salz. Syntax - uuid () |
8 | if(): Oblicza warunek (pierwsze parametry) i zwraca drugi parametr, jeśli warunek jest prawdziwy, a trzeci w przeciwnym razie. Syntax - if (<expression>, <result-if-true>, <result-if-false>) |
Wypróbuj różne funkcje, korzystając z następujących zapytań.
Wykonaj następujące zapytanie, aby dowiedzieć się, jak wykonać wyrażenie if.
orientdb {db = demo}> SELECT if(eval("name = 'satish'"), "My name is satish",
"My name is not satish") FROM Employee
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
----+--------+-----------------------
# |@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
----+--------+------------------------
Wykonaj następujące zapytanie, aby uzyskać datę systemową.
orientdb {db = demo}> SELECT SYSDATE() FROM Employee
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
----+--------+-----------------------
# |@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
----+--------+------------------------
Używając dokładnie tej funkcji, możesz łatwo manipulować danymi OrientDB.