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 -

  • W przypadku użycia w polu kolekcji rozwija kolekcję w polu i wykorzystuje ją jako wynik.

  • Gdy jest używany w polu łącza (RID), rozwija dokument wskazywany przez to łącze.

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.