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








