
A personal welcome to the course.
Discover how Neo4j graphs model interconnected data and simplify complex queries, learn to install Neo4j browser, populate your database, and perform Cypher queries for create, read, update, and delete data.
Define a graph as a collection of nodes and relationships. Label nodes, direct relationships by type and direction, and use properties to identify nodes and support self-relations or multiple connections.
Define properties as key-value pairs on nodes or relationships, storing names, locations, dates, coordinates, and other simple types; learn about lists, point types including four types, and optional schema constraints.
What does Neo4j and its query language look like?
In this Lecture we'll use the Neo4j Sandbox "Recommendations" dataset to explore and get a taste for what it's like to work with Neo4j.
install neo4j on mac using neo4j desktop, copy the license key, and create a local graph to explore with neo4j browser.
In this video we compare Neo4j Community, Neo4j Aura, and Neo4j Enterprise editions.
Exploring the Neo4j Desktop command bar
A brief conversation about what Neo4j Bloom is and how it may be helpful
Overview of Neo4j Browser - part 1
Going over the frames, and some of the features they provide
Overview of Neo4j Browser - part 2
Exploring favourites and the sidebar menu
Exploring the built-in help functionality
We take a look at the System Database, and show how to create and drop databases in Neo4j Enterprise edition
Import the create course data script into Neo4j, save it as a favorite, delete all data, and load the baseline course data to initialize each lecture.
Explore querying nodes in Neo4j using Cypher with match, return, and limit; inspect results in the graph view and the rows view, and filter by the person label.
Demonstrate matching relationships in Cypher using patterns of nodes and relationships, returning nodes and optionally rel, with direction, ACTED_IN, Person and Movie labels, and OR with pipe.
Learn to match movies, return movie titles, and use optional match to reveal directors who directed and possibly acted, with null when the director did not act.
Explore transitive contacts in Neo4j by traversing the has_contact relationships to print the names of person A, B, and C, and limit results to one using the Neo4j browser.
Demonstrate querying a contact chain in Neo4j using directed relationships to return p1.name, p2.name, and p3.name, limit the result to one, and exclude where p1 equals p3.
Explore querying contacts and their directed movies using Cypher's optional match. Learn to return contact names and, when available, the movie titles.
Query a person and their contacts in Neo4j using a has_contact relationship, and optionally return the movie they directed. Limit results to a single match to start.
Filter by properties teaches you to narrow search results by node and relationship properties, use labels to refine matches, and perform multi-property exact, case-sensitive filters.
Learn to filter nodes with the where clause in cypher using tom.name equals 'Tom Hanks' and tom.born equals 1956, replacing match-only filters and enabling future use of comparison operators.
Explore comparison operators in the where clause, including =, <>, <, <=, >, >=, and apply them to text and numeric properties to filter by names and birth years.
Explore boolean operators in Cypher to refine queries with and, or, in, and not, enabling complex filtering by birth year and range criteria.
Use boolean operators on paths within where clauses to find people involved in a movie like Unforgiven who did not direct it, by applying and not with the directed relation.
Learn to use regular expressions in cypher to match text patterns in movie titles, including the starting 'the', dot and star for any trailing chars, and case-insensitive searches with (?i).
Transform and order Neo4j query results by earnings using order by, limit, skip, and as, illustrated with actors and their earnings in Top Gun.
Find Tom Hanks actor contacts born in 1960 or later who earned over ten million dollars from a single movie, and return their name, birth year, and earnings.
Query a graph database to find Tom Hanks' actor contacts born in 1960 or later who earned more than 10 million from a movie, returning name, birth year, and earnings.
Sort actors by earnings in descending order using the order by clause to surface the highest earnings first. Rename columns to contactName and born, and display role.earnings as earnings.
Learn how to remove duplicate results with the distinct keyword by aggregating query results that span actors and earnings in movies, returning unique actor names.
Explore Cypher math functions, including floor, ceil, round, and haversin for spherical distances, and learn practical usage with an example computing average earnings from ACTED_IN relationships.
Identify the top earning actor by computing the highest average earnings per movie using the ACTED_IN relationship. Return the actor's name in uppercase and the rounded average.
Create a Cat node named fluffy and a GROOMS relationship to itself with a daily period property. Learn how to add properties to relationships and create relationships to existing nodes.
Add the movie 'The Hateful 8' to the movie database and include its director 'Quentin Tarantino', then try it out.
Clear the database, verify no existing 'The Hateful Eight' or 'Quentin Tarantino' using case-insensitive searches, then create the movie and director nodes and link them with a directed relationship.
Add Zoe Bell, a New Zealand actress born in 1978, to the graph database as Quentin Tarantino's contact and The Hateful Eight star, earning one million dollars.
Create Zoe Bell in cypher, connect her to Quentin Tarantino as a contact and to the movie The Hateful Eight via ACTED_IN, including earnings on the relationship.
Learn to delete nodes and relationships in Neo4j by matching all nodes, deleting related relationships first, then deleting any remaining nodes, with repopulation to illustrate alternatives.
Replicate a clean database, create a test node with a deleted property set to true, and apply optional match and detach delete to remove nodes and relationships.
Delete all has_contact relationships to Tom Hanks, then match and return Tom Hanks to verify no has_contact relationships remain.
Remove the Da Vinci Code movie node from the graph while preserving all connected actors and directors, demonstrating node deletion without losing related entities in Neo4j.
Detach delete removes the movie node and its directed, acted_in, and reviewed relationships in a Neo4j graph, preserving other nodes; the demo matches by title and returns the movie.
Set properties on nodes and relationships, add labels such as handsome, and change relationship types using Cypher, illustrated by adding sex and the Handsome label to Tom Hanks.
Match Tom Hanks, remove the sex property, and remove the Handsome label using the REMOVE keyword to update node data in Neo4j.
Using Cypher, count Tom Hanks' has_contact relationships to determine the number of contacts, then set the dynamic num_of_contacts property using the with keyword, updating the Tom Hanks node.
Revert the work from the previous exercise by removing the 'Rich' label and the 'total_earnings' property on those actors.
Remove the Rich label and total_earnings property from actors who also have the Person label, and verify the changes across nodes and query results.
Explore null values in Cypher, learn that null represents missing or undefined data when accessing absent properties, optional matches return null or empty, and out-of-range list indices yield null.
Master null gotchas in Cypher by testing with is null and is not null. Learn to handle nulls in lists and use with to return non-null addresses.
Discover how the merge clause finds or creates nodes and relationships, using Lily James and Pride and Prejudice and Zombies, with properties and the on create set sub-clause.
Use MERGE with ON CREATE SET and ON MATCH SET to manage node properties, updating created_at, created_by on create and updated_at on matches, and incrementing update_count on each update.
Create a cypher query to track how many times Keanu Reeves has viewed the movie Top Gun by ensuring a VIEWED relationship between Keanu Reeves and Top Gun, counting runs.
Learn to model a viewed relationship in Neo4j between Keanu Reeves and the Top Gun movie, using a count that initializes on create and increments on each run.
Learn how some of the worlds top tech companies structure and query their data - using graph databases.
Through a series of tutorials, this course takes you through the fundamentals of using Neo4j - the world's leading Graph Database, and its query language Cypher. You'll learn graph database concepts, and gain practical skills in using Neo4j.
By the end of the course, you'll be able to confidently run numerous queries, and understand what a graph database is.
Here's an outline of what you'll learn in the course:
In addition to learning the basics of Neo4j, you'll find a number of video exercises that help you practice everything you learn along the way.
If you've ever wondered What's the best graph database? or How do Graph Databases compare to SQL databases? then you really can't go wrong with Neo4j. Voker Pacher, a senior developer at Ebay has been quoted as saying:
"We found Neo4j to be literally thousands of times faster than our prior MySQL solution, with queries that require 10 to 100 times less code. Today Neo4j provides Ebay with functionality that was previously impossible"
Neo4j as ranked by site db-engines, is also the most popular of all graph databases on the market today.
So if you're looking at progressing your career, keeping up with the latest in database technology, and gaining a new skill in a simple, easy to understand, yet powerful way then you should take this course.