OrientDB - Funções
Este capítulo explica a referência completa de diferentes tipos de funções no OrientDB. A tabela a seguir define a lista de funções, que são categorizadas por sua funcionalidade.
Funções de gráfico
Sr. Não. | Nome e descrição da função |
---|---|
1 | Out(): Obtém os vértices de saída adjacentes a partir do registro atual como Vértice. Syntax - out ([<label-1>] [, <label-n>] *) |
2 | In(): Obtém os vértices adjacentes de entrada a partir do registro atual como Vertex. Syntax - em ([<label-1>] [, <label-n>] *) |
3 | Both(): Obtém os vértices de saída e de entrada adjacentes a partir do registro atual como Vertex. Syntax - ambos ([<label1>] [, <label-n>] *) |
4 | outE(): Obtém as bordas de saída adjacentes a partir do registro atual como Vertex. Syntax - outE ([<label1>] [, <label-n>] *) |
5 | inE(): Obtém as bordas de entrada adjacentes a partir do registro atual como Vertex. Syntax - inE ([<label1>] [, <label-n>] *) |
6 | bothE(): Obtém as bordas de saída e de entrada adjacentes a partir do registro atual como Vertex. Syntax - bothE ([<label1>] [, <label-n>] *) |
7 | outV(): Obtém os vértices de saída a partir do registro atual como Edge. Syntax - outV () |
8 | inV(): Obtenha os vértices de entrada do registro atual como Edge. Syntax - inV () |
9 | traversedElement(): Retorna o (s) elemento (s) percorrido (s) em comandos Traverse. Syntax - traversedElement (<index> [, <items>]) |
10 | traversedVertex(): Retorne o (s) vértice (s) atravessado (s) em comandos Traverse. Syntax - traversedVertex (<index> [, <items>]) |
11 | traversedEdge(): Retorna a (s) aresta (s) atravessada (s) em comandos Traverse. Syntax - traversedEdge (<index> [, <items>]) |
12 | shortestPath(): Retorna o caminho mais curto entre dois vértices. A direção pode ser OUT (padrão), IN ou AMBOS. Synatx - shortestPath (<sourceVertex>, <destinationVertex> [, <direction> [, <edgeClassName>]]) |
13 | dijkstra(): Retorna o caminho mais barato entre dois vértices usando o algoritmo Dijkstra. Syntax - dijkstra (<sourceVertex>, <destinationVertex>, <weightEdgeFieldName> [, <direction>]) |
Experimente algumas funções de gráfico junto com as seguintes consultas.
Execute a seguinte consulta para obter todos os vértices de saída de todos os vértices do veículo.
orientdb {db = demo}>SELECT out() from Vehicle
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
---+----------+---------
# | @class | out
---+----------+---------
0 | Vehicle | #11:2
1 | Vehicle | #13:1
2 | Vehicle | #13:4
---+----------+---------
Execute a seguinte consulta para obter os vértices de entrada e de saída do vértice 11: 3.
orientdb {db = demo}>SELECT both() FROM #11:3
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
---+----------+--------+-------
# | @class | out | in
---+----------+--------+-------
0 | Vehicle | #13:2 | #10:2
---+----------+-------+-------
Funções Matemáticas
Sr. Não. | Nome e descrição da função |
---|---|
1 | eval(): Avalia a expressão entre aspas (ou aspas duplas). Syntax - eval ('<expressão>') |
2 | min(): Retorna o valor mínimo. Se chamado com mais de um parâmetro, ele retorna o valor mínimo do argumento entre todos os argumentos. Syntax - min (<campo> [, <campo-n>] *) |
3 | max(): Retorna o valor máximo. Se chamado com mais de um parâmetro, retorna o valor máximo entre todos os argumentos. Syntax - max (<campo> [, <campo-n>] *) |
4 | sum() Retorna a soma de todos os valores retornados. Syntax - soma (<campo>) |
5 | abs(): Retorna o valor absoluto. Funciona com Integer, Long, Short, Double, Float, BigInteger, BigDecimal, null. Syntax - abs (<campo>) |
6 | avg(): Retorna o valor médio. Syntax - média (<campo>) |
7 | count(): Conta o registro que corresponde à condição da consulta. Se * não for usado como um campo, o registro será contado apenas se o conteúdo não for nulo. Syntax - contagem (<campo>) |
8 | mode(): Retorna o valor que ocorre com a maior frequência. Os nulos são ignorados no cálculo. Syntax - modo (<campo>) |
9 | median(): Retorna o valor do meio ou um valor interpolado que representa o valor do meio depois que os valores são classificados. Os nulos são ignorados no cálculo. Syntax - mediana (<campo>) |
10 | percentile(): Retorna o enésimo percentil. Nulo é ignorado no cálculo. Syntax - percentil (<campo> [, <quantil-n>] *) |
11 | variance() Retorna a variância média: a média da diferença quadrática da média.
Syntax - variância (<campo>) |
12 | stddev() Retorna o desvio padrão: A medida de quão dispersos são os valores. Os nulos são ignorados no cálculo. Syntax - stddev (<campo>) |
Experimente algumas funções matemáticas usando as seguintes consultas.
Execute a seguinte consulta para obter a soma dos salários de todos os funcionários.
orientdb {db = demo}>SELECT SUM(salary) FROM Employee
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
---+----------+---------
# | @CLASS | sum
---+----------+---------
0 | null | 150000
---+----------+---------
Execute a seguinte consulta para obter o salário médio de todos os funcionários.
orientdb {db = demo}>SELECT avg(salary) FROM Employee
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
---+----------+---------
# | @CLASS | avg
---+----------+---------
0 | null | 25
---+----------+---------
Funções de coleções
Sr. Não. | Nome e descrição da função |
---|---|
1 | set(): Adiciona um valor a um conjunto. Se o valor for uma coleção, ele será mesclado com o conjunto, caso contrário, <valor> será adicionado. Syntax - definir (<campo>) |
2 | map(): Adiciona um valor a um mapa na primeira vez que o mapa é criado. Se <valor> for um mapa, ele será mesclado com o mapa, caso contrário, o par <chave> e <valor> será adicionado ao mapa como uma nova entrada. Syntax - mapa (<key>, <value>) |
3 | ist(): Adiciona um valor para listar na primeira vez que a lista é criada. Se <valor> for uma coleção, ele será mesclado com a lista; caso contrário, <valor> será adicionado à lista. Syntax - lista (<campo>) |
4 | difference(): Funciona como agregado ou embutido. Se apenas um argumento for passado, ele agrega, caso contrário, executa e retorna a DIFERENÇA entre as coleções recebidas como parâmetros. Syntax - diferença (<campo> [, <campo-n>] *) |
5 | first(): Recupera apenas o primeiro item de campos de vários valores (matrizes, coleções e mapas). Para tipos que não sejam de vários valores, apenas retorna o valor. Syntax - primeiro (<campo>) |
6 | intersect(): Funciona como agregado ou embutido. Se apenas um argumento for passado, agrega, caso contrário, executa e retorna a INTERAÇÃO das coleções recebidas como parâmetros. Syntax - intersecção (<campo> [, <campo-n>] *) |
7 | distinct(): Recupera apenas entradas de dados exclusivas, dependendo do campo que você especificou como argumento. A principal diferença em relação ao SQL DISTINCT padrão é que com OrientDB, uma função com parênteses e apenas um campo pode ser especificado. Syntax - distinto (<campo>) |
8 | expand(): Esta função tem dois significados-
Syntax - expandir (<campo>) |
9 | unionall(): Funciona como agregado ou embutido. Se apenas um argumento for passado, ele agrega; caso contrário, executa e retorna uma UNION de todas as coleções recebidas como parâmetros. Também funciona sem valores de coleção. Syntax - unionall (<field> [, <field-n>] *) |
10 | flatten(): Extrai a coleção no campo e a usa como resultado. Ele está obsoleto, use expand () em seu lugar. Syntax - achatar (<campo>) |
11 | last(): Recupera apenas o último item de campos de vários valores (matrizes, coleções e mapas). Para tipos que não sejam de vários valores, apenas retorna o valor. Syntax - último (<campo>) |
12 | symmetricDifference(): Funciona como agregado ou embutido. Se apenas um argumento for passado, agrega; caso contrário, executa e retorna a DIFERENÇA SIMÉTRICA entre as coleções recebidas como parâmetros. Syntax - symmetricDifference (<field> [, <field-n>] *) |
Experimente algumas funções de coleção usando as seguintes consultas.
Execute a seguinte consulta para obter um conjunto de professores, lecionando na 9ª classe.
orientdb {db = demo}>SELECT ID, set(teacher.id) AS teacherID from classess where class_id = 9
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
---+----------+--------+--------------------------
# | @CLASS | id | TeacherID
---+----------+--------+--------------------------
0 | null | 9 | 1201, 1202, 1205, 1208
---+----------+-------+---------------------------
Funções diversas
Sr. Não. | Nome e descrição da função |
---|---|
1 | date(): Retorna uma data formatando uma string. <date-as-string> é a data no formato de string e <formato> é o formato de data de acordo com essas regras. Syntax - data (<date-as-string> [<format>] [, <timezone>]) |
2 | sysdate(): Retorna a data e hora atuais. Syntax - sysdate ([<formato>] [, <timezone>]) |
3 | format(): Formata um valor usando as convenções String.format (). Syntax - formato (<formato> [, <arg1>] (, <arg-n>] *. Md) |
4 | distance(): Retorna a distância entre dois pontos no globo usando o algoritmo Haversine. As coordenadas devem ser graus. Syntax - distância (<x-field>, <y-field>, <x-value>, <y-value>) |
5 | ifnull(): Retorna o campo / valor passado (ou parâmetro opcional return_value_if_not_null). Se o campo / valor não for nulo, ele retornará return_value_if_null. Syntax - ifnull (<campo | valor>, <return_value_if_null> [, <return_value_if_not_null>] (, <campo & .md # 124; valor>] *) |
6 | coalesce(): Retorna o primeiro campo / valor não parâmetro nulo. Se nenhum campo / valor não for nulo, retorna nulo. Syntax - coalescer (<campo | valor> [, <campo-n | valor-n>] *) |
7 | uuid(): Gera um UUID como um valor de 128 bits usando a variante Leach-Salz. Syntax - uuid () |
8 | if(): Avalia uma condição (primeiros parâmetros) e retorna o segundo parâmetro se a condição for verdadeira, o terceiro caso contrário. Syntax - if (<expression>, <result-if-true>, <result-if-false>) |
Experimente algumas funções Misc usando as seguintes consultas.
Execute a seguinte consulta para aprender como executar a expressão if.
orientdb {db = demo}> SELECT if(eval("name = 'satish'"), "My name is satish",
"My name is not satish") FROM Employee
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
----+--------+-----------------------
# |@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
----+--------+------------------------
Execute a seguinte consulta para obter a data do sistema.
orientdb {db = demo}> SELECT SYSDATE() FROM Employee
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
----+--------+-----------------------
# |@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
----+--------+------------------------
Usando esta função completamente, você pode manipular facilmente os dados OrientDB.