sql >> Base de Datos >  >> RDS >> Mysql

Lenguaje de consulta Neo4j - Cifrado

Neo4j tiene su propio lenguaje de consulta llamado Cypher. Cypher utiliza una sintaxis similar a SQL (lenguaje de consulta estructurado).

Ejemplo

Aquí hay un ejemplo de una declaración Cypher:

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

Esta instrucción Cypher devuelve un nodo "Persona" donde la propiedad del nombre es "Homer Flinstone".

Si esto fuera SQL consultando una base de datos relacional, podría parecerse más a esto:

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

Sin embargo, recuerde, Neo4j no almacena sus datos en tablas como el modelo de base de datos relacional. Todo está en nodos y relaciones. Entonces, la consulta de Cypher anterior está consultando nodos, sus etiquetas y sus propiedades. El ejemplo de SQL, por otro lado, consulta tablas, filas y columnas.

SQL fue diseñado para ser utilizado con relacional sistemas de gestión de bases de datos (DBMS). Neo4j es un DBMS NoSQL, ya que no usa el modelo relacional y no usa SQL.

Cypher fue diseñado específicamente para trabajar con el modelo de datos Neo4j, que se trata de nodos y sus relaciones entre sí.

Sintaxis ASCII-Art

Cypher usa ASCII-Art para representar patrones. Esto es algo útil para recordar cuando se aprende el idioma por primera vez. Si olvida cómo escribir algo, simplemente visualice cómo se verá el gráfico y debería ayudar.

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

Lo más importante para recordar:

  • Los nodos se representan mediante paréntesis, que parecen círculos. Así:(node)
  • Las relaciones se representan mediante flechas. Así:->
  • La información sobre una relación se puede insertar entre corchetes. Así:[:KNOWS]

Definición de los datos

Aquí hay algunos puntos más para recordar al trabajar con Cypher:

  • Los nodos suelen tener etiquetas. Los ejemplos podrían incluir "Persona", "Usuario", "Actor", "Empleado", "Cliente".
  • Los nodos suelen tener propiedades. Las propiedades proporcionan información adicional sobre el nodo. Los ejemplos podrían incluir "Nombre", "Edad", "Nacido", etc.
  • Las relaciones también pueden tener propiedades.
  • Las relaciones suelen tener un tipo (esto es básicamente como la etiqueta de un nodo). Los ejemplos podrían incluir "CONOCE", "ME GUSTA", "TRABAJA_PARA", "COMPRADO", etc.

Así que mirando el ejemplo anterior de nuevo:

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

Podemos ver que:

  • El nodo está entre paréntesis () .
  • Person es la etiqueta del nodo.
  • name es una propiedad del nodo.