Mysql
 sql >> Database >  >> RDS >> Mysql

Linguaggio di query Neo4j - Cifra

Neo4j ha un proprio linguaggio di query chiamato Cypher. Cypher utilizza una sintassi simile a SQL (Structured Query Language).

Esempio

Ecco un esempio di istruzione Cypher:

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

Questa istruzione Cypher restituisce un nodo "Persona" in cui la proprietà del nome è "Homer Flinstone".

Se si trattava di una query SQL su un database relazionale, potrebbe essere più simile a questo:

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

Tuttavia, ricorda, Neo4j non memorizza i suoi dati in tabelle come il modello di database relazionale. È tutto in nodi e relazioni. Quindi la query Cypher sopra sta interrogando i nodi, le loro etichette e le loro proprietà. L'esempio SQL, d'altra parte, sta interrogando tabelle, righe e colonne.

SQL è stato progettato per essere utilizzato con relazionale sistemi di gestione di database (DBMS). Neo4j è un DBMS NoSQL, in quanto non usa il modello relazionale e non usa SQL.

Cypher è stato progettato specificamente per lavorare con il modello di dati Neo4j, che riguarda i nodi e le loro relazioni tra loro.

Sintassi ASCII-Art

Cypher utilizza ASCII-Art per rappresentare i modelli. Questa è una cosa utile da ricordare quando si impara la lingua per la prima volta. Se dimentichi come scrivere qualcosa, visualizza semplicemente come apparirà il grafico e dovrebbe aiutarti.

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

Le cose principali da ricordare:

  • I nodi sono rappresentati da parentesi, che sembrano cerchi. In questo modo:(node)
  • Le relazioni sono rappresentate da frecce. In questo modo:->
  • Le informazioni su una relazione possono essere inserite tra parentesi quadre. In questo modo:[:KNOWS]

Definizione dei dati

Ecco alcuni altri punti da ricordare quando si lavora con Cypher:

  • I nodi di solito hanno etichette. Gli esempi potrebbero includere "Persona", "Utente", "Attore", "Dipendente", "Cliente".
  • I nodi di solito hanno proprietà. Le proprietà forniscono informazioni aggiuntive sul nodo. Gli esempi potrebbero includere "Nome", "Età", "Nato", ecc.
  • Le relazioni possono anche avere proprietà.
  • Le relazioni di solito hanno un tipo (questo è fondamentalmente come l'etichetta di un nodo). Gli esempi potrebbero includere "KNOWS", "MI PIACE", "WORKS_FOR", "PURCHASED", ecc.

Quindi, guardando di nuovo l'esempio sopra:

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

Possiamo vedere che:

  • Il nodo è racchiuso tra parentesi () .
  • Person è l'etichetta del nodo.
  • name è una proprietà del nodo.