mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-25 00:06:47 +03:00
unify header style
This commit is contained in:
parent
1924d58159
commit
5fb4c54268
4
.github/workflows/lint.yml
vendored
4
.github/workflows/lint.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Node.js CI
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
@ -15,4 +15,4 @@ jobs:
|
||||
with:
|
||||
ruby-version: '3.2'
|
||||
- run: gem install mdl
|
||||
- run: mdl . --ignore-front-matter -r MD011,MD023,MD027,MD028,MD037,MD038,MD039,MD047
|
||||
- run: mdl . --ignore-front-matter -r MD003,MD011,MD023,MD027,MD028,MD035,MD037,MD038,MD039,MD047
|
||||
|
@ -1116,8 +1116,7 @@ proc main() {
|
||||
} // end main()
|
||||
```
|
||||
|
||||
Who is this tutorial for?
|
||||
-------------------------
|
||||
## Who is this tutorial for?
|
||||
|
||||
This tutorial is for people who want to learn the ropes of chapel without
|
||||
having to hear about what fiber mixture the ropes are, or how they were
|
||||
@ -1132,28 +1131,27 @@ to see if more topics have been added or more tutorials created.
|
||||
|
||||
### What this tutorial is lacking:
|
||||
|
||||
* Exposition of the [standard modules](https://chapel-lang.org/docs/latest/modules/standard.html)
|
||||
* Multiple Locales (distributed memory system)
|
||||
* Records
|
||||
* Parallel iterators
|
||||
* Exposition of the [standard modules](https://chapel-lang.org/docs/latest/modules/standard.html)
|
||||
* Multiple Locales (distributed memory system)
|
||||
* Records
|
||||
* Parallel iterators
|
||||
|
||||
Your input, questions, and discoveries are important to the developers!
|
||||
-----------------------------------------------------------------------
|
||||
## Your input, questions, and discoveries are important to the developers!
|
||||
|
||||
The Chapel language is still in active development, so there are
|
||||
occasional hiccups with performance and language features. The more information
|
||||
you give the Chapel development team about issues you encounter or features you
|
||||
would like to see, the better the language becomes.
|
||||
There are several ways to interact with the developers:
|
||||
+ [Gitter chat](https://gitter.im/chapel-lang/chapel)
|
||||
+ [sourceforge email lists](https://sourceforge.net/p/chapel/mailman)
|
||||
|
||||
* [Gitter chat](https://gitter.im/chapel-lang/chapel)
|
||||
* [sourceforge email lists](https://sourceforge.net/p/chapel/mailman)
|
||||
|
||||
If you're really interested in the development of the compiler or contributing
|
||||
to the project, [check out the master GitHub repository](https://github.com/chapel-lang/chapel).
|
||||
It is under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0).
|
||||
|
||||
Installing the Compiler
|
||||
-----------------------
|
||||
## Installing the Compiler
|
||||
|
||||
[The Official Chapel documentation details how to download and compile the Chapel compiler.](https://chapel-lang.org/docs/usingchapel/QUICKSTART.html)
|
||||
|
||||
@ -1161,23 +1159,22 @@ Chapel can be built and installed on your average 'nix machine (and cygwin).
|
||||
[Download the latest release version](https://github.com/chapel-lang/chapel/releases/)
|
||||
and it's as easy as
|
||||
|
||||
1. `tar -xvf chapel-<VERSION>.tar.gz`
|
||||
2. `cd chapel-<VERSION>`
|
||||
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
|
||||
4. `make`
|
||||
5. `make check # optional`
|
||||
1. `tar -xvf chapel-<VERSION>.tar.gz`
|
||||
2. `cd chapel-<VERSION>`
|
||||
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
|
||||
4. `make`
|
||||
5. `make check # optional`
|
||||
|
||||
You will need to `source util/setchplenv.EXT` from within the Chapel directory
|
||||
(`$CHPL_HOME`) every time your terminal starts so it's suggested that you drop
|
||||
that command in a script that will get executed on startup (like .bashrc).
|
||||
|
||||
Chapel is easily installed with Brew for macOS
|
||||
Chapel is easily installed on macOS with Homebrew
|
||||
|
||||
1. `brew update`
|
||||
2. `brew install chapel`
|
||||
1. `brew update`
|
||||
2. `brew install chapel`
|
||||
|
||||
Compiling Code
|
||||
--------------
|
||||
## Compiling Code
|
||||
|
||||
Builds like other compilers:
|
||||
|
||||
@ -1185,10 +1182,10 @@ Builds like other compilers:
|
||||
|
||||
Notable arguments:
|
||||
|
||||
* `--fast`: enables a number of optimizations and disables array bounds
|
||||
* `--fast`: enables a number of optimizations and disables array bounds
|
||||
checks. Should only enable when application is stable.
|
||||
* `--set <Symbol Name>=<Value>`: set config param `<Symbol Name>` to `<Value>`
|
||||
* `--set <Symbol Name>=<Value>`: set config param `<Symbol Name>` to `<Value>`
|
||||
at compile-time.
|
||||
* `--main-module <Module Name>`: use the main() procedure found in the module
|
||||
* `--main-module <Module Name>`: use the main() procedure found in the module
|
||||
`<Module Name>` as the executable's main.
|
||||
* `--module-dir <Directory>`: includes `<Directory>` in the module search path.
|
||||
* `--module-dir <Directory>`: includes `<Directory>` in the module search path.
|
||||
|
@ -14,7 +14,6 @@ En resumen, Chapel es un lenguaje de programación paralela, código abierto, de
|
||||
desarrolladp en Cray Inc. y está diseñado para ejecutarse en PC multi-nucleos,
|
||||
así como en supercomputadoras multi-kilocore.
|
||||
|
||||
|
||||
Puede encontrar más información y asistencia al final de este documento.
|
||||
|
||||
```chapel
|
||||
@ -1133,8 +1132,7 @@ proc main() {
|
||||
} // end main()
|
||||
```
|
||||
|
||||
¿Para quién es este tutorial?
|
||||
-------------------------
|
||||
## ¿Para quién es este tutorial?
|
||||
|
||||
Este tutorial es para personas que desean aprender las cuerdas de chapel sin tener
|
||||
que escuchar sobre qué mezcla de fibras son las cuerdas, o cómo fueron trenzadas,
|
||||
@ -1148,13 +1146,12 @@ para ver si se han agregado más temas o se han creado más tutoriales.
|
||||
|
||||
### Lo que le falta a este tutorial:
|
||||
|
||||
* Exposición de los [módulos estándar](https://chapel-lang.org/docs/latest/modules/standard.html)
|
||||
* Múltiples configuraciones regionales (sistema de memoria distribuida)
|
||||
* Registros
|
||||
* Iteradores paralelos
|
||||
* Exposición de los [módulos estándar](https://chapel-lang.org/docs/latest/modules/standard.html)
|
||||
* Múltiples configuraciones regionales (sistema de memoria distribuida)
|
||||
* Registros
|
||||
* Iteradores paralelos
|
||||
|
||||
¡Sus comentarios, preguntas y descubrimientos son importantes para los desarrolladores!
|
||||
-----------------------------------------------------------------------
|
||||
## ¡Sus comentarios, preguntas y descubrimientos son importantes para los desarrolladores!
|
||||
|
||||
El lenguaje Chapel todavía está en desarrollo activo, por lo que
|
||||
ocasionalmente hay problemas con el rendimiento y
|
||||
@ -1164,17 +1161,16 @@ Cuanta más información brinde al equipo de desarrollo de Chapel
|
||||
sobre los problemas que encuentre o las características que le gustaría ver,
|
||||
mejor será el lenguaje.
|
||||
|
||||
|
||||
Hay varias formas de interactuar con los desarrolladores:
|
||||
+ [Chat de Gitter](https://gitter.im/chapel-lang/chapel)
|
||||
+ [lista de emails de Sourceforge](https://sourceforge.net/p/chapel/mailman)
|
||||
|
||||
* [Chat de Gitter](https://gitter.im/chapel-lang/chapel)
|
||||
* [lista de emails de Sourceforge](https://sourceforge.net/p/chapel/mailman)
|
||||
|
||||
Si está realmente interesado en el desarrollo del compilador o en contribuir al proyecto,
|
||||
[consulte el repositorio maestro de GitHub](https://github.com/chapel-lang/chapel).
|
||||
Está bajo el [La licencia Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0).
|
||||
|
||||
Instalar el compilador
|
||||
-----------------------
|
||||
## Instalar el compilador
|
||||
|
||||
[La documentación oficial de Chapel detalla cómo descargar y compilar el compilador de Chapel.](https://chapel-lang.org/docs/usingchapel/QUICKSTART.html)
|
||||
|
||||
@ -1182,11 +1178,11 @@ Chapel se puede construir e instalar en su máquina promedio 'nix (y cygwin).
|
||||
[Descargue la última versión de lanzamiento](https://github.com/chapel-lang/chapel/releases/)
|
||||
y es tan fácil como
|
||||
|
||||
1. `tar -xvf chapel-<VERSION>.tar.gz`
|
||||
2. `cd chapel-<VERSION>`
|
||||
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
|
||||
4. `make`
|
||||
5. `make check # optional`
|
||||
1. `tar -xvf chapel-<VERSION>.tar.gz`
|
||||
2. `cd chapel-<VERSION>`
|
||||
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
|
||||
4. `make`
|
||||
5. `make check # optional`
|
||||
|
||||
You will need to `source util/setchplenv.EXT` from within the Chapel directory
|
||||
(`$CHPL_HOME`) every time your terminal starts so it's suggested that you drop
|
||||
@ -1198,11 +1194,10 @@ en un script que se ejecutará al inicio (como .bashrc).
|
||||
|
||||
Chapel se instala fácilmente con Brew para OS X
|
||||
|
||||
1. `brew update`
|
||||
2. `brew install chapel`
|
||||
1. `brew update`
|
||||
2. `brew install chapel`
|
||||
|
||||
Compilando Código
|
||||
--------------
|
||||
## Compilando Código
|
||||
|
||||
Construye como otros compiladores:
|
||||
|
||||
@ -1210,10 +1205,10 @@ Construye como otros compiladores:
|
||||
|
||||
Argumentos notables:
|
||||
|
||||
* `--fast`: habilita varias optimizaciones y deshabilita las comprobaciones
|
||||
* `--fast`: habilita varias optimizaciones y deshabilita las comprobaciones
|
||||
de los límites de la matriz Solo debe habilitarse cuando la aplicación es estable.
|
||||
* `--set <Nombre del Symbolo>=<Valor>`: establece el param de configuracion
|
||||
* `--set <Nombre del Symbolo>=<Valor>`: establece el param de configuracion
|
||||
`<Nombre del Symbolo>` a `<Valor>`en tiempo de compilación.
|
||||
* `--main-module <Nombre del módulo>`: use el procedimiento main() que se encuentra en el módulo
|
||||
`<Nombre del módulo>` como principal del ejecutable.
|
||||
* `--module-dir <Directorio>`: incluye `<Directorio>` en la ruta de búsqueda del módulo.
|
||||
* `--main-module <Nombre del módulo>`: use el procedimiento main() que se encuentra en el módulo
|
||||
`<Nombre del módulo>` como principal del ejecutable.
|
||||
* `--module-dir <Directorio>`: incluye `<Directorio>` en la ruta de búsqueda del módulo.
|
||||
|
@ -6,14 +6,11 @@ contributors:
|
||||
|
||||
lang: pt-br
|
||||
---
|
||||
|
||||
O Cypher é a linguagem de consulta do Neo4j para manipular gráficos facilmente. Ela reutiliza a sintaxe do SQL e a mistura com o tipo de ascii-art para representar gráficos. Este tutorial pressupõe que você já conheça conceitos de gráficos como nós e relacionamentos.
|
||||
|
||||
[Leia mais aqui.](https://neo4j.com/developer/cypher-query-language/)
|
||||
|
||||
|
||||
Nós
|
||||
---
|
||||
## Nós
|
||||
|
||||
**Representa um registro em um gráfico.**
|
||||
|
||||
@ -34,21 +31,19 @@ Um nó pode ter algumas *propriedades*, aqui **name** e **age**. Começa com min
|
||||
|
||||
Os tipos permitidos nas propriedades:
|
||||
|
||||
- Numeric
|
||||
- Boolean
|
||||
- String
|
||||
- Lista de tipos primitivos anteriores
|
||||
- Numeric
|
||||
- Boolean
|
||||
- String
|
||||
- Lista de tipos primitivos anteriores
|
||||
|
||||
*Aviso: não há propriedade datetime no Cypher! Você pode usar String com um padrão específico ou um Numeric a partir de uma data específica.*
|
||||
|
||||
`p.name`
|
||||
Você pode acessar uma propriedade com o estilo de ponto.
|
||||
|
||||
## Relacionamentos (ou Arestas)
|
||||
|
||||
Relacionamentos (ou Arestas)
|
||||
---
|
||||
|
||||
**Conecta dois nós**
|
||||
**Conecta dois nós.**
|
||||
|
||||
`[:KNOWS]`
|
||||
É um *relacionamento* com o *label* **KNOWS**. É um *label* como um rótulo do nó. Começa com maiúsculas e usa UPPER_SNAKE_CASE.
|
||||
@ -62,9 +57,7 @@ O mesmo *relacionamento*, com *propriedades* (como *nó*), aqui **since**.
|
||||
`[k:KNOWS*..4]`
|
||||
É uma informação estrutural para usar em um *path* (visto posteriormente). Aqui, **\*..4** diz, “Corresponda o padrão, com a relação **k** que é repetida de 1 a 4 vezes.
|
||||
|
||||
|
||||
Paths
|
||||
---
|
||||
## Paths
|
||||
|
||||
**A maneira de misturar nós e relacionamentos.**
|
||||
|
||||
@ -80,9 +73,9 @@ Você pode encadear vários relacionamentos. Este path descreve o amigo de um am
|
||||
`(a:Person)-[:MANAGES]->(b:Person)-[:MANAGES]->(c:Person)`
|
||||
Uma encadeamento também pode ser direcionada. Este path descreve que **a** é o chefe de **b** e o grande chefe de **c**.
|
||||
|
||||
Padrões frequentemente usados (do Neo4j doc) :
|
||||
Padrões frequentemente usados (do Neo4j doc):
|
||||
|
||||
```
|
||||
```cypher
|
||||
// Amigo de um amigo
|
||||
(user)-[:KNOWS]-(friend)-[:KNOWS]-(foaf)
|
||||
|
||||
@ -96,13 +89,11 @@ path = shortestPath( (user)-[:KNOWS*..5]-(other) )
|
||||
(root)<-[:PARENT*]-(leaf:Category)-[:ITEM]->(data:Product)
|
||||
```
|
||||
|
||||
|
||||
Crie consultas
|
||||
---
|
||||
## Crie consultas
|
||||
|
||||
Crie um novo nó
|
||||
|
||||
```
|
||||
```cypher
|
||||
CREATE (a:Person {name:"Théo Gauchoux"})
|
||||
RETURN a
|
||||
```
|
||||
@ -111,52 +102,51 @@ RETURN a
|
||||
|
||||
Crie um novo relacionamento (com 2 novos nós)
|
||||
|
||||
```
|
||||
```cypher
|
||||
CREATE (a:Person)-[k:KNOWS]-(b:Person)
|
||||
RETURN a,k,b
|
||||
```
|
||||
|
||||
Consultas que casam
|
||||
---
|
||||
## Consultas que casam
|
||||
|
||||
Casam todos os nós
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (n)
|
||||
RETURN n
|
||||
```
|
||||
|
||||
Casam nós por label
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a:Person)
|
||||
RETURN a
|
||||
```
|
||||
|
||||
Casam nós por label e propriedade
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a:Person {name:"Théo Gauchoux"})
|
||||
RETURN a
|
||||
```
|
||||
|
||||
Casam nós de acordo com os relacionamentos (não direcionados)
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a)-[:KNOWS]-(b)
|
||||
RETURN a,b
|
||||
```
|
||||
|
||||
Casam nós de acordo com os relacionamentos (direcionados)
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a)-[:MANAGES]->(b)
|
||||
RETURN a,b
|
||||
```
|
||||
|
||||
Casam nós com um cláusula `WHERE`
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person {name:"Théo Gauchoux"})-[s:LIVES_IN]->(city:City)
|
||||
WHERE s.since = 2015
|
||||
RETURN p,state
|
||||
@ -164,19 +154,17 @@ RETURN p,state
|
||||
|
||||
Você pode usa a cláusula `MATCH WHERE` com a cláusula `CREATE`
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a), (b)
|
||||
WHERE a.name = "Jacquie" AND b.name = "Michel"
|
||||
CREATE (a)-[:KNOWS]-(b)
|
||||
```
|
||||
|
||||
|
||||
Atualizar consultas
|
||||
---
|
||||
## Atualizar consultas
|
||||
|
||||
Atualizar uma propriedade específica de um nó
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p.age = 23
|
||||
@ -184,7 +172,7 @@ SET p.age = 23
|
||||
|
||||
Substituir todas as propriedades de um nó
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p = {name: "Michel", age: 23}
|
||||
@ -192,7 +180,7 @@ SET p = {name: "Michel", age: 23}
|
||||
|
||||
Adicionar nova propriedade a um nó
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p + = {studies: "IT Engineering"}
|
||||
@ -200,19 +188,17 @@ SET p + = {studies: "IT Engineering"}
|
||||
|
||||
Adicione um label a um nó
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p:Internship
|
||||
```
|
||||
|
||||
|
||||
Excluir consultas
|
||||
---
|
||||
## Excluir consultas
|
||||
|
||||
Excluir um nó específico (os relacionamentos vinculados devem ser excluídos antes)
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)-[relationship]-()
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
DELETE relationship, p
|
||||
@ -220,7 +206,7 @@ DELETE relationship, p
|
||||
|
||||
Remover uma propriedade em um nó específico
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
REMOVE p.age
|
||||
@ -230,7 +216,7 @@ REMOVE p.age
|
||||
|
||||
Remover um label de um nó específico
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
DELETE p:Person
|
||||
@ -238,7 +224,7 @@ DELETE p:Person
|
||||
|
||||
Excluir o banco de dados inteiro
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (n)
|
||||
OPTIONAL MATCH (n)-[r]-()
|
||||
DELETE n, r
|
||||
@ -246,9 +232,7 @@ DELETE n, r
|
||||
|
||||
*Sério, é o `rm -rf /` do Cypher !*
|
||||
|
||||
|
||||
Outras cláusulas úteis
|
||||
---
|
||||
## Outras cláusulas úteis
|
||||
|
||||
`PROFILE`
|
||||
Antes de uma consulta, mostre o plano de execução dela.
|
||||
@ -259,9 +243,7 @@ Contar entidades (nós ou relacionamentos) que casam com **e**.
|
||||
`LIMIT x`
|
||||
Limite o resultado aos primeiros x resultados.
|
||||
|
||||
|
||||
Dicas Especiais
|
||||
---
|
||||
## Dicas Especiais
|
||||
|
||||
- Há apenas comentários de uma linha no Cypher, com barras duplas : // Comentários
|
||||
- Você pode executar um script Cypher armazenado em um arquivo **.cql** diretamente no Neo4j (é uma importação). No entanto, você não pode ter várias instruções neste arquivo (separadas por **;**).
|
||||
|
@ -13,11 +13,9 @@ Cypher - це мова запитів Neo4j для спрощення робот
|
||||
|
||||
[Деталі тут](https://neo4j.com/developer/cypher-query-language/)
|
||||
|
||||
## Вершини
|
||||
|
||||
Вершини
|
||||
---
|
||||
|
||||
**Відображує запис у графі.**
|
||||
#### Відображує запис у графі
|
||||
|
||||
`()`
|
||||
Таким чином у запиті позначається пуста *вершина*. Використовується зазвичай для того, щоб позначити, що вона є, проте це не так вже й важливо для запиту.
|
||||
@ -36,21 +34,18 @@ Cypher - це мова запитів Neo4j для спрощення робот
|
||||
|
||||
Наступні типи дозволяється використовувати у властивостях:
|
||||
|
||||
- Чиселиний
|
||||
- Булевий
|
||||
- Рядок
|
||||
- Списки попередніх примітивних типів
|
||||
- Чиселиний
|
||||
- Булевий
|
||||
- Рядок
|
||||
- Списки попередніх примітивних типів
|
||||
|
||||
*Увага! В Cypher не існує типу, що відображає час. Замість нього можна використовувати рядок із визначеним шаблоном або чисельне відображення певної дати.*
|
||||
|
||||
`p.name`
|
||||
За допомогою крапки можна звернутись до властивості вершини.
|
||||
|
||||
|
||||
Зв'язки (або ребра)
|
||||
---
|
||||
|
||||
**Сполучають дві вершини**
|
||||
## Зв'язки (або ребра)
|
||||
#### Сполучають дві вершини
|
||||
|
||||
`[:KNOWS]`
|
||||
Це *зв'язок* з *ярликом* **KNOWS**. Це такий же самий *ярлик* як і у вершини. Починається з великої літери та використовує ВЕРХНІЙ\_РЕГІСТР\_ІЗ\_ЗМІЇНОЮ\_НОТАЦІЄЮ.
|
||||
@ -64,11 +59,8 @@ Cypher - це мова запитів Neo4j для спрощення робот
|
||||
`[k:KNOWS*..4]`
|
||||
Це структурна інформація, яку використовують *шляхи*, які розглянуті нижче. В данному випадку, **\*..4** говорить: "Сумістити шаблон із зв'язком **k**, що повторюватиметься від одного до чотирьох разів."
|
||||
|
||||
|
||||
Шляхи
|
||||
---
|
||||
|
||||
**Спосіб поєднувати вершини та зв'язки.**
|
||||
## Шляхи
|
||||
#### Спосіб поєднувати вершини та зв'язки.
|
||||
|
||||
`(a:Person)-[:KNOWS]-(b:Person)`
|
||||
Шлях описує, що вершини **a** та **b** знають (knows) один одного.
|
||||
@ -84,7 +76,7 @@ Cypher - це мова запитів Neo4j для спрощення робот
|
||||
|
||||
Шаблони, які часто використовуються (з документації Neo4j):
|
||||
|
||||
```
|
||||
```cypher
|
||||
// Друг-мого-друга
|
||||
(user)-[:KNOWS]-(friend)-[:KNOWS]-(foaf)
|
||||
|
||||
@ -98,13 +90,11 @@ path = shortestPath( (user)-[:KNOWS*..5]-(other) )
|
||||
(root)<-[:PARENT*]-(leaf:Category)-[:ITEM]->(data:Product)
|
||||
```
|
||||
|
||||
|
||||
Запити на створення
|
||||
---
|
||||
## Запити на створення
|
||||
|
||||
Створити нову вершину:
|
||||
|
||||
```
|
||||
```cypher
|
||||
CREATE (a:Person {name:"Théo Gauchoux"})
|
||||
RETURN a
|
||||
```
|
||||
@ -113,52 +103,51 @@ RETURN a
|
||||
|
||||
Створити новий зв'язок (із двома вершинами):
|
||||
|
||||
```
|
||||
```cypher
|
||||
CREATE (a:Person)-[k:KNOWS]-(b:Person)
|
||||
RETURN a,k,b
|
||||
```
|
||||
|
||||
Запити на знаходження
|
||||
---
|
||||
## Запити на знаходження
|
||||
|
||||
Знайти всі вершини:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (n)
|
||||
RETURN n
|
||||
```
|
||||
|
||||
Знайти вершини за ярликом:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a:Person)
|
||||
RETURN a
|
||||
```
|
||||
|
||||
Знайти вершини за ярликом та властивістю:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a:Person {name:"Théo Gauchoux"})
|
||||
RETURN a
|
||||
```
|
||||
|
||||
Знайти вершини відповідно до зв'язків (ненаправлених):
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a)-[:KNOWS]-(b)
|
||||
RETURN a,b
|
||||
```
|
||||
|
||||
Знайти вершини відповідно до зв'язків (направлених):
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a)-[:MANAGES]->(b)
|
||||
RETURN a,b
|
||||
```
|
||||
|
||||
Знайти вершини за допомогою `WHERE`:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person {name:"Théo Gauchoux"})-[s:LIVES_IN]->(city:City)
|
||||
WHERE s.since = 2015
|
||||
RETURN p,state
|
||||
@ -166,19 +155,17 @@ RETURN p,state
|
||||
|
||||
Можна використовувати вираз `MATCH WHERE` разом із операцією `CREATE`:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (a), (b)
|
||||
WHERE a.name = "Jacquie" AND b.name = "Michel"
|
||||
CREATE (a)-[:KNOWS]-(b)
|
||||
```
|
||||
|
||||
|
||||
Запити на оновлення
|
||||
---
|
||||
## Запити на оновлення
|
||||
|
||||
Оновити окрему властивість вершини:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p.age = 23
|
||||
@ -186,7 +173,7 @@ SET p.age = 23
|
||||
|
||||
Оновити всі властивості вершини:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p = {name: "Michel", age: 23}
|
||||
@ -194,7 +181,7 @@ SET p = {name: "Michel", age: 23}
|
||||
|
||||
Додати нову властивіcть до вершини:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p + = {studies: "IT Engineering"}
|
||||
@ -202,19 +189,17 @@ SET p + = {studies: "IT Engineering"}
|
||||
|
||||
Повісити ярлик на вершину:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
SET p:Internship
|
||||
```
|
||||
|
||||
|
||||
Запити на видалення
|
||||
---
|
||||
## Запити на видалення
|
||||
|
||||
Видалити окрему вершину (пов'язані ребра повинні бути видалені перед цим):
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)-[relationship]-()
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
DELETE relationship, p
|
||||
@ -222,7 +207,7 @@ DELETE relationship, p
|
||||
|
||||
Видалити властивість певної вершини:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
REMOVE p.age
|
||||
@ -232,7 +217,7 @@ REMOVE p.age
|
||||
|
||||
Видалити ярлик певної вершини:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (p:Person)
|
||||
WHERE p.name = "Théo Gauchoux"
|
||||
DELETE p:Person
|
||||
@ -240,7 +225,7 @@ DELETE p:Person
|
||||
|
||||
Видалити всю базу даних:
|
||||
|
||||
```
|
||||
```cypher
|
||||
MATCH (n)
|
||||
OPTIONAL MATCH (n)-[r]-()
|
||||
DELETE n, r
|
||||
@ -248,9 +233,7 @@ DELETE n, r
|
||||
|
||||
*Так, це `rm -rf /` на мові Cypher !*
|
||||
|
||||
|
||||
Інші корисні запити
|
||||
---
|
||||
## Інші корисні запити
|
||||
|
||||
`PROFILE`
|
||||
Перед виконанням, показати план виконання запитів.
|
||||
@ -261,11 +244,9 @@ DELETE n, r
|
||||
`LIMIT x`
|
||||
Обмежити результат до x перших результатів.
|
||||
|
||||
## Особливі підказки
|
||||
|
||||
Особливі підказки
|
||||
---
|
||||
|
||||
- У мові Cypher існують лише однорядкові коментарі, що позначаються двійним слешем : // Коментар
|
||||
- У мові Cypher існують лише однорядкові коментарі, що позначаються двійним слешем : `// Коментар`
|
||||
- Можна виконати скрипт Cypher, збережений у файлі **.cql** прямо в Neo4j (прямо як імпорт). Проте, не можна мати мати кілька виразів в цьому файлі (розділених **;**).
|
||||
- Використовуйте командний рядок Neo4j для написання запитів Cypher, це легко і швидко.
|
||||
- Cypher планує бути стандартною мовою запитів для всіх графових баз даних (більш відома як **OpenCypher**).
|
||||
|
Loading…
Reference in New Issue
Block a user