Cypher - це мова запитів Neo4j для спрощення роботи з графами. Вона повторює синтаксис SQL та перемішує його з таким собі ascii стилем для відображення структури графа.
Таким чином у запиті позначається пуста *вершина*. Використовується зазвичай для того, щоб позначити, що вона є, проте це не так вже й важливо для запиту.
Це вершина, яка має назву **n**, до неї можна повторно звертатись у запиті. Звернення до вершини **n** починається з нижнього підкреслення та використовує camelCase (верблюжий регіст).
Можна також додати *ярлик* до вершини, в данному випадку - **Person**. Це як тип / клас / категорія. Назва *ярлика* починається з великої літери та використовує верблюжу нотацію.
Вершина також може мати різні *властивості*, в данному випадку - **name** та **age**. Також мають починатися з великої літери та використовувати верблюжу нотацію.
*Увага! В Cypher не існує типу, що відображає час. Замість нього можна використовувати рядок із визначеним шаблоном або чисельне відображення певної дати.*
`p.name`
За допомогою крапки можна звернутись до властивості вершини.
Зв'язки (аборебра)
---
**Сполучають дві вершини**
`[:KNOWS]`
Це *зв'язок* з *ярликом***KNOWS**. Це такий же самий *ярлик* як іу вершини. Починається з великої літери та використовує ВЕРХНІЙ\_РЕГІСТР\_ІЗ\_ЗМІЇНОЮ\_НОТАЦІЄЮ.
Це структурна інформація, яку використовують *шляхи*, які розглянуті нижче. В данному випадку, **\*..4** говорить: "Сумістити шаблон із зв'язком **k**, що повторюватиметься від одного до чотирьох разів."
*Зверніть увагу, що ключове слово `REMOVE` це не те саме, що й `DELETE`!*
Видалити ярлик певної вершини:
```
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
DELETE p:Person
```
Видалити всю базу даних:
```
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n, r
```
*Так, це `rm -rf /` на мові Cypher !*
Інші корисні запити
---
`PROFILE`
Перед виконанням, показати план виконання запитів.
`COUNT(e)`
Порахувати елементи (вершини та зв'язки), що відповідають **e**.
`LIMIT x`
Обмежити результат до x перших результатів.
Особливі підказки
---
-У мові Cypher існують лише однорядкові коментарі, що позначаються двійним слешем : // Коментар
- Можна виконати скрипт Cypher, збережений у файлі **.cql** прямо в Neo4j (прямо як імпорт). Проте, не можна мати мати кілька виразів в цьому файлі (розділених **;**).