Mysql
 sql >> Base de données >  >> RDS >> Mysql

Langage de requête Neo4j - Cypher

Neo4j a son propre langage de requête appelé Cypher. Cypher utilise une syntaxe similaire à SQL (Structured Query Language).

Exemple

Voici un exemple d'instruction Cypher :

MATCH (p:Person { name:"Homer Flinstone" })
RETURN p

Cette instruction Cypher renvoie un nœud "Person" où la propriété name est "Homer Flinstone".

S'il s'agissait d'une requête SQL sur une base de données relationnelle, cela ressemblerait davantage à ceci :

SELECT * FROM Person
WHERE name = "Homer Flinstone";

Cependant, rappelez-vous que Neo4j ne stocke pas ses données dans des tables comme le modèle de base de données relationnelle. Tout est dans les nœuds et les relations. Ainsi, la requête Cypher ci-dessus interroge les nœuds, leurs étiquettes et leurs propriétés. L'exemple SQL, quant à lui, interroge des tables, des lignes et des colonnes.

SQL a été conçu pour être utilisé avec relationnel systèmes de gestion de bases de données (SGBD). Neo4j est un SGBD NoSQL, en ce sens qu'il n'utilise pas le modèle relationnel et qu'il n'utilise pas SQL.

Cypher a été conçu spécifiquement pour travailler avec le modèle de données Neo4j, qui concerne les nœuds et leurs relations les uns avec les autres.

Syntaxe ASCII-Art

Cypher utilise ASCII-Art pour représenter les modèles. C'est une chose pratique à retenir lors de l'apprentissage de la langue pour la première fois. Si vous oubliez comment écrire quelque chose, visualisez simplement à quoi ressemblera le graphique et cela devrait vous aider.

(a)-[:KNOWS]->(b)

Les principales choses à retenir :

  • Les nœuds sont représentés par des parenthèses, qui ressemblent à des cercles. Comme ceci :(node)
  • Les relations sont représentées par des flèches. Comme ceci :->
  • Les informations sur une relation peuvent être insérées entre crochets. Comme ceci :[:KNOWS]

Définir les données

Voici quelques points supplémentaires à retenir lorsque vous travaillez avec Cypher :

  • Les nœuds ont généralement des étiquettes. Les exemples peuvent inclure "Personne", "Utilisateur", "Acteur", "Employé", "Client".
  • Les nœuds ont généralement des propriétés. Les propriétés fournissent des informations supplémentaires sur le nœud. Les exemples pourraient inclure "Nom", "Âge", "Né", etc.
  • Les relations peuvent également avoir des propriétés.
  • Les relations ont généralement un type (c'est essentiellement comme l'étiquette d'un nœud). Les exemples pourraient inclure "SAIT", "LIKES", "WORKS_FOR", "ACHETÉ", etc.

Reprenons l'exemple ci-dessus :

MATCH (p:Person { name:"Homer Flinstone" })
RETURN p

Nous pouvons voir que :

  • Le nœud est entouré de parenthèses () .
  • Person est l'étiquette du nœud.
  • name est une propriété du nœud.