1,标签属性图模型
1)Nodes – 节点
在其他图模型中称作“点”、“顶点”、“对象”。
语法:
节点必须包含在括号 () 内;
节点可以有属性:(n:Label {prop: 'value'})
2)Relationships – 关系
在其他图模型中也称作“边”、“弧”、“线”。关系拥有类型,关系在创建时必须指定方向 ,关系在查询时可以不指定方向表示双向关系。
语法:
关系两端各有一个短横线“-”,用方括包含关系类型,关系类型名前面必须有冒号 (😃 。在其中一端用 >或 < 代表关系的方向,也可以没有方向:
- - ,<- -,- ->
-[:DIRECTED]- ->
关系也可以有属性:-[:KNOWS {since: 2010}]
Properties – 属性
可以定义在节点和关系上。
语法:
包含在{}中。
3)Labels – 标签
代表节点的类别,节点可以没有标签或者有多个标签。
标签对节点进行分类,似关系数据库中的表 标签对节点进行分类,类似关系数据库中的表。
语法:
标签名前必须有冒号;
4)模式
模式是由关系连接起来的节点构成的表达式。
() -[] -() #没有方向的关系
() -[] ->() #有方向的关系
()< -[] -() #双向的关系
(n:Label {prop:'value'})-[:TYPE]- >(m:Label)
2,Cypher
Neo4j图形数据库的查询语言是Cypher(CQL), CQL看似简单,但由于图的结构可能在实际应用中比较复杂。
- CQL遵循SQL语法。
- 命名规范:关键字-全部大写;标签名-首字母大写;关系名-全部大写;属性名、变量名-全部小写
3,CQL-常用命令
CQL命令 | 用法 |
---|---|
CREATE创建 | 创建节点,关系和属性 |
MATCH匹配 | 检索有关节点,关系和属性数据 |
RETURN返回 | 返回查询结果 |
WHERE哪里 | 提供条件过滤检索数据 |
DELETE删除 | 删除节点和关系 |
REMOVE移除 | 删除节点和关系的属性 |
ORDER BY以…排序 | 排序检索数据 |
SET组 | 添加或更新标签 |
limit 10 | 只显示10条数据 |
MATCH (m:Movie) #Movie为标签,m为节点变量
RETURN m, m.title #属性以{variable}.{property_key}的方式访问 .title返回属性
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) #r是变量,保存关系;ACTED_IN为关系类型
RETURN p, r, m
MATCH path = (:Person)-[:ACTED_IN]->(:Movie) #path是变量,保存路径
RETURN path
4,CQL-常用函数
函数 | 用法 |
---|---|
String字符串 | 用于使用String字面量。 |
Aggregation聚合 | 用于对CQL查询结果执行一些聚合操作。 |
Relationship关系 | 用于获取关系的细节,如startnode,endnode等。 |
5,清空所有数据
match (n) detach delete n
6,常用shell命令
#重启
./bin/neo4j start #restart stop
#修改密码
./bin/neo4j-admin set-initial-password psw #psw为密码
#The client is unauthorized due to authentication failure.问题解决
停止neo4j服务,并且删除data/dbms/auth,重新启动