Naming rules and recommendations
Naming rules
-
Alphabetic characters:
-
Names should begin with an alphabetic character.
-
This includes "non-English" characters, such as
å
,ä
,ö
,ü
etc.
-
-
Numbers:
-
Names should not begin with a number.
-
To illustrate,
1first
is not allowed, whereasfirst1
is allowed.
-
-
Symbols:
-
Names should not contain symbols, except for underscore, as in
my_variable
, or$
as the first character to denote a parameter, as given by$myParam
.
-
-
Length:
-
Can be very long, up to
65535
(2^16 - 1
) or65534
characters, depending on the version of Neo4j.
-
-
Case-sensitive:
-
Names are case-sensitive and thus,
:PERSON
,:Person
and:person
are three different labels, andn
andN
are two different variables.
-
-
Whitespace characters:
-
Leading and trailing whitespace characters will be removed automatically. For example,
MATCH ( a ) RETURN a
is equivalent toMATCH (a) RETURN a
.
-
Non-alphabetic characters, including numbers, symbols and whitespace characters, can be used in names, but must be escaped using backticks.
For example: |
Scoping and namespace rules
-
Node labels, relationship types and property names may re-use names.
-
The following query — with
a
for the label, type and property name — is valid:CREATE (a:a {a: 'a'})-[r:a]->(b:a {a: 'a'})
.
-
-
Variables for nodes and relationships must not re-use names within the same query scope.
-
The following query is not valid as the node and relationship both have the name
a
:CREATE (a)-[a]->(b)
.
-