快捷搜索: 王者荣耀 脱发

【数据库学习】图数据库:neo4j

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,重新启动
经验分享 程序员 微信小程序 职场和发展