一、安装
1、确定好jdk1.8安装完毕
2、创建好系统环境变量
(1)下载neo4j
https://neo4j.com/artifact.php?name=neo4j-community-3.5.31-windows.zip
https://dist.neo4j.org/neo4j-community-3.5.31-unix.tar.gz
(2)将neo4j安装目录配置到系统环境变量NEO4J_HOME中
NEOJ_HOME=E:\neo4j-community-3.5.31
(3)配置path变量
path=%NEO4J_HOME%\bin
(4)启动服务
法一:通过控制台启动Neo4j程序(输入:neo4j.bat console)
法二:把Neo4j安装为服务
安装:bin\neo4j install-service (注意:要在neo4j的安装目录下进行)
卸载:bin\neo4j uninstall-service
启动服务:neo4j start
停止服务:neo4j stop
重启服务:neo4j restart
查询服务:neo4j status
用户名:neo4j
初始密码:neo4j
3、初始化数据库:MATCH (n) DETACH DELETE n
二、使用
1.创建节点:create (节点名称:标签名称) [return 节点名称];
2.创建属性节点: create (节点名称:标签名称{属性名:属性值,...}) [return 节点名称];
3.查看节点(全部查询):match (节点名称:标签名称) return 节点名称;
4.查看节点(查询部分字段):match (节点名称:标签名称) return 节点名称.属性名,...;
5.查看节点(带条件查询):match (节点名称:标签名称) where condition,... return 节点名称;
6.查看节点(排序查询):match (节点名称:标签名称) return 节点名称 order by 节点名称.属性名 desc|asc;
7.查看节点(分组查询):match (节点名称:标签名称) return 节点名称.属性名,count(*);
8.查看节点 (联合查询) : SQL1 union SQL2;
9.查看节点(分页查询):match (节点名称:标签名称) return 节点名称 skip 起始位置 limit 显示条数;
10.查看节点(IN查询):match (节点名称:标签名称) where 节点名称.属性名 in [属性值,...] return 节点名称;
11.查看节点(null查询):match (节点名称:标签名称) where 节点名称.属性名 is null|not null return 节点名称;
12.查询所有(关系与节点):match (n) return n;
13.删除所有(关系与节点):match (n) detach delete n;
14.添加关系
match (节点1:标签1),(节点2:标签2) where 连接关系 create (节点1)-[关系节点:关系标签]->(节点2) ;
或者
match (节点1:标签1),(节点2:标签2) where 连接关系 create (节点1)-[关系节点:关系标签{关系属性名:关系属性值,...}]->(节点2) ;
或者为两个不存在的节点创建关系
create (c:City{id:30000,name:"深圳市"})-[belongto:BelongTo{type:"属于"}]->(p:Province{id:40000,name:"广东省"});
15.查看指定关系
match (节点名称1:标签名称1)-[关系节点名称:关系标签名称]-(节点名称2:标签名称2) return 节点名称1,关系节点名称,节点名称2;
16.查询全部关系:match (a)-[b]-(c) return a,b,c;
17.修改节点属性(可以修改属性与添加属性):match (节点名称:标签名称) where condition set 节点名称.属性名=值;
18.删除单个节点:match (节点名称:标签名称) where condition delete 节点名称;
19.删除指定一条关系:match (节点名称1:标签名称1{property})-[关系节点名称]->(节点名称2:标签名称2{property}) delete 关系节点名称;
20.删除节点属性:match (节点名称:标签名称) remove 节点名称.属性名=值;
21.删除指定关系:match (节点名称1:标签名称1)-[关系节点名称]->(节点名称2:标签名称2) delete 关系节点名称;
22.删除节点及其含有的关系:match (n) where id(n) = 节点ID detach delete n;
三、进阶使用
1.添加节点(避免重复添加):merge (节点名称:标签名称) [return 节点名称];
2.添加属性节点(避免重复添加):merge (节点名称:标签名称{属性名:属性值,...}) [return 节点名称];
3.添加关系(避免重复添加)
match (节点名称1:标签名称1{property}),(节点名称2:标签名称2{property}) merge (节点名称1)-[:关系标签名称]->(节点名称2);
或者
match (节点名称1:标签名称1{property}),(节点名称2:标签名称2{property}) merge (节点名称1)-[:关系标签名称{property}]->(节点名称2);
4.查询所有对外有关系的节点:match (a)-->() return a;
5.查询所有有关系的节点: match (a)--() return a;
6.查询所有对外有关系的节点,以及关系类型: match (a)-[r]->() return a.name, type(r);
7.查询指定关系的节点,以及关系类型: match (n)-[:关系标签名称]-() RETURN n;