Glossary of keywords
Clauses
| Clause | Category | Description | 
|---|---|---|
| Reading/Writing | Invoke a procedure deployed in the database. | |
| Reading/Writing | Evaluates a subquery, typically used for post-union processing or aggregations. | |
| Writing | Create nodes and relationships. | |
| CREATE CONSTRAINT [existence] [IF NOT EXISTS] ON (n:Label) ASSERT exists(n.property) | Schema | Create a constraint ensuring that all nodes with a particular label have a certain property. | 
| CREATE CONSTRAINT [node_key] [IF NOT EXISTS] ON (n:Label) ASSERT (n.prop1, …, n.propN) IS NODE KEY | Schema | Create a constraint ensuring all nodes with a particular label have all the specified properties and that the combination of property values is unique; i.e. ensures existence and uniqueness. | 
| CREATE CONSTRAINT [existence] [IF NOT EXISTS] ON ()-[r:REL_TYPE]-() ASSERT exists(r.property) | Schema | Create a constraint ensuring that all relationships with a particular type have a certain property. | 
| CREATE CONSTRAINT [uniqueness] [IF NOT EXISTS] ON (n:Label) ASSERT n.property IS UNIQUE | Schema | Create a constraint ensuring the uniqueness of the combination of node label and property value for a particular property key across all nodes. | 
| CREATE INDEX [single] [IF NOT EXISTS] FOR (n:Label) ON (n.property) | Schema | Create an index on all nodes with a particular label and a single property; i.e. create a single-property index. | 
| CREATE INDEX [composite] [IF NOT EXISTS] FOR (n:Label) ON (n.prop1, …, n.propN) | Schema | Create an index on all nodes with a particular label and multiple properties; i.e. create a composite index. | 
| Writing | Delete nodes, relationships or paths. Any node to be deleted must also have all associated relationships explicitly deleted. | |
| Writing | Delete a node or set of nodes. All associated relationships will automatically be deleted. | |
| Schema | Drop a constraint using the name. | |
| Schema | Drop an index using the name. | |
| Writing | Update data within a list, whether components of a path, or the result of aggregation. | |
| Reading sub-clause | A sub-clause used to constrain the number of rows in the output. | |
| Importing data | Use when importing data from CSV files. | |
| Reading | Specify the patterns to search for in the database. | |
| Reading/Writing | Ensures that a pattern exists in the graph. Either the pattern already exists, or it needs to be created. | |
| Reading/Writing | Used in conjunction with  | |
| Reading/Writing | Used in conjunction with  | |
| Reading | Specify the patterns to search for in the database while using  | |
| Reading sub-clause | A sub-clause following  | |
| Writing | Remove properties and labels from nodes and relationships. | |
| Projecting | Defines what to include in the query result set. | |
| Writing | Update labels on nodes and properties on nodes and relationships. | |
| Reading/Writing | A sub-clause defining from which row to start including the rows in the output. | |
| Set operations | Combines the result of multiple queries. Duplicates are removed. | |
| Set operations | Combines the result of multiple queries. Duplicates are retained. | |
| Projecting | Expands a list into a sequence of rows. | |
| Multiple graphs | Determines which graph a query, or query part, is executed against. | |
| Hint | Index hints are used to specify which index, if any, the planner should use as a starting point. | |
| Hint | Index seek hint instructs the planner to use an index seek for this clause. | |
| Hint | Join hints are used to enforce a join operation at specified points. | |
| Hint | This query hint may be used to prevent an out-of-memory error from occurring when importing large amounts of data using  | |
| Hint | Scan hints are used to force the planner to do a label scan (followed by a filtering operation) instead of using an index. | |
| Projecting | Allows query parts to be chained together, piping the results from one to be used as starting points or criteria in the next. | |
| Reading sub-clause | A sub-clause used to add constraints to the patterns in a  | |
| Reading sub-clause | An existential sub-query used to filter the results of a  | 
Operators
| Operator | Category | Description | 
|---|---|---|
| Mathematical | Modulo division | |
| Mathematical | Multiplication | |
| Temporal | Multiplying a duration with a number | |
| Mathematical | Addition | |
| String | Concatenation | |
| Property | Property mutation | |
| List | Concatenation | |
| Temporal | Adding two durations, or a duration and a temporal instant | |
| Mathematical | Subtraction or unary minus | |
| Temporal | Subtracting a duration from a temporal instant or from another duration | |
| Map | Static value access by key | |
| Property | Static property access | |
| Mathematical | Division | |
| Temporal | Dividing a duration by a number | |
| Comparison | Less than | |
| Comparison | Less than or equal to | |
| Comparison | Inequality | |
| Comparison | Equality | |
| Property | Property replacement | |
| String | Regular expression match | |
| Comparison | Greater than | |
| Comparison | Greater than or equal to | |
| Boolean | Conjunction | |
| String comparison | Case-sensitive inclusion search | |
| Aggregation | Duplicate removal | |
| String comparison | Case-sensitive suffix search | |
| List | List element existence check | |
| Comparison | Non- | |
| Comparison | 
 | |
| Boolean | Negation | |
| Boolean | Disjunction | |
| String comparison | Case-sensitive prefix search | |
| Boolean | Exclusive disjunction | |
| Map | Subscript (dynamic value access by key) | |
| Property | Subscript (dynamic property access) | |
| List | Subscript (accessing element(s) in a list) | |
| Mathematical | Exponentiation | 
Functions
| Function | Category | Description | 
|---|---|---|
| Numeric | Returns the absolute value of a number. | |
| Trigonometric | Returns the arccosine of a number in radians. | |
| Predicate | Tests whether the predicate holds for all elements in a list. | |
| Predicate | Tests whether the predicate holds for at least one element in a list. | |
| Trigonometric | Returns the arcsine of a number in radians. | |
| Trigonometric | Returns the arctangent of a number in radians. | |
| Trigonometric | Returns the arctangent2 of a set of coordinates in radians. | |
| Aggregating | Returns the average of a set of values. | |
| Numeric | Returns the smallest floating point number that is greater than or equal to a number and equal to a mathematical integer. | |
| Scalar | Returns the first non- | |
| Aggregating | Returns a list containing the values returned by an expression. | |
| Trigonometric | Returns the cosine of a number. | |
| Trigonometric | Returns the cotangent of a number. | |
| Aggregating | Returns the number of values or rows. | |
| Temporal | Returns the current Date. | |
| Temporal | Returns a calendar (Year-Month-Day) Date. | |
| Temporal | Returns a week (Year-Week-Day) Date. | |
| Temporal | Returns a quarter (Year-Quarter-Day) Date. | |
| Temporal | Returns an ordinal (Year-Day) Date. | |
| Temporal | Returns a Date by parsing a string. | |
| Temporal | Returns a Date from a map of another temporal value’s components. | |
| Temporal | Returns the current Date using the  | |
| Temporal | Returns the current Date using the  | |
| Temporal | Returns the current Date using the  | |
| Temporal | Returns a Date obtained by truncating a value at a specific component boundary. Truncation summary. | |
| Temporal | Returns the current DateTime. | |
| Temporal | Returns a calendar (Year-Month-Day) DateTime. | |
| Temporal | Returns a week (Year-Week-Day) DateTime. | |
| Temporal | Returns a quarter (Year-Quarter-Day) DateTime. | |
| Temporal | Returns an ordinal (Year-Day) DateTime. | |
| Temporal | Returns a DateTime by parsing a string. | |
| Temporal | Returns a DateTime from a map of another temporal value’s components. | |
| Temporal | Returns a DateTime from a timestamp. | |
| Temporal | Returns the current DateTime using the  | |
| Temporal | Returns the current DateTime using the  | |
| Temporal | Returns the current DateTime using the  | |
| Temporal | Returns a DateTime obtained by truncating a value at a specific component boundary. Truncation summary. | |
| Trigonometric | Converts radians to degrees. | |
| Spatial | Returns a floating point number representing the geodesic distance between any two points in the same CRS. | |
| Temporal | Returns a Duration from a map of its components. | |
| Temporal | Returns a Duration by parsing a string. | |
| Temporal | Returns a Duration equal to the difference between two given instants. | |
| Temporal | Returns a Duration equal to the difference in whole days or weeks between two given instants. | |
| Temporal | Returns a Duration equal to the difference in whole months, quarters or years between two given instants. | |
| Temporal | Returns a Duration equal to the difference in seconds and fractions of seconds, or minutes or hours, between two given instants. | |
| Logarithmic | Returns the base of the natural logarithm,  | |
| Scalar | Returns the end node of a relationship. | |
| Predicate | Returns true if a match for the pattern exists in the graph, or if the specified property exists in the node, relationship or map. | |
| Logarithmic | Returns  | |
| Numeric | Returns the largest floating point number that is less than or equal to a number and equal to a mathematical integer. | |
| Trigonometric | Returns half the versine of a number. | |
| Scalar | Returns the first element in a list. | |
| Scalar | Returns the id of a relationship or node. | |
| List | Returns a list containing the string representations for all the property names of a node, relationship, or map. | |
| List | Returns a list containing the string representations for all the labels of a node. | |
| Scalar | Returns the last element in a list. | |
| String | Returns a string containing the specified number of leftmost characters of the original string. | |
| Scalar | Returns the length of a path. | |
| Temporal | Returns the current LocalDateTime. | |
| Temporal | Returns a calendar (Year-Month-Day) LocalDateTime. | |
| Temporal | Returns a week (Year-Week-Day) LocalDateTime. | |
| Temporal | Returns a quarter (Year-Quarter-Day) DateTime. | |
| Temporal | Returns an ordinal (Year-Day) LocalDateTime. | |
| Temporal | Returns a LocalDateTime by parsing a string. | |
| Temporal | Returns a LocalDateTime from a map of another temporal value’s components. | |
| Temporal | Returns the current LocalDateTime using the  | |
| Temporal | Returns the current LocalDateTime using the  | |
| Temporal | Returns the current LocalDateTime using the  | |
| Temporal | Returns a LocalDateTime obtained by truncating a value at a specific component boundary. Truncation summary. | |
| Temporal | Returns the current LocalTime. | |
| Temporal | Returns a LocalTime with the specified component values. | |
| Temporal | Returns a LocalTime by parsing a string. | |
| Temporal | Returns a LocalTime from a map of another temporal value’s components. | |
| Temporal | Returns the current LocalTime using the  | |
| Temporal | Returns the current LocalTime using the  | |
| Temporal | Returns the current LocalTime using the  | |
| Temporal | Returns a LocalTime obtained by truncating a value at a specific component boundary. Truncation summary. | |
| Logarithmic | Returns the natural logarithm of a number. | |
| Logarithmic | Returns the common logarithm (base 10) of a number. | |
| String | Returns the original string with leading whitespace removed. | |
| Aggregating | Returns the maximum value in a set of values. | |
| Aggregating | Returns the minimum value in a set of values. | |
| List | Returns a list containing all the nodes in a path. | |
| Predicate | Returns true if the predicate holds for no element in a list. | |
| Aggregating | Returns the percentile of the given value over a group using linear interpolation. | |
| Aggregating | Returns the nearest value to the given percentile over a group using a rounding method. | |
| Trigonometric | Returns the mathematical constant pi. | |
| Spatial | Returns a 2D point object, given two coordinate values in the Cartesian coordinate system. | |
| Spatial | Returns a 3D point object, given three coordinate values in the Cartesian coordinate system. | |
| Spatial | Returns a 2D point object, given two coordinate values in the WGS 84 coordinate system. | |
| Spatial | Returns a 3D point object, given three coordinate values in the WGS 84 coordinate system. | |
| Scalar | Returns a map containing all the properties of a node or relationship. | |
| Trigonometric | Converts degrees to radians. | |
| Numeric | Returns a random floating point number in the range from 0 (inclusive) to 1 (exclusive); i.e.  | |
| Scalar | Returns a string value corresponding to a randomly-generated UUID. | |
| List | Returns a list comprising all integer values within a specified range. | |
| List | Runs an expression against individual elements of a list, storing the result of the expression in an accumulator. | |
| List | Returns a list containing all the relationships in a path. | |
| String | Returns a string in which all occurrences of a specified string in the original string have been replaced by another (specified) string. | |
| List | Returns a list in which the order of all elements in the original list have been reversed. | |
| String | Returns a string in which the order of all characters in the original string have been reversed. | |
| String | Returns a string containing the specified number of rightmost characters of the original string. | |
| Numeric | Returns the value of a number rounded to the nearest integer. | |
| String | Returns the original string with trailing whitespace removed. | |
| Numeric | Returns the signum of a number:  | |
| Trigonometric | Returns the sine of a number. | |
| Predicate | Returns true if the predicate holds for exactly one of the elements in a list. | |
| Scalar | Returns the number of items in a list. | |
| Scalar | Returns the number of paths matching the pattern expression. | |
| Scalar | Returns the number of Unicode characters in a string. | |
| String | Returns a list of strings resulting from the splitting of the original string around matches of the given delimiter. | |
| Logarithmic | Returns the square root of a number. | |
| Scalar | Returns the start node of a relationship. | |
| Aggregating | Returns the standard deviation for the given value over a group for a sample of a population. | |
| Aggregating | Returns the standard deviation for the given value over a group for an entire population. | |
| String | Returns a substring of the original string, beginning with a 0-based index start and length. | |
| Aggregating | Returns the sum of a set of numeric values. | |
| List | Returns all but the first element in a list. | |
| Trigonometric | Returns the tangent of a number. | |
| Temporal | Returns the current Time. | |
| Temporal | Returns a Time with the specified component values. | |
| Temporal | Returns a Time by parsing a string. | |
| Temporal | Returns a Time from a map of another temporal value’s components. | |
| Temporal | Returns the current Time using the  | |
| Temporal | Returns the current Time using the  | |
| Temporal | Returns the current Time using the  | |
| Temporal | Returns a Time obtained by truncating a value at a specific component boundary. Truncation summary. | |
| Scalar | Returns the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. | |
| Scalar | Converts a string value to a boolean value. | |
| Scalar | Converts an integer or string value to a floating point number. | |
| Scalar | Converts a floating point or string value to an integer value. | |
| String | Returns the original string in lowercase. | |
| String | Converts an integer, float, boolean or temporal (i.e. Date, Time, LocalTime, DateTime, LocalDateTime or Duration) value to a string. | |
| String | Returns the original string in uppercase. | |
| String | Returns the original string with leading and trailing whitespace removed. | |
| Scalar | Returns the string representation of the relationship type. | 
Expressions
| Name | Description | 
|---|---|
| A generic conditional expression, similar to if/else statements available in other languages. | 
Cypher query options
| Name | Type | Description | 
|---|---|---|
| Version | This will force  | |
| Runtime | This will force the query planner to use the interpreted runtime. This is the only option in Neo4j Community Edition. | |
| Runtime | This will cause the query planner to use the slotted runtime. This is only available in Neo4j Enterprise Edition. | |
| Runtime | This will cause the query planner to use the pipelined runtime if it supports  | 
Administrative commands
The following commands are only executable against the system database:
| Command | Admin category | Description | 
|---|---|---|
| User and role | Change the password of the user that is currently logged in. | |
| User and role | Changes a user account. Changes can include setting a new password, setting the account status and enabling that the user should change the password upon next login. | |
| Database | Creates a new database. | |
| User and role | Creates new roles. | |
| User and role | Creates a new user and sets the password for the new account. Optionally the account status can also be set and if the user should change the password upon first login. | |
| Privilege | Denies a database or schema privilege to one or multiple roles. | |
| Privilege | Denies a DBMS privilege to one or multiple roles. | |
| DENY … ON GRAPH … [NODES | RELATIONSHIPS | ELEMENTS] … TO | Privilege | Denies a graph privilege for one or multiple specified elements to one or multiple roles. | 
| Database | Deletes a specified database. | |
| User and role | Deletes a specified role. | |
| User and role | Deletes a specified user. | |
| Privilege | Assigns a database or schema privilege to one or multiple roles. | |
| Privilege | Assigns a DBMS privilege to one or multiple roles. | |
| GRANT … ON GRAPH … [NODES | RELATIONSHIPS | ELEMENTS] … TO | Privilege | Assigns a graph privilege for one or multiple specified elements to one or multiple roles. | 
| User and role | Assigns one or multiple roles to one or multiple users. | |
| Privilege | Removes a database or schema privilege from one or multiple roles. | |
| Privilege | Removes a DBMS privilege from one or multiple roles. | |
| REVOKE [GRANT | DENY] … ON GRAPH … [NODES | RELATIONSHIPS | ELEMENTS] … FROM | Privilege | Removes a graph privilege for one or multiple specified elements from one or multiple roles | 
| User and role | Removes one or multiple roles from one or multiple users. | |
| User and role | Returns information about all or populated roles, optionally including the assigned users. | |
| Database | Returns information about a specified database. | |
| Database | Returns information about all databases. | |
| Database | Returns information about the default database. | |
| Privilege | Returns information about role, user or all privileges. | |
| User and role | Returns information about all users. | |
| Database | Starts up a specified database. | |
| Database | Stops a specified database. | 
Privilege Actions
| Name | Category | Description | 
|---|---|---|
| Database | Determines whether a user can access a specific database. | |
| Database and schema | Determines whether a user is allowed to access, create and drop indexes and constraints, create new labels, types and property names on a specific database. | |
| DBMS | Determines whether a user is allowed to perform role, user, database and privilege management. | |
| GRAPH | Determines whether a user is allowed to perform reads and writes. | |
| DBMS | Determines whether the user can modify users. | |
| DBMS | Determines whether the user can assign privileges using the GRANT and DENY commands. | |
| DBMS | Determines whether the user can grant roles. | |
| Schema | Determines whether a user is allowed to create and drop constraints on a specific database. | |
| GRAPH | Determines whether the user can create a new element (node, relationship or both). | |
| Schema | Determines whether a user is allowed to create constraints on a specific database. | |
| DBMS | Determines whether the user can create new databases. | |
| Schema | Determines whether a user is allowed to create indexes on a specific database. | |
| Schema | Determines whether a user is allowed to create new node labels on a specific database. | |
| Schema | Determines whether a user is allowed to create new property names on a specific database. | |
| Schema | Determines whether a user is allowed to create new relationship types on a specific database. | |
| DBMS | Determines whether the user can create new roles. | |
| DBMS | Determines whether the user can create new users. | |
| DBMS | Determines whether the user can create and delete databases. | |
| GRAPH | Determines whether the user can delete an element (node, relationship or both). | |
| Schema | Determines whether a user is allowed to drop constraints on a specific database. | |
| DBMS | Determines whether the user can delete databases. | |
| Schema | Determines whether a user is allowed to drop indexes on a specific database. | |
| DBMS | Determines whether the user can delete roles. | |
| DBMS | Determines whether the user can delete users. | |
| Schema | Determines whether a user is allowed to create and drop indexes on a specific database. | |
| GRAPH | Determines whether the properties of an element (node, relationship or both) can be read and the element can be found and traversed while executing queries on the specified graph. | |
| GRAPH | Determines whether the user can find, read, create and set properties on an element (node, relationship or both). | |
| Schema | Determines whether a user is allowed to create new labels, types and property names on a specific database. | |
| DBMS | Determines whether the user can show, assign and remove privileges. | |
| GRAPH | Determines whether the properties of an element (node, relationship or both) can be read while executing queries on the specified graph. | |
| GRAPH | Determines whether the user can remove a label from a node using the REMOVE clause. | |
| DBMS | Determines whether the user can remove privileges using the REVOKE command. | |
| DBMS | Determines whether the user can revoke roles. | |
| DBMS | Determines whether the user can create, drop, grant, revoke and show roles. | |
| GRAPH | Determines whether the user can set a label to a node using the SET clause. | |
| DBMS | Determines whether the user can modify users' passwords and whether those passwords must be changed upon first login. | |
| GRAPH | Determines whether the user can set a property to an element (node, relationship or both) using the SET clause. | |
| DBMS | Determines whether the user can modify the account status of users. | |
| DBMS | Determines whether the user can get information about privileges assigned to users and roles. | |
| DBMS | Determines whether the user can get information about existing and assigned roles. | |
| Database | Determines whether a user is allowed to list transactions and queries. | |
| DBMS | Determines whether the user can get information about existing users. | |
| Database | Determines whether a user can start up a specific database. | |
| Database | Determines whether a user can stop a specific running database. | |
| Database | Determines whether a user is allowed to end running transactions and queries. | |
| Database | Determines whether a user is allowed to list and end running transactions and queries. | |
| GRAPH | Determines whether an element (node, relationship or both) can be found and traversed while executing queries on the specified graph. | |
| DBMS | Determines whether the user can create, drop, modify and show users. | |
| GRAPH | Determines whether the user can execute write operations on the specified graph. |