1 概念
节点
节点是图表的基本单位。 它包含具有键值对的属性
属性
属性是用于描述图节点和关系的键值对Key =值(其中Key是一个字符串,值可以通过使用任何Neo4j数据类型来表示)
关系
关系是图形数据库的另一个主要构建块
(关系也可以包含属性作为键值对)
标签
Label将一个公共名称与一组节点或关系相关联。 节点或关系可以包含一个或多个标签。
(我们可以为现有节点或关系创建新标签。 我们可以从现有节点或关系中删除现有标签。)
变量
MATCH (n)-->(b) RETURN b
变量用于引用搜索模式(Pattern),但是变量不是必需的,如果不需要引用,那么可以忽略变量,譬如()
就叫匿名变量。
小括号()中为命令变量环节,同时其区分大小写
索引
Cypher创建索引:
CREATE INDEX ON :Person(firstname)
CREATE INDEX ON :Person(firstname, surname)
便于更快查数
约束
在图形数据库中,能够创建四种类型的约束:
• 节点属性值唯一约束(Unique node property):如果节点具有指定的标签和指定的属性,那么这些节点的属性值是唯一的
• 节点属性存在约束(Node property existence):创建的节点必须存在标签和指定的属性
• 关系属性存在约束(Relationship property existence):创建的关系存在类型和指定的属性
• 节点键约束(Node Key):在指定的标签中的节点中,指定的属性必须存在,并且属性值的组合是唯一的
CREATE CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE;
CREATE CONSTRAINT ON (book:Book) ASSERT exists(book.isbn);
CREATE CONSTRAINT ON ()-[like:LIKED]-() ASSERT exists(like.day);
CREATE CONSTRAINT ON (n:Person) ASSERT (n.firstname, n.surname) IS NODE KEY;
11.2、Neo4j Cypher基本操作
创建节点:
CREATE (节点名:标签 {属性key1:属性value1,属性key2:属性value2,……})
CREATE (p1:Person { name: "entere", age: 30, pid: 1 })
CREATE (p2:Person { name: "fxd", age: 40, pid: 2 })
CREATE 创建数据;() 表示节点;p1:Person,p1 是节点名( node ),Person 是 节点的标签名( lable );{} 是节点属性