Graphes – CRUD¶
Cypher – Ajout¶
- La clause
CREATEpermet d’ajouter des nœuds ainsi que des relations : https://neo4j.com/docs/cypher-manual/current/clauses/create -
Syntaxe :
- Nœud simple :
CREATE () - Nœuds multiples :
CREATE (), () - Nœud avec un type (label) :
CREATE (n:Person) - Nœud avec plusieurs types (labels) :
CREATE (n:Person:Swedish) -
Nœud avec type et propriétés :
-
Modèle (pattern) complet :
- Nœud simple :
-
La relation peut aussi être créée à partir de la recherche de nœud(s) existant(s) :
-
Relation avec propriétés :
-
Si un nœud avec les mêmes caractéristiques existe déjà (même type, mêmes valeurs de propriétés),
CREATEva créer une copie du nœud. -
Si on cherche à éviter la duplication, la clause
MERGEva auparavant valider la présence d’un nœud existant avant d’en créer un nouveau.- Souvent utilisé dans les scripts d’importation
Cypher – Édition¶
- La clause
SETpermet d’éditer un type (label) et les propriétés d’un nœud ou d’une relation - Elle est généralement jumelée avec l’utilisation de la clause
MATCH
Syntaxe :
Exemples :
Efface toutes les propriétés :
Ajoute ou modifie des propriétés :
Remplace toutes les propriétés (pas de changement de type) :
Remplace toutes les propriétés par les nouvelles :
Modifie plusieurs propriétés :
Changement de type :
Cypher – Suppression¶
- La clause
DELETEpermet de supprimer un nœud ou une relation : https://neo4j.com/docs/cypher-manual/current/clauses/delete/- Toute relation vers un nœud doit être effacée auparavant
- La clause
DETACH DELETEpermet de supprimer un nœud et les relations auxquelles il est associé - Elle est généralement jumelée avec l’utilisation de la clause
MATCH
Syntaxe :
Exemples :
Toute relation vers le nœud n doit être effacée auparavant :
Exercice – Requêtes d’ajout¶
Utilisez la base de données du tutoriel neo4j sur les films (Movie Graph).
Attention
Exécutez les requêtes en ordre et assurez-vous de les prendre en note dans un fichier .cypher.
- Ajoutez 3 films de votre choix (titre et tagline) en vous assurant qu’ils ne sont pas déjà présents dans la base de données
- Pour chacun des films, ajoutez ensuite 2 acteurs qui ne sont pas déjà présents dans la base de données
- Pour chacun des films, ajoutez ensuite les réalisateurs (
[:DIRECTED]), à moins qu’ils ne soient déjà présents dans la base de données - Ajoutez ensuite les relations entre les films, les acteurs et les réalisateurs
- Ajoutez 2 autres films, acteurs (1 par film) et réalisateurs en utilisant une seule requête de création par film.
- Effectuez les requêtes nécessaires pour valider vos requêtes d’ajout
Exercice – Requêtes d’édition¶
- Ajoutez la durée (en minutes) sur 2 de vos films
- Ajoutez la durée (en minutes) et l’année de réalisation sur 2 autres films
- Ajoutez les rôles joués par les acteurs (dans la relation
ACTED_IN) d’un de vos films - Modifiez l’année de réalisation d’un film de votre choix
Exercice – Requêtes de suppression¶
- Supprimez un film de votre choix. Les relations associées à ce film doivent être effacées auparavant ou Neo4j va refuser la requête
- Supprimez un film de votre choix en supprimant du même coup ses relations.
- Supprimez la relation entre un acteur et un film de votre choix