sql >> Database >  >> RDS >> Mysql

Neo4j Query-taal - Cypher

Neo4j heeft zijn eigen zoektaal genaamd Cypher. Cypher gebruikt een vergelijkbare syntaxis als SQL (Structured Query Language).

Voorbeeld

Hier is een voorbeeld van een Cypher-statement:

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

Deze Cypher-instructie retourneert een "Persoon"-knooppunt waarbij de eigenschap name "Homer Flinstone" is.

Als dit SQL was die een relationele database ondervroeg, zou het er meer als volgt uit kunnen zien:

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

Onthoud echter dat Neo4j zijn gegevens niet opslaat in tabellen zoals het relationele databasemodel. Het zit allemaal in knooppunten en relaties. Dus de bovenstaande Cypher-query zoekt naar knooppunten, hun labels en hun eigenschappen. Het SQL-voorbeeld daarentegen is het opvragen van tabellen, rijen en kolommen.

SQL is ontworpen om te worden gebruikt met relationele databasebeheersystemen (DBMS). Neo4j is een NoSQL DBMS, in die zin dat het geen gebruik maakt van het relationele model en geen gebruik maakt van SQL.

Cypher is speciaal ontworpen voor het werken met het Neo4j-gegevensmodel, dat draait om knooppunten en hun relaties met elkaar.

ASCII-Art-syntaxis

Cypher gebruikt ASCII-Art om patronen weer te geven. Dit is handig om te onthouden wanneer u de taal voor het eerst leert. Als je vergeet hoe je iets moet schrijven, visualiseer dan gewoon hoe de grafiek eruit zal zien en het zou moeten helpen.

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

De belangrijkste dingen om te onthouden:

  • Knooppunten worden weergegeven door haakjes, die op cirkels lijken. Zoals dit:(node)
  • Relaties worden weergegeven door pijlen. Zoals dit:->
  • Informatie over een relatie kan tussen vierkante haken worden ingevoegd. Zoals dit:[:KNOWS]

De gegevens definiëren

Hier zijn nog enkele punten om te onthouden bij het werken met Cypher:

  • Knooppunten hebben meestal labels. Voorbeelden kunnen zijn "Persoon", "Gebruiker", "Actor", "Werknemer", "Klant".
  • Knooppunten hebben meestal eigenschappen. Eigenschappen geven extra informatie over het knooppunt. Voorbeelden kunnen zijn "Naam", "Leeftijd", "Geboren", enz.
  • Relaties kunnen ook eigenschappen hebben.
  • Relaties hebben meestal een type (dit is eigenlijk het label van een knooppunt). Voorbeelden kunnen zijn "KNOWS", "LIKES", "WORKS_FOR", "PURCHASED", enz.

Dus nogmaals kijkend naar het bovenstaande voorbeeld:

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

Dat kunnen we zien:

  • Het knooppunt is omgeven door haakjes () .
  • Person is het label van de node.
  • name is een eigenschap van het knooppunt.

  1. Activiteitsgegevens bijwerken van service wanneer deze is onderbroken

  2. Hoe maak je een nieuwe database aan met de hstore-extensie al geïnstalleerd?

  3. Hoe maak je een Datetime Format in SQLite

  4. Orbeon Forms Postgres DB-verbinding