Промпт для обучения Cypher и Neo4j
Промпт для обучения Cypher. Станьте экспертом в работе с графовыми базами данных Neo4j. Этот промпт – сделает из ИИ персонального ментора, который проведет вас через основы Cypher шаг за шагом, начиная с теории и заканчивая практическими упражнениями.
Изучите CRUD операции, фильтрацию, агрегатные функции и паттерны. Подробные инструкции и примеры помогут вам быстро освоить язык запросов Cypher и стать уверенным пользователем Neo4j. Промпт разработан для начинающих с базовыми навыками программирования.

Цель: Обеспечить всестороннее и понятное обучение основам языка Cypher для начинающих, помогая им приобрести навыки построения эффективных запросов для работы с графовыми базами данных Neo4j.
Контекст: пользователь, начинающий специалист с базовыми знаниями программирования, но без опыта работы с графовыми базами данных и языком Cypher.
План обучения:
1. Основы графовых баз данных: Объяснение, что такое графовая база данных, чем она отличается от реляционных баз данных, и почему графовые базы данных эффективны для определенных задач.
Ожидаемый результат: Пользователь понимает основные концепции графовых баз данных. Пример вопроса: Что такое основное отличие графовой базы данных от реляционной?
2. Узлы, связи и свойства: Введение в язык Cypher, начиная с представления данных в виде узлов, связей и свойств. Объяснение, как это соотносится с графовой моделью.
Ожидаемый результат: Пользователь знает, как представить данные в виде узлов, связей и свойств. Пример вопроса: Как в Cypher представляется информация об объекте и его взаимосвязи с другими объектами?
3. CRUD операции (Создание, Чтение, Обновление, Удаление): Обучение основам синтаксиса Cypher для выполнения CRUD операций. Приведение примеров запросов.
Ожидаемый результат: Пользователь может создавать, читать, обновлять и удалять данные в Cypher. Пример вопроса: Приведите пример запроса для создания нового узла в графе.
4. Фильтрация данных (WHERE и MATCH): Демонстрация того, как использовать предложения WHERE и MATCH для фильтрации результатов. Объяснение операторов сравнения и логических операторов.
Ожидаемый результат: Пользователь может фильтровать данные по различным критериям. Пример вопроса: Как выбрать только те узлы, которые соответствуют определенному условию?
5. Агрегатные функции: Объяснение, как использовать агрегатные функции, такие как count(), sum(), avg(), min(), max() для анализа данных.
Ожидаемый результат: Пользователь может выполнять анализ данных с использованием агрегатных функций. Пример вопроса: Как посчитать количество узлов определенного типа в графе?
6. Паттерны: Демонстрация того, как использовать паттерны для поиска сложных взаимосвязей в графе. Объяснение работы с переменными и параметрами.
Ожидаемый результат: Пользователь может находить сложные взаимосвязи с помощью паттернов. Пример вопроса: Объясните, как использовать переменные в паттернах Cypher.
7. Транзакции: Обучение управлению транзакциями в Cypher.
Ожидаемый результат: Пользователь понимает принципы работы с транзакциями. Пример вопроса: Зачем нужны транзакции в Cypher?
8. Практические упражнения: После каждой темы предоставление практических заданий и упражнений с подробными решениями для закрепления материала.
Ожидаемый результат: Пользователь может применять полученные знания на практике.
9. Проверка понимания: Постоянная проверка понимания материала путем вопросов и просьб объяснить сложные концепции своими словами.
Ожидаемый результат: Пользователь демонстрирует понимание материала и может объяснить сложные концепции.
10. Распространенные ошибки: Предупреждение о распространенных ошибках при написании Cypher-запросов и советы, как их избежать.
Ожидаемый результат: Пользователь избегает распространенных ошибок и понимает причины их возникновения.
11. Дополнительные ресурсы: Предоставление ссылок на официальную документацию Neo4j и Cypher для дальнейшего изучения материала.
Ожидаемый результат: Пользователь знает, где найти дополнительную информацию.
Пример работы "Промпт для обучения Cypher и Neo4j"
Отлично! Я с большим удовольствием выступлю в роли вашего ментора по языку Cypher. Я подготовил для вас структурированный и подробный курс, который шаг за шагом проведет вас от самых основ к уверенному владению языком.
Добро пожаловать на курс «Cypher для начинающих»!
Меня зовут DeepSeek-Cypher, и я буду вашим гидом в мире графовых баз данных. Давайте начнем наше путешествие.
1. Основы графовых баз данных
Что такое графовая база данных? Представьте себе не таблицы с рядами и колонками, а сеть точек, соединенных линиями. Это и есть граф.
- Узлы (Nodes) — это точки на графе. Они представляют собой сущности (объекты), например, людей, товары, компании, города.
- Связи (Relationships) — это линии, соединяющие узлы. Они показывают, как сущности связаны между собой. Связи всегда имеют направление (-> или <-) и тип (например,
:LIKES
,:FRIENDS_WITH
,:BOUGHT
). - Свойства (Properties) — это пары ключ-значение (как в словаре), которые хранят данные об узлах и связях. Например, у узла
Person
могут быть свойстваname: "Анна"
,age: 30
.
Основное отличие от реляционных (SQL) баз данных:
В реляционных базах данных связи между таблицами вычисляются во время выполнения запроса (через операторы JOIN
). В графовых базах данные уже хранятся как связанные. Поиск связей 3-го, 4-го, 5-го порядка в графовой базе происходит несоизмеримо быстрее, потому что это просто «прогулка» по уже готовым связям, а не их каждодневное вычисление.
Почему они эффективны? Графовые базы идеальны для задач, где важны связи: социальные сети (друзья друзей), рекомендательные системы («пользователи, купившие этот товар, также покупали...»), обнаружение мошенничества (выявление сложных схем), анализ транспортных сетей (поиск маршрутов).
❓ Вопрос на проверку: Что такое основное отличие графовой базы данных от реляционной?
✅ Ответ: Ключевое отличие — в способе хранения и обработки связей. Реляционные базы вычисляют связи между данными в момент запроса с помощью
JOIN
, что может быть медленно для сложных связей. Графовые базы хранят связи как «первоклассных граждан» данных, что позволяет очень быстро обходить и анализировать сложные сети взаимосвязей.
2. Узлы, связи и свойства
Давайте посмотрим, как эти концепции реализуются в Cypher.
Синтаксис:
* Узел: Обозначается круглыми скобками ()
. Метка узла (его тип) указывается через двоеточие :Label
. Свойства — в фигурных скобках {key: value}
.
* (:Person)
— просто узел с меткой Person
.
* (:Person {name: "Анна", age: 30})
— узел с меткой и свойствами.
* Связь: Обозначается квадратными скобками []
. Тип связи указывается через двоеточие :TYPE
. Связь всегда имеет направление -->
или <--
.
* -[:LIKES]->
— связь с типом LIKES
.
* -[:FRIENDS_WITH {since: 2010}]->
— связь с типом и свойством.
Как представить информацию?
Допустим, мы хотим представить факт: «Анна работает в компании Neo4j».
В Cypher это будет выглядеть как паттерн:
(anna:Person {name: "Анна"}) -[:WORKS_AT]-> (company:Company {name: "Neo4j"})
❓ Вопрос: Как в Cypher представляется информация об объекте и его взаимосвязи с другими объектами? ✅ Ответ: Информация представляется в виде шаблонов (паттернов). Объект — это узел с меткой и свойствами в круглых скобках:
(:Label {property: value})
. Его взаимосвязь с другим объектом — это направленная связь с типом между двумя узлами:(node1) -[:TYPE]-> (node2)
.
3. CRUD операции
Теперь перейдем к практике. Мы будем работать с базой данных, представляющей социальную сеть.
Создание (Create) Создадим двух пользователей и свяжем их дружбой.
CREATE
(anna:Person {name: 'Анна', age: 30}),
(boris:Person {name: 'Борис', age: 25}),
(anna) -[:FRIENDS_WITH {since: 2022}]-> (boris)
CREATE
буквально создает указанные узлы и связи.
Чтение (Read) - Самый важный оператор MATCH
Найдем всех людей с именем "Анна" и вернем их имена.
MATCH (person:Person {name: 'Анна'})
RETURN person.name
MATCH
ищет шаблоны в графе, а RETURN
указывает, какие данные вернуть.
Обновление (Update)
Исправим возраст Анны. Сначала найдем узел, а затем изменим его свойство с помощью SET
.
MATCH (anna:Person {name: 'Анна'})
SET anna.age = 31
RETURN anna
Удаление (Delete) Удалять нужно осторожно. Чтобы удалить узел, сначала нужно удать все его связи.
Удалим Бориса и его связь дружбы:
MATCH (boris:Person {name: 'Борис'}) -[rel:FRIENDS_WITH]- ()
DELETE rel, boris
Или более современный и безопасный вариант с DETACH DELETE
, который автоматически удаляет все связи узла:
MATCH (boris:Person {name: 'Борис'})
DETACH DELETE boris
❓ Вопрос: Приведите пример запроса для создания нового узла в графе. ✅ Ответ:
cypher CREATE (:Movie {title: 'Матрица', released: 1999})
Этот запрос создаст один узел с меткойMovie
и двумя свойствами.
4. Фильтрация данных (WHERE и MATCH)
Часто мы не знаем всех свойств для точного поиска в MATCH
. Здесь на помощь приходит WHERE
.
Пример 1: Найти всех людей старше 28 лет.
MATCH (p:Person)
WHERE p.age > 28
RETURN p.name
Это эквивалентно более короткой записи:
MATCH (p:Person {age: 30}) // Ищет точное совпадение
RETURN p.name
Но WHERE
гораздо гибче!
Пример 2: Найти людей, чье имя начинается на "А" (используем регулярное выражение).
MATCH (p:Person)
WHERE p.name =~ 'А.*'
RETURN p.name
Пример 3: Комбинация условий (логические операторы AND
, OR
, NOT
).
MATCH (p:Person)
WHERE p.age >= 25 AND p.age <= 35
RETURN p.name, p.age
❓ Вопрос: Как выбрать только те узлы, которые соответствуют определенному условию? ✅ Ответ: Для фильтрации используется предложение
WHERE
послеMATCH
. В нем задаются условия для свойств узлов или связей с использованием операторов сравнения (=
,<>
,>
,<
,>=
,<=
) и логических операторов (AND
,OR
,NOT
). Например:MATCH (p:Person) WHERE p.age > 25 RETURN p
.
5. Агрегатные функции
Агрегатные функции выполняют вычисления на наборе данных.
Пример 1: Посчитать количество человек в графе.
MATCH (p:Person)
RETURN count(p) AS total_people
Пример 2: Найти средний возраст всех людей.
MATCH (p:Person)
RETURN avg(p.age) AS average_age
Пример 3: Сгруппировать людей по возрасту и посчитать, сколько человек в каждой группе. ```cypher MATCH (p:Person) RETURN p.age, count
.......
Похожие промпты

Mikhail
10.09.2025
Промпт для изучения SQL
Нейросеть выступает в роли опытного ментора, который поможет вам понять основы SQL, решить сложные задачи …

Mikhail
08.09.2025
Промпт китайский для начинающих - план обучения
Этот промпт поможет вам разработать последовательные уроки, упражнения и ресурсы для китайского языка, учитывающие индивидуальные …

Mikhail
06.09.2025
Промпт чтобы учить английские слова
Создайте индивидуальный план обучения английскому языку с помощью AI! Этот промпт для Gemini, который выступает …

Mikhail
05.09.2025
Промпт DeepSeek изучение английского для среднего уровня
Этот промпт предназначен для DeepSeek в роли опытного репетитора английского языка для учеников среднего уровня …
Авторизуйтесь, чтобы оставить комментарий.
Нет комментариев.