Part4-1 Cypher基础1
类似于关系数据库中使用的SQL,是Neo4j使用的查询语言
1.特点:
-
是一种声明式图形查询语言,
-
富有表现力和高效的查询、更新和管理。
-
设计简单,但功能强大,可以轻松表达高度复杂的数据库查询。
-
Cypher的结构基于英语散文和整洁的图像,使其读写查询变得容易。
-
名称区分大小写
2.数据类型:
Cypher为多种数据类型提供的支持。
-
属性类型
* 数字,一种抽象类型,具有子类型整数(Integer)和浮点数(Float)
* 字符串(String)
* 布尔(Boolean)
* 空间类型点(Point)
* 时态类型:日期(Date, Time),时间(Time),本地时间(LocalTime),日期时间(,DateTime),本地日期时间(LocalDateTime)和持续时间(Duration)
-
结构类型
* Node(节点)
* Id
* labels(标签不是值,而是模式语法的一种形式。)
* Map(属性map)
* Relationship(关系)
* Id
* Type
* Map(属性map)
* 起始节点的 Id
* 终端节点的 Id
* Path(路径),节点和关系的交替序列。
-
复合类型
* List,一个异构的有序值集合,每个值都有任何属性、结构或复合类型。
* 映射,(键,值)对的异构无序集合。
* 键是一个字符串
* 值具有任何属性、结构或复合类型
(复合值也可以包含null)
3.命名规则和约定:
-
命名规则
* 字母字符:
* 名称应以字母字符开头。
* 这包括“非英语”字符,例如,,,等。åäöü
* 数字:
* 名称不应以数字开头。
* 如,1first是不允许的,而first1可以。
* 符号:
* 名称不应包含符号,但下划线除外,如my_variable,或作为表示参数的第一个字符,如给定的$myParam
* 长度:
* 可以很长,最多65535(2^16 -1或 65534个字符,具体取决于Neo4j的版本。
* 区分大小写:
* 名称区分大小写,如Person,PERSON及person是三个不同的标签,而n和N也是两个不同的变量。
* 空格字符:
* 前导和尾随空格字符将自动删除。 例如MATCH ( a ) RETURN a,等效于MATCH (a) RETURN a 。
-
范围和命名空间规则
* 节点标签、关系类型和属性名称可以重复使用名称。
* 以下查询(用于标签、类型和属性名称)有效:CREATE (a:a {a: 'a'})-[r:a]->(b:a {a: 'a'}).
* 节点和关系的变量不得重复使用同一查询范围内的名称。
* 以下查询无效,因为节点和关系都具有名称a:CREATE (a)-[a]->(b) 。
-
建议的命名约定
节点标签:
驼峰大小写,以大写字符开头,如建议:VehicleOwner 而非 :vehicle_owner
关系类型:
大写,使用下划线分隔单词,如建议OWNS_VEHICLE 而非:ownsVehicle
4.保留关键字:
保留关键字是在Cypher中具有特殊含义的单词。 保留关键字可按抽取类别进行分组。
(在查询表达式中,不允许将保留关键字用作标识符,包括变量、函数名称或参数)
-
Clause (从句)
* CALL
* CREATE
* DELETE
* DETACH
* FOREACH
* LOAD
* MATCH
* MERGE
* OPTIONAL
* REMOVE
* RETURN
* SET
* START
* UNION
* UNWIND
* WITH
-
Subclauses子句
* LIMIT
* ORDER
* SKIP
* WHERE
* YIELD
-
Modifiers修饰符
* ASC
* ASCENDING
* ASSERT
* BY
* CSV
* DESC
* DESCENDING
* ON
-
Expressions表达式
* ALL
* CASE
* COUNT
* ELSE
* END
* EXISTS
* THEN
* WHEN
-
Operators运算符
* AND
* AS
* CONTAINS
* DISTINCT
* ENDS
* IN
* IS
* NOT
* OR
* STARTS
* XOR
-
Schema模式
* CONSTRAINT
* CREATE
* DROP
* EXISTS
* INDEX
* NODE
* KEY
* UNIQUE
-
Hints
* INDEX
* JOIN
* SCAN
* USING
-
Literals
* false
* null
* true
-
Reserved for future use
* ADD
* DO
* FOR
* MANDATORY
* OF
* REQUIRE
* SCALAR