Fundamente

Stocati orice fel de date utilizand urmatoarele concepte grafice:

  • Nod : Grafic inregistrari de date
  • Relatie : conectati noduri (are directie si un tip)
  • Proprietate : Stocheaza date in pereche cheie-valoare in noduri si relatii
  • Eticheta : noduri si relatii de grupuri (optional)

Editor browser

CLI

Exemple:: ajutor: clar

Meci

Nodul de potrivire

MATCH (ee: Persoana) UNDE ee.name = “Emil” RETURNARE ee;

  • Clauza MATCH pentru a specifica un model de noduri si relatii
  • (ee: persoana) un singur model de nod cu eticheta „persoana” care va atribui potriviri variabilei ee
  • Clauza WHERE pentru a constrange rezultatele
  • ee.name = “Emil” compara proprietatea nume cu valoarea “Emil”
  • Clauza RETURN utilizata pentru a solicita anumite rezultate

Obtine nodurile id <5> si id <0> si creeaza o relatie: STIE intre ele

Potriviti noduri si relatii

MATCH (ee: Persoana) – [: STIE] – (prieteni) UNDE ee.name = “Emil” REVENIRE ee, prieteni

  • Clauza MATCH pentru a descrie modelul de la noduri cunoscute la noduri fondate
  • (ee) incepe modelul cu o persoana (calificata de WHERE)
  • – [: STIE] – potriveste relatiile „STIE” (in ambele directii)
  • (prietenii) vor fi legati de prietenii lui Emil

Potriviti etichetele

MATCH (n: Persoana) RETURN n

sau

MATCH (n) UNDE n: Persoana RETURN n

Potriviti mai multe etichete

: Masina SAU : Etichete de persoana

MATCH (n) UNDE n: Persoana SAU n: Intoarcerea masinii n

: Masina SI : Etichete de persoana

MATCH (n) UNDE n: Persoana: Masina RETURN n

Potriviti aceleasi proprietati

MATCH (a: Persoana) UNDE a.from = “Suedia” REVENIRE a

Returneaza fiecare nod (si relatiile lor) din care exista o proprietate cu valoare „Suedia”

Potriveste prietenii prietenilor cu aceleasi hobby-uri

Johan invata surfingul si vrea sa cunoasca orice prieten al prietenilor sai care stie deja surfingul

MATCH (js: Persoana) – [: STIE] – () – [: STIE] – (surfer) WHERE js.name = “Johan” AND surfer.hobby = “surfing” RETURN DISTINCT surfer

  • () paranteza goala pentru a ignora aceste noduri
  • DISTINCT pentru ca mai multe cai se vor potrivi cu modelul
  • surferul il va contine pe Allison, un prieten al unui prieten care navigheaza

Potrivire dupa ID

Fiecare nod si relatie are un ID autonumeric intern, care poate fi interogat folosind operatorii < , <= , = , => , <> si IN :

Cautati nodul dupa ID

MATCH (n) WHERE id (n) = 0 RETURN n

Cautati mai multe noduri dupa ID

MATCH (n) WHERE id (n) IN [1, 2, 3] RETURN n

Cautati relatia dupa ID

MATCH () – [n] – () WHERE id (n) = 0 RETURN n

Crea

Creati nod

CREATE (ee: Persoana {nume: “Emil”, din: “Suedia”, klout: 99})

  • Clauza CREATE pentru a crea date
  • () paranteza pentru a indica un nod
  • ee: persoana o variabila ee si eticheta persoana pentru noul nod
  • {} paranteze pentru a adauga proprietati (perechi cheie-valoare) la nod

Creati noduri si relatii

MATCH (ee: Person) WHERE ee.name = “Emil” CREATE (js: Person {name: “Johan”, from: “Sweden”, learn: “surfing”}), (ir: Person {name: “Ian” , din: “Anglia”, titlu: “autor”}), (rvb: Persoana {nume: “Rik”, din: “Belgia”, animal de companie: “Orval”}), (aliat: Persoana {nume: “Allison” , de la: “California”, hobby: “surfing”}), (ee) – [: KNOWS {since: 2001}] -> (js), (ee) – [: KNOWS {rating: 5}] -> ( ir), (js) – [: STIE] -> (ir), (js) – [: STIE] -> (rvb), (ir) – [: STIE] -> (js), (ir) – [ : STIE] -> (aliat), (rvb) – [: STIE] -> (aliat)

  • Clauza MATCH pentru a obtine „Emil” in variabila ee
  • Clauza CREATE pentru a crea mai multe noduri (separate prin virgula) cu etichetele si proprietatile lor. De asemenea, creeaza relatii directionate (a) – [: Eticheta {cheie: valoare}] -> (b)

Creati o relatie intre 2 noduri fara legatura

MATCH (n), (m) WHERE n.name = “Allison” AND m.name = “Emil” CREATE (n) – [: STIE] -> (m)

Alternativa cu MERGE, care asigura ca relatia este creata o singura data

MATCH (n: User {name: “Allison”}), (m: User {name: “Emil”}) MERGE (n) – [: STIE] -> (m)

Creati nod cu mai multe etichete

CREATE (n: Actor: Regizor)

Actualizati

Actualizati proprietatile nodului (adaugati noi sau modificati)

Adaugati o proprietate noua .owns sau modificati-o (daca exista)

MATCH (n) WHERE n.name = “Rik” SET n.owns = “Audi”

Inlocuiti toate proprietatile nodurilor pentru cele noi

Pericol : va sterge toate proprietatile anterioare si va crea proprietati .plays si .age

MATCH (n) WHERE n.name = “Rik” SET n = {joaca: “Piano”, varsta: 23}

Adaugati noi proprietati de nod fara a sterge cele vechi

Pericol : Daca proprietatile .plays sau .age sunt deja setate, le va suprascrie

MATCH (n) WHERE n.name = “Rik” SET n + = {joaca: “Piano”, varsta: 23}

Adaugati o noua proprietate de nod daca proprietatea nu este deja setata

MATCH (n) WHERE n.plays = “Guitar” AND NOT (EXISTS (n.

pareja follando en la playa jovencitas peludas follando
enanas tetonas ancianas españolas follando
tetudas españolas porno gratis viejas
porno andaluz sexo playa nudista
sexo gratis incesto videos de maduras guarras
porno bix gitanas xxx
videos ponos porno forzadas
jovencitas españolas follando por dinero intercambio de parejas en español
mamadas gay halle berry desnuda
mama me folla potno
se folla a relatos sexo con maduros
tetonas cubanas porno andaluz
videdos porno madura se corre
incestos gays casadas cachondas
pilladas meando parejas liberales españolas
las mejores folladas maduras pajeando
follando real super mamadas
me hace una paja actores porno gay españoles
transexual española follando potro de bilbao
casadas follando por dinero seso gratis

likes)) SET n.likes = “Filme”

Redenumiti o proprietate in toate nodurile

MATCH (n) WHERE NOT (EXISTEZA (n.instrument)) SET n.instrument = n. Reda ELIMINARE n. Reda

Alternativa

MATCH (n) UNDE n.instrument este nul SET n.instrument = n.juca REMOVE n.juca

Adaugati eticheta la nodul existent

Adauga eticheta: Food pentru nodurile id <7> si id <8>

MATCH (n) WHERE id (n) IN [7, 8] SET n: Food

Creeaza nodul daca nu exista si actualizeaza (sau creeaza) o proprietate

MERGE (n: Person {name: “Rik”}) SET n.owns = “Audi”

Sterge

Stergeti nodurile

Pentru a sterge un nod (pe id <5>), mai intai trebuie sa stergem relatiile sale . Apoi, nodul poate fi sters

MATCH (n) – [r] – () WHERE id (n) = 5 STERGE r, n

Pentru a sterge mai multe noduri (trebuie ca relatiile lor sa fie sterse anterior)

MATCH (n) WHERE id (n) IN [1, 2, 3] STIRI n

Sterge o proprietate dintr-un anumit nod

MATCH (n) WHERE n: Person AND n.name = “Rik” AND n.plays NU este nul REMOVE n.plays

Alternativa

MATCH (n) UNDE n: Person AND n.name = “Rik” AND EXISTS (n.plays) ELIMINA n.plays

Stergeti o eticheta din toate nodurile

Sterge eticheta: Persoana din toate nodurile

MATCH (n) ELIMINA n: Persoana

Stergeti o eticheta din noduri cu etichete specifice

Sterge eticheta: Persoana din noduri cu: Alimente si: Etichete persoane

MECI (n) UNDE n: Mancare: persoana INLATURA n: persoana

Stergeti mai multe etichete din noduri

Sterge etichetele: Food si: Person din nodurile care au ambele etichete

MECI (n) UNDE n: Mancare: persoana INLATURA n: Mancare: persoana

Pericol : Sterge etichetele: Alimente si: Persoane din nodurile care au: Alimente sau: Persoane sau: Alimente: Etichete persoane

MATCH (n) ELIMINA n: Mancare: Persoana

Stergeti intreaga baza de date

MATCH (n) MATCH OPTIONAL (n) – [r] – () STERGE n, r

Alte clauze

Afisati planul de executie

Utilizati PROFIL sau EXPLICATI inainte de interogare

PROFIL: Afiseaza planul de executie, informatii de interogare si accesari db . Exemplu: versiunea Cypher: CYPHER 3.0, planificator: COST, runtime: INTERPRETAT. 84 de accesari db totale in 32 ms.

EXPLICATI: afiseaza planul de executie si informatiile de interogare. Exemplu: versiunea Cypher: CYPHER 3.0, planificator: COST, runtime: INTERPRETAT.

Numara

Numarati toate nodurile

MATCH (n) numar RETURN (n)

Numarati toate relatiile

MATCH () -> () RETURN count (*);

Limita

Returneaza pana la 2 noduri (si relatiile lor) de unde exista o proprietate cu valoare „Suedia”

MATCH (a: Persoana) UNDE a.from = “Suedia” RETURA o LIMITA 2

Creati o constrangere de proprietate unica

Faceti proprietatea .name unica pe noduri cu: Eticheta persoana

CREARE CONSTRAINT ON (n: Persoana) ASSERT n.name IS UNIQUE

Eliminati constrangerea proprietatii unice

Faceti proprietatea .name unica pe noduri cu: Eticheta persoana

DROP CONSTRAINT ON (n: Persoana) ASSERT n.name IS UNIQUE