Introduction to Cypher

Neo4j
Neo4jOpen Source NOSQL Graph Database
Introduction to Cypher
Adam Cowley
Developer Advocate - @adamcowley
Introduction to Cypher
Toy
Story
Toy
Story
Nodes represent
things
Toy
Story
Movie
Nodes represent
things
Toy
Story
Movie
Nodes can be identified by
one or more labels
Nodes represent
things
Toy
Story
Movie
Animated
Nodes can be identified by
one or more labels
Nodes represent
things
Toy
Story
Movie
Animated
Nodes can be identified by
one or more labels
title: Toy Story
released: 1995
Nodes represent
things
Toy
Story
Movie
Animated
Nodes can be identified by
one or more labels
title: Toy Story
released: 1995
Nodes represent
things
Nodes can hold
properties as key/value
pairs
Toy
Story
Movie
Tom
Hanks
Actor
Toy
Story
Movie
Toy
Story
Movie
Tom
Hanks
Actor
Toy
Story
Movie
Tom
Hanks
Actor
Relationships connect two nodes
Toy
Story
Movie
Tom
Hanks
Actor
Relationships connect two nodes
ACTED_IN
Toy
Story
Movie
Tom
Hanks
Actor
Relationships connect two nodes
ACTED_IN
Relationships
have a type
Toy
Story
Movie
Tom
Hanks
Actor
Relationships connect two nodes
ACTED_IN
Relationships
have a type
Relationships
have a direction
Toy
Story
Movie
Tom
Hanks
Actor
Relationships connect two nodes
ACTED_IN
roles: Woody
Relationships
have a type
Relationships
have a direction
Toy
Story
Movie
Tom
Hanks
Actor
Relationships connect two nodes
ACTED_IN
roles: Woody
Relationships
have a type
Relationships can also
hold properties as
key/value pairs
Relationships
have a direction
Cypher
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Cypher is a declarative language that allows you
to identify patterns in your data using an ASCII-
art style syntax consisting of brackets, dashes
and arrows.
Movie
ACTED_IN
Person
(p:Person)-[r:ACTED_IN]->(m:Movie)
Writing to Neo4j
// Create a pattern
CREATE (:Person {name: "Tom Hanks"})
-[:ACTED_IN {roles: "Woody"}]->
(:Movie {title: "Toy Story"})
Writing to Neo4j
// Find or create using MERGE
MERGE (p:Person {name: "Tom Hanks"})
Writing to Neo4j
// Find or create using MERGE
MERGE (p:Person {name: "Tom Hanks"})
MERGE (m:Movie {title: "Toy Story"})
Writing to Neo4j
// Find or create using MERGE
MERGE (p:Person {name: "Tom Hanks"})
MERGE (m:Movie {title: "Toy Story"})
MERGE (p)-[r:ACTED_IN]->(m)
Writing to Neo4j
// Find or create using MERGE
MERGE (p:Person {name: "Tom Hanks"})
MERGE (m:Movie {title: "Toy Story"})
MERGE (p)-[r:ACTED_IN]->(m)
SET r.roles = "Woody"
Reading from Neo4j
// Find a pattern in the database
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
Reading from Neo4j
// Find a pattern in the database
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
// Filter on a node property
WHERE m.title = "Toy Story"
// Find a pattern in the database
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
// Filter on a node property
WHERE m.title = "Toy Story"
// Choose what to return
RETURN p.name AS actor, r.roles AS roles
Reading from Neo4j
// Find a pattern in the database
SQL Equivalent
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
FROM/JOIN
// Filter on a node property
WHERE m.title = "Toy Story"
WHERE
// Choose what to return
RETURN p.name AS actor, r.roles AS roles SELECT
Reading from Neo4j
// Actors who acted with Tom Hanks also acted in...
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
<-[:ACTED_IN]-(p2)-[r2:ACTED_IN]->(m2:Movie)
WHERE p.name = "Tom Hanks"
// Return their name and a list of the movie titles
RETURN p2.name AS actor, collect(m2.title) AS
movies
Reading from Neo4j
Introduction to Cypher
LOAD CSV WITH HEADERS FROM 'file:///stations.csv' AS row
MERGE (s:Station {id: row.id})
SET s.name = row.name,
s.zone = row.zone,
s.location = point({
latitude: toFloat(row.latitude),
longitude: toFloat(row.longitude)
})
Going Underground
LOAD CSV WITH HEADERS FROM 'file:///lines.csv' AS row
MERGE (l:Line {id: row.line})
SET l += row {
.name,
.colour,
.stripe
}
Going Underground
Going Underground
LOAD CSV WITH HEADERS FROM 'file:///stops.csv' AS row
MATCH (s1:Station {id: row.station1})
MATCH (s2:Station {id: row.station2})
MATCH (l:Line {id: row.line})
CALL apoc.create.relationship(
s1,
toUpper(replace(l.name, ' ', '_')), {}, s2
) YIELD rel
Introduction to Cypher
Introduction to Cypher
MATCH (start:Station {name: "Liverpool Street"})
MATCH (end:Station {name: "Kensington (Olympia)"})
MATCH path = allShortestPaths((start)-[*..99]-(end))
WHERE all(r in relationships(path) WHERE not r:`WATERLOO_&_CITY_LINE`)
AND all(n in nodes(path) WHERE not r:Busy)
RETURN path
● Completely Free
● Hands-on Courses
teaching Neo4j Fundamentals, Cypher,
Drivers and Graph Data Science
● Curated Learning Paths
catering for everyone from beginners to
experts
● Free Certifications
graphacademy.neo4j.com
Learn more with
1 of 48

Recommended

Imdb import presentation by
Imdb import presentationImdb import presentation
Imdb import presentationJoshua Bae
2.1K views30 slides
Neo4J Coursework - Sammy Hegab 22-04-2016 by
Neo4J Coursework - Sammy Hegab  22-04-2016Neo4J Coursework - Sammy Hegab  22-04-2016
Neo4J Coursework - Sammy Hegab 22-04-2016Sammy Hegab
136 views7 slides
How would I write this SQL correctly Let us consider the f.pdf by
How would I write this SQL correctly  Let us consider the f.pdfHow would I write this SQL correctly  Let us consider the f.pdf
How would I write this SQL correctly Let us consider the f.pdfsukhvir71
4 views1 slide
Keyword Search over RDF Graphs by
Keyword Search over RDF GraphsKeyword Search over RDF Graphs
Keyword Search over RDF GraphsRoi Blanco
1.4K views23 slides
Introduction to Cypher.pptx by
Introduction to Cypher.pptxIntroduction to Cypher.pptx
Introduction to Cypher.pptxtuanpham21012003
1 view29 slides
Training Week: Introduction to Neo4j by
Training Week: Introduction to Neo4jTraining Week: Introduction to Neo4j
Training Week: Introduction to Neo4jNeo4j
559 views47 slides

More Related Content

Similar to Introduction to Cypher

As audits by
As auditsAs audits
As auditsemilyblyth
147 views6 slides
TMDb movie dataset by kaggle by
TMDb movie dataset by kaggleTMDb movie dataset by kaggle
TMDb movie dataset by kaggleMouhamadou Gueye, PhD
2.2K views1 slide
Data Modeling Using the EntityRelationship (ER) Model by
Data Modeling Using the EntityRelationship (ER) ModelData Modeling Using the EntityRelationship (ER) Model
Data Modeling Using the EntityRelationship (ER) Modelsontumax
1.6K views46 slides
Introduction to neo4j - a hands-on crash course by
Introduction to neo4j - a hands-on crash courseIntroduction to neo4j - a hands-on crash course
Introduction to neo4j - a hands-on crash courseNeo4j
263 views47 slides
LIS 60020 Metadata Schema by
LIS 60020 Metadata SchemaLIS 60020 Metadata Schema
LIS 60020 Metadata SchemaLaura Levy
514 views9 slides
Intro to TypeDB and TypeQL | A strongly-typed database by
Intro to TypeDB and TypeQL | A strongly-typed databaseIntro to TypeDB and TypeQL | A strongly-typed database
Intro to TypeDB and TypeQL | A strongly-typed databaseVaticle
273 views88 slides

Similar to Introduction to Cypher (12)

Data Modeling Using the EntityRelationship (ER) Model by sontumax
Data Modeling Using the EntityRelationship (ER) ModelData Modeling Using the EntityRelationship (ER) Model
Data Modeling Using the EntityRelationship (ER) Model
sontumax1.6K views
Introduction to neo4j - a hands-on crash course by Neo4j
Introduction to neo4j - a hands-on crash courseIntroduction to neo4j - a hands-on crash course
Introduction to neo4j - a hands-on crash course
Neo4j263 views
LIS 60020 Metadata Schema by Laura Levy
LIS 60020 Metadata SchemaLIS 60020 Metadata Schema
LIS 60020 Metadata Schema
Laura Levy514 views
Intro to TypeDB and TypeQL | A strongly-typed database by Vaticle
Intro to TypeDB and TypeQL | A strongly-typed databaseIntro to TypeDB and TypeQL | A strongly-typed database
Intro to TypeDB and TypeQL | A strongly-typed database
Vaticle273 views
Introduction to Graphs with Neo4j by Neo4j
Introduction to Graphs with Neo4jIntroduction to Graphs with Neo4j
Introduction to Graphs with Neo4j
Neo4j245 views
4Developers: Norbert Wójtowicz- Data-Oriented Architecture by PROIDEA
4Developers: Norbert Wójtowicz- Data-Oriented Architecture4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented Architecture
PROIDEA159 views
Formai sec by ttasi86
Formai secFormai sec
Formai sec
ttasi86223 views
Uso di Schema.org per il tuo sito web by semrush_webinars
Uso di Schema.org per il tuo sito webUso di Schema.org per il tuo sito web
Uso di Schema.org per il tuo sito web
semrush_webinars161 views

More from Neo4j

FIMA 2023 Neo4j & FS - Entity Resolution.pptx by
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
8 views26 slides
Operations & Data Graph by
Operations & Data GraphOperations & Data Graph
Operations & Data GraphNeo4j
42 views25 slides
TAGTTOO: La nova xarxa social by
TAGTTOO: La nova xarxa socialTAGTTOO: La nova xarxa social
TAGTTOO: La nova xarxa socialNeo4j
26 views19 slides
El Arte de lo Possible by
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo PossibleNeo4j
48 views35 slides
Neo4j y GenAI by
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI Neo4j
54 views41 slides
Roadmap y Novedades de producto by
Roadmap y Novedades de productoRoadmap y Novedades de producto
Roadmap y Novedades de productoNeo4j
56 views33 slides

More from Neo4j(20)

FIMA 2023 Neo4j & FS - Entity Resolution.pptx by Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j8 views
Operations & Data Graph by Neo4j
Operations & Data GraphOperations & Data Graph
Operations & Data Graph
Neo4j42 views
TAGTTOO: La nova xarxa social by Neo4j
TAGTTOO: La nova xarxa socialTAGTTOO: La nova xarxa social
TAGTTOO: La nova xarxa social
Neo4j26 views
El Arte de lo Possible by Neo4j
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo Possible
Neo4j48 views
Neo4j y GenAI by Neo4j
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI
Neo4j54 views
Roadmap y Novedades de producto by Neo4j
Roadmap y Novedades de productoRoadmap y Novedades de producto
Roadmap y Novedades de producto
Neo4j56 views
Neo4j : Graphes de Connaissance, IA et LLMs by Neo4j
Neo4j : Graphes de Connaissance, IA et LLMsNeo4j : Graphes de Connaissance, IA et LLMs
Neo4j : Graphes de Connaissance, IA et LLMs
Neo4j53 views
Les nouveautés produit Neo4j by Neo4j
 Les nouveautés produit Neo4j Les nouveautés produit Neo4j
Les nouveautés produit Neo4j
Neo4j31 views
Sopra Steria : Analyse intelligente des réseaux dans le domaine des télécommu... by Neo4j
Sopra Steria : Analyse intelligente des réseaux dans le domaine des télécommu...Sopra Steria : Analyse intelligente des réseaux dans le domaine des télécommu...
Sopra Steria : Analyse intelligente des réseaux dans le domaine des télécommu...
Neo4j27 views
Generali : SPIDER, notre produit au cœur des enjeux Generali en termes de Com... by Neo4j
Generali : SPIDER, notre produit au cœur des enjeux Generali en termes de Com...Generali : SPIDER, notre produit au cœur des enjeux Generali en termes de Com...
Generali : SPIDER, notre produit au cœur des enjeux Generali en termes de Com...
Neo4j54 views
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf by Neo4j
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdfNeo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j58 views
Neo4j & AWS Bedrock workshop at GraphSummit London 14 Nov 2023.pptx by Neo4j
Neo4j & AWS Bedrock workshop at GraphSummit London 14 Nov 2023.pptxNeo4j & AWS Bedrock workshop at GraphSummit London 14 Nov 2023.pptx
Neo4j & AWS Bedrock workshop at GraphSummit London 14 Nov 2023.pptx
Neo4j55 views
Neo4j workshop at GraphSummit London 14 Nov 2023.pdf by Neo4j
Neo4j workshop at GraphSummit London 14 Nov 2023.pdfNeo4j workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j53 views
Neo4j Product Updates & Knowledge Graphs at GraphSummit London 14 Nov 2023.pptx by Neo4j
Neo4j Product Updates & Knowledge Graphs at GraphSummit London 14 Nov 2023.pptxNeo4j Product Updates & Knowledge Graphs at GraphSummit London 14 Nov 2023.pptx
Neo4j Product Updates & Knowledge Graphs at GraphSummit London 14 Nov 2023.pptx
Neo4j66 views
AstraZeneca at Neo4j GraphSummit London 14Nov23.pptx by Neo4j
AstraZeneca at Neo4j GraphSummit London 14Nov23.pptxAstraZeneca at Neo4j GraphSummit London 14Nov23.pptx
AstraZeneca at Neo4j GraphSummit London 14Nov23.pptx
Neo4j45 views
Google Cloud at GraphSummit London 14 Nov 2023.pptx by Neo4j
Google Cloud at GraphSummit London 14 Nov 2023.pptxGoogle Cloud at GraphSummit London 14 Nov 2023.pptx
Google Cloud at GraphSummit London 14 Nov 2023.pptx
Neo4j27 views
The Art of the Possible with Graph - Sudhir Hasbe - GraphSummit London 14 Nov... by Neo4j
The Art of the Possible with Graph - Sudhir Hasbe - GraphSummit London 14 Nov...The Art of the Possible with Graph - Sudhir Hasbe - GraphSummit London 14 Nov...
The Art of the Possible with Graph - Sudhir Hasbe - GraphSummit London 14 Nov...
Neo4j77 views
Northern Gas Networks and CKDelta at Neo4j GraphSummit London 14Nov23.pptx by Neo4j
Northern Gas Networks and CKDelta at Neo4j GraphSummit London 14Nov23.pptxNorthern Gas Networks and CKDelta at Neo4j GraphSummit London 14Nov23.pptx
Northern Gas Networks and CKDelta at Neo4j GraphSummit London 14Nov23.pptx
Neo4j46 views
Peek into Neo4j Product Strategy and Roadmap by Neo4j
Peek into Neo4j Product Strategy and RoadmapPeek into Neo4j Product Strategy and Roadmap
Peek into Neo4j Product Strategy and Roadmap
Neo4j87 views
Transforming Intelligence Analysis with Knowledge Graphs by Neo4j
Transforming Intelligence Analysis with Knowledge GraphsTransforming Intelligence Analysis with Knowledge Graphs
Transforming Intelligence Analysis with Knowledge Graphs
Neo4j61 views

Recently uploaded

AvizoImageSegmentation.pptx by
AvizoImageSegmentation.pptxAvizoImageSegmentation.pptx
AvizoImageSegmentation.pptxnathanielbutterworth1
6 views14 slides
Advanced_Recommendation_Systems_Presentation.pptx by
Advanced_Recommendation_Systems_Presentation.pptxAdvanced_Recommendation_Systems_Presentation.pptx
Advanced_Recommendation_Systems_Presentation.pptxneeharikasingh29
5 views9 slides
apple.pptx by
apple.pptxapple.pptx
apple.pptxhoneybeeqwe
5 views15 slides
[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ... by
[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ...[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ...
[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ...DataScienceConferenc1
6 views15 slides
CRIJ4385_Death Penalty_F23.pptx by
CRIJ4385_Death Penalty_F23.pptxCRIJ4385_Death Penalty_F23.pptx
CRIJ4385_Death Penalty_F23.pptxyvettemm100
7 views24 slides
[DSC Europe 23] Aleksandar Tomcic - Adversarial Attacks by
[DSC Europe 23] Aleksandar Tomcic - Adversarial Attacks[DSC Europe 23] Aleksandar Tomcic - Adversarial Attacks
[DSC Europe 23] Aleksandar Tomcic - Adversarial AttacksDataScienceConferenc1
5 views20 slides

Recently uploaded(20)

Advanced_Recommendation_Systems_Presentation.pptx by neeharikasingh29
Advanced_Recommendation_Systems_Presentation.pptxAdvanced_Recommendation_Systems_Presentation.pptx
Advanced_Recommendation_Systems_Presentation.pptx
[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ... by DataScienceConferenc1
[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ...[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ...
[DSC Europe 23][AI:CSI] Aleksa Stojanovic - Applying AI for Threat Detection ...
CRIJ4385_Death Penalty_F23.pptx by yvettemm100
CRIJ4385_Death Penalty_F23.pptxCRIJ4385_Death Penalty_F23.pptx
CRIJ4385_Death Penalty_F23.pptx
yvettemm1007 views
Chapter 3b- Process Communication (1) (1)(1) (1).pptx by ayeshabaig2004
Chapter 3b- Process Communication (1) (1)(1) (1).pptxChapter 3b- Process Communication (1) (1)(1) (1).pptx
Chapter 3b- Process Communication (1) (1)(1) (1).pptx
ayeshabaig20047 views
Survey on Factuality in LLM's.pptx by NeethaSherra1
Survey on Factuality in LLM's.pptxSurvey on Factuality in LLM's.pptx
Survey on Factuality in LLM's.pptx
NeethaSherra17 views
[DSC Europe 23] Predrag Ilic & Simeon Rilling - From Data Lakes to Data Mesh ... by DataScienceConferenc1
[DSC Europe 23] Predrag Ilic & Simeon Rilling - From Data Lakes to Data Mesh ...[DSC Europe 23] Predrag Ilic & Simeon Rilling - From Data Lakes to Data Mesh ...
[DSC Europe 23] Predrag Ilic & Simeon Rilling - From Data Lakes to Data Mesh ...
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation by DataScienceConferenc1
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation
[DSC Europe 23] Stefan Mrsic_Goran Savic - Evolving Technology Excellence.pptx by DataScienceConferenc1
[DSC Europe 23] Stefan Mrsic_Goran Savic - Evolving Technology Excellence.pptx[DSC Europe 23] Stefan Mrsic_Goran Savic - Evolving Technology Excellence.pptx
[DSC Europe 23] Stefan Mrsic_Goran Savic - Evolving Technology Excellence.pptx
Ukraine Infographic_22NOV2023_v2.pdf by AnastosiyaGurin
Ukraine Infographic_22NOV2023_v2.pdfUkraine Infographic_22NOV2023_v2.pdf
Ukraine Infographic_22NOV2023_v2.pdf
AnastosiyaGurin1.4K views
UNEP FI CRS Climate Risk Results.pptx by pekka28
UNEP FI CRS Climate Risk Results.pptxUNEP FI CRS Climate Risk Results.pptx
UNEP FI CRS Climate Risk Results.pptx
pekka2811 views
[DSC Europe 23][AI:CSI] Dragan Pleskonjic - AI Impact on Cybersecurity and P... by DataScienceConferenc1
[DSC Europe 23][AI:CSI]  Dragan Pleskonjic - AI Impact on Cybersecurity and P...[DSC Europe 23][AI:CSI]  Dragan Pleskonjic - AI Impact on Cybersecurity and P...
[DSC Europe 23][AI:CSI] Dragan Pleskonjic - AI Impact on Cybersecurity and P...
Short Story Assignment by Kelly Nguyen by kellynguyen01
Short Story Assignment by Kelly NguyenShort Story Assignment by Kelly Nguyen
Short Story Assignment by Kelly Nguyen
kellynguyen0119 views
LIVE OAK MEMORIAL PARK.pptx by ms2332always
LIVE OAK MEMORIAL PARK.pptxLIVE OAK MEMORIAL PARK.pptx
LIVE OAK MEMORIAL PARK.pptx
ms2332always7 views
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M... by DataScienceConferenc1
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...

Introduction to Cypher

  • 1. Introduction to Cypher Adam Cowley Developer Advocate - @adamcowley
  • 6. Toy Story Movie Nodes can be identified by one or more labels Nodes represent things
  • 7. Toy Story Movie Animated Nodes can be identified by one or more labels Nodes represent things
  • 8. Toy Story Movie Animated Nodes can be identified by one or more labels title: Toy Story released: 1995 Nodes represent things
  • 9. Toy Story Movie Animated Nodes can be identified by one or more labels title: Toy Story released: 1995 Nodes represent things Nodes can hold properties as key/value pairs
  • 15. Toy Story Movie Tom Hanks Actor Relationships connect two nodes ACTED_IN Relationships have a type
  • 16. Toy Story Movie Tom Hanks Actor Relationships connect two nodes ACTED_IN Relationships have a type Relationships have a direction
  • 17. Toy Story Movie Tom Hanks Actor Relationships connect two nodes ACTED_IN roles: Woody Relationships have a type Relationships have a direction
  • 18. Toy Story Movie Tom Hanks Actor Relationships connect two nodes ACTED_IN roles: Woody Relationships have a type Relationships can also hold properties as key/value pairs Relationships have a direction
  • 20. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows.
  • 21. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows.
  • 22. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person
  • 23. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 24. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 25. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 26. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 27. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 28. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 29. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 30. Cypher is a declarative language that allows you to identify patterns in your data using an ASCII- art style syntax consisting of brackets, dashes and arrows. Movie ACTED_IN Person (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 31. Writing to Neo4j // Create a pattern CREATE (:Person {name: "Tom Hanks"}) -[:ACTED_IN {roles: "Woody"}]-> (:Movie {title: "Toy Story"})
  • 32. Writing to Neo4j // Find or create using MERGE MERGE (p:Person {name: "Tom Hanks"})
  • 33. Writing to Neo4j // Find or create using MERGE MERGE (p:Person {name: "Tom Hanks"}) MERGE (m:Movie {title: "Toy Story"})
  • 34. Writing to Neo4j // Find or create using MERGE MERGE (p:Person {name: "Tom Hanks"}) MERGE (m:Movie {title: "Toy Story"}) MERGE (p)-[r:ACTED_IN]->(m)
  • 35. Writing to Neo4j // Find or create using MERGE MERGE (p:Person {name: "Tom Hanks"}) MERGE (m:Movie {title: "Toy Story"}) MERGE (p)-[r:ACTED_IN]->(m) SET r.roles = "Woody"
  • 36. Reading from Neo4j // Find a pattern in the database MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
  • 37. Reading from Neo4j // Find a pattern in the database MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) // Filter on a node property WHERE m.title = "Toy Story"
  • 38. // Find a pattern in the database MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) // Filter on a node property WHERE m.title = "Toy Story" // Choose what to return RETURN p.name AS actor, r.roles AS roles Reading from Neo4j
  • 39. // Find a pattern in the database SQL Equivalent MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) FROM/JOIN // Filter on a node property WHERE m.title = "Toy Story" WHERE // Choose what to return RETURN p.name AS actor, r.roles AS roles SELECT Reading from Neo4j
  • 40. // Actors who acted with Tom Hanks also acted in... MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) <-[:ACTED_IN]-(p2)-[r2:ACTED_IN]->(m2:Movie) WHERE p.name = "Tom Hanks" // Return their name and a list of the movie titles RETURN p2.name AS actor, collect(m2.title) AS movies Reading from Neo4j
  • 42. LOAD CSV WITH HEADERS FROM 'file:///stations.csv' AS row MERGE (s:Station {id: row.id}) SET s.name = row.name, s.zone = row.zone, s.location = point({ latitude: toFloat(row.latitude), longitude: toFloat(row.longitude) }) Going Underground
  • 43. LOAD CSV WITH HEADERS FROM 'file:///lines.csv' AS row MERGE (l:Line {id: row.line}) SET l += row { .name, .colour, .stripe } Going Underground
  • 44. Going Underground LOAD CSV WITH HEADERS FROM 'file:///stops.csv' AS row MATCH (s1:Station {id: row.station1}) MATCH (s2:Station {id: row.station2}) MATCH (l:Line {id: row.line}) CALL apoc.create.relationship( s1, toUpper(replace(l.name, ' ', '_')), {}, s2 ) YIELD rel
  • 47. MATCH (start:Station {name: "Liverpool Street"}) MATCH (end:Station {name: "Kensington (Olympia)"}) MATCH path = allShortestPaths((start)-[*..99]-(end)) WHERE all(r in relationships(path) WHERE not r:`WATERLOO_&_CITY_LINE`) AND all(n in nodes(path) WHERE not r:Busy) RETURN path
  • 48. ● Completely Free ● Hands-on Courses teaching Neo4j Fundamentals, Cypher, Drivers and Graph Data Science ● Curated Learning Paths catering for everyone from beginners to experts ● Free Certifications graphacademy.neo4j.com Learn more with

Editor's Notes

  1. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  2. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  3. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  4. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  5. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  6. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  7. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  8. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  9. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  10. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  11. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  12. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  13. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  14. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  15. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  16. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  17. Graphs essentially consist of nodes, and these nodes represent things, they represent entities. In this case it's a MacBook, it could be a product, a car, a location, it's something physical.We can identify these nodes with one or more labels.
  18. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  19. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  20. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  21. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  22. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  23. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  24. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  25. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  26. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  27. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  28. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.
  29. And the way we query this structure of known term relationships is with a language called cypher. Cypher is a declarative query language that allows you to identify patterns in your data. In this case, a customer who is rated a product. We do that by drawing the patterns on screen using an ASCII-art style syntax.