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

Neo4j - Valg af data med MATCH ved hjælp af Cypher

Cyphers MATCH sætning giver dig mulighed for at finde data, der matcher et givet kriterium. Du kan bruge MATCH at returnere dataene eller udføre en anden handling på dem.

MATCH statement bruges til at matche et givet kriterium, men det returnerer faktisk ikke dataene. For at returnere data fra en MATCH sætning, skal vi stadig bruge RETURN klausul.

Hent en node

Her er et simpelt eksempel på brug af en MATCH sætning for at hente en node:

MATCH (p:Person)
WHERE p.Name = "Devin Townsend"
RETURN p

WHERE klausul fungerer på samme måde som SQL's WHERE klausul, idet den giver dig mulighed for at indsnævre resultaterne ved at angive ekstra kriterier.

Du kan dog opnå det samme resultat uden at bruge en WHERE klausul. Du kan også søge efter en node ved at angive den samme notation, som du brugte til at oprette noden.

Følgende kode giver de samme resultater som ovenstående udsagn:

MATCH (p:Person {Name: "Devin Townsend"})
RETURN p

Kørsel af en af ​​ovenstående forespørgsler vil resultere i, at følgende node vises:

Du har måske bemærket, at et klik på en node udvider en ydre cirkel opdelt i tre sektioner - hver repræsenterer en anden mulighed:

Hvis du klikker på den nederste sektion, udvides nodens relationer:

Relationer

Du kan også krydse relationer med MATCH udmelding. Faktisk er dette en af ​​de ting, Neo4j er rigtig god til.

For eksempel, hvis vi ville finde ud af, hvilken kunstner der udgav albummet kaldet Heavy as a Really Heavy Thing , kunne vi bruge følgende forespørgsel:

MATCH (a:Artist)-[:RELEASED]->(b:Album)
WHERE b.Name = "Heavy as a Really Heavy Thing" 
RETURN a

Dette vil returnere følgende node:

Du kan se, at det mønster, vi bruger i MATCH udsagnet er næsten selvforklarende. Det matcher alle kunstnere, der udgav et album, der havde navnet Heavy as a Really Heavy Thing .

Vi bruger variabler (dvs. a og b ), så vi kan henvise til dem senere i forespørgslen. Vi har ikke angivet nogen variabler for relationen, da vi ikke behøvede at henvise til relationen senere i forespørgslen.

Du vil måske også bemærke, at den første linje bruger det samme mønster, som vi brugte til at skabe forholdet i første omgang. Dette fremhæver enkeltheden af ​​Cypher-sproget. Vi kan bruge de samme mønstre i forskellige sammenhænge (dvs. at skabe data og hente data).

Returner alle noder

Du kan returnere alle noder i databasen ved blot at udelade eventuelle filtreringsdetaljer. Derfor vil følgende forespørgsel returnere alle noder i databasen:

MATCH (n) RETURN n

Dette resulterer i, at alle vores noder returneres:

Du kan også klikke på Rækkerne ikon på siden for at vise dataene i rækkeformat:

Vær forsigtig, når du returnerer alle noder. At gøre dette på en stor database kan have store præstationsimplikationer. Det anbefales generelt at begrænse resultaterne for at undgå utilsigtede problemer.

Se "Begræns resultaterne" nedenfor.

Begræns resultaterne

Brug LIMIT for at begrænse antallet af poster i outputtet. Det er en god idé at bruge dette, når du ikke er sikker på, hvor stort resultatsættet bliver.

Så vi kunne simpelthen tilføje LIMIT 5 til den forrige sætning for at begrænse output til 5 poster:

MATCH (n) RETURN n 
LIMIT 5

  1. PDO::fetchAll vs. PDO::fetch in a loop

  2. Postgres bruger eksisterer ikke?

  3. beregne en sum af typen tid ved hjælp af sql

  4. Hvad er SQL Server Management Studio (SSMS)?