sql >> Databáze >  >> RDS >> Mysql

Dotazovací jazyk Neo4j – Cypher

Neo4j má svůj vlastní dotazovací jazyk s názvem Cypher. Cypher používá podobnou syntaxi jako SQL (Structured Query Language).

Příklad

Zde je příklad příkazu Cypher:

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

Tento příkaz Cypher vrací uzel "Person", kde vlastnost name je "Homer Flinstone".

Pokud by to byl dotaz SQL na relační databázi, mohlo by to vypadat spíš takto:

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

Pamatujte však, že Neo4j neukládá svá data do tabulek jako model relační databáze. Vše je v uzlech a vztazích. Výše uvedený dotaz Cypher tedy dotazuje uzly, jejich štítky a jejich vlastnosti. Příklad SQL na druhé straně je dotazování na tabulky, řádky a sloupce.

SQL byl navržen pro použití s ​​relačním systémy pro správu databází (DBMS). Neo4j je NoSQL DBMS v tom, že nepoužívá relační model a nepoužívá SQL.

Cypher byl navržen speciálně pro práci s datovým modelem Neo4j, který je celý o uzlech a jejich vzájemných vztazích.

Syntaxe ASCII-Art

Cypher používá ASCII-Art k reprezentaci vzorů. To je užitečné mít na paměti, když se poprvé učíte jazyk. Pokud zapomenete, jak něco napsat, představte si, jak bude graf vypadat, a mělo by to pomoci.

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

Hlavní věci k zapamatování:

  • Uzly jsou reprezentovány závorkami, které vypadají jako kruhy. Takto:(node)
  • Vztahy jsou znázorněny šipkami. Takto:->
  • Informace o vztahu lze vložit do hranatých závorek. Asi takto:[:KNOWS]

Definování dat

Zde je několik dalších bodů, které je třeba pamatovat při práci s Cypher:

  • Uzly mají obvykle štítky. Příklady mohou zahrnovat „Osoba“, „Uživatel“, „Herec“, „Zaměstnanec“, „Zákazník“.
  • Uzly obvykle mají vlastnosti. Vlastnosti poskytují další informace o uzlu. Příklady mohou zahrnovat „Jméno“, „Věk“, „Narození“ atd.
  • Vztahy mohou mít také vlastnosti.
  • Vztahy mají obvykle svůj typ (v podstatě je to jako označení uzlu). Příklady mohou zahrnovat „VÍ, „LIKE“, „PRÁCE_PRO“, „ZAKOUPENO“ atd.

Takže se znovu podíváme na výše uvedený příklad:

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

Můžeme to vidět:

  • Uzel je ohraničen závorkami () .
  • Person je štítek uzlu.
  • name je vlastnost uzlu.

  1. Odstraňování problémů Nelegální kombinace chyb porovnávání v mysql

  2. Vraťte první pondělí každého měsíce v SQLite

  3. 3 Nechutné I/O statistiky, které zpožďují výkon SQL dotazu

  4. Použití JShell v Javě 9 v NetBeans 9.0, část 2