The GraphRAG Manifesto: Unlock Better GenAI Results With Knowledge Graphs | Read Now

Neo4j logo

Cypher

Frequently Asked Questions

General

Is Cypher open source?
Like Neo4j, Cypher is open source. The openCypher project provides all of the specifications needed. It provides an intuitive way to work with property graphs and is the best entry point to the graph query language (GQL) standard being developed by ISO.
Why should I learn Cypher?
Cypher is the most widely adopted, fully specified, and declarative open query language for property graph databases. Created by Neo4j, Cypher has been adopted by more than 10 different database products and hundreds of thousands of developers and data scientists worldwide.
How do I run Cypher against a graph database?
Cypher is used transactionally via language drivers for Java, JavaScript, Python, .Net, Go, and community drivers for PHP, Perl, Ruby, Rust, and more. Neo4j also offers an HTTP API that sends Cypher statements to a server. And Neo4j Browser, a visual tool, runs Cypher statements while cypher-shell works on the command line. Many other tools, such as client-side applications or server-side backends, rely on Cypher to interact with graph databases.
What is the difference between SPARQL and Cypher Query Language?
SPARQL is the query language for accessing data in the Resource Description Framework (RDF). Cypher is the corresponding language for the data represented in property graphs. Learn more about their differences.
What are some key differences between SQL vs Cypher?
Cypher is a declarative query language for graphs, based on graph pattern syntax (ascii-art). It focuses on readability, composability, and efficient syntax.  SQL is the declarative query language for relational databases (“relational” in this instance doesn't mean “relationships”) that has been used since the 1970s. It also allows less-technical users to interact with databases. Originally intended for single table operations on form data, joins were added later. It has been evolving ever since, with support for geo, json, xml, analytics, etc.  Some of the differences between Cypher and SQL include: 

Cypher

SQL

RETURN SELECT
MATCH FROM...JOIN ON...
WHERE, ORDER BY, LIMIT, SKIP are the same
Automatic grouping GROUP BY
Query pipelining with WITH no need for HAVING HAVING
Both have support for (user defined) procedure and function calls
COLLECT and UNWIND to aggregate and expand lists of data
No window functions
Subqueries via CALL {} syntax FROM()
Data loading with LOAD CSV
Batching via CALL {} IN TRANSACTIONS
Variable path length pattern syntax Recursive common table expressions (CTEs)
  Learn more about their differences.
Is Cypher Query Language related to the Graph Query Language (GQL) ISO project?
Cypher is the key language that inspired the GQL ISO project that is creating a standard graph query language. The international committees that developed the SQL standard have agreed to initiate GQL as a new database query language. Soon to be codified as the international standard declarative query language for property graphs, GQL represents the culmination of years of effort by Neo4j and the broader database community.
Are GQL and GraphQL the same?
No. GQL is a ISO project that is creating a standard graph query language, whereas GraphQL is a query language for APIs. To learn more about GraphQL, visit GraphQL.org or refer to Neo4j’s GraphQL library.