Neo4j
节点简单命令
- CREATE命令:创建节点命令
- MATCH命令:查询命令
- RETURN命令:返回数据命令
- DELETE命令:删除命令,可以用于删除节点和关联节点信息
- REMOVE命令:可以用于删除标签和属性
单个节点操作
CREATE (emp:Employee) --创建节点emp,它的标签名称为EMployee
CREATE (m:Movie:Cinema:Film:Picture) --创建节点m,它有多个标签名称
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" }) --创建节点dept,它的标签名称为Dept,它的属性为 deptno\dname\location
MATCH (dept: Dept)
RETURN dept.deptno,dept.dname --检索节点dept,获取其属性deptno/dname
多个节点操作
match(n) return n -- 获取所有节点
match (n) detach delete n --删除所有节点
单个关系操作
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2) --创建节点p1,p2, p1(From Node)指向p2(To Node)的关系是r1
WHERE + (布尔运算)
match(dept:Person) where dept.deptName='设计部' return dept --获取节点dept中属性deptName为设计部的节点
创建关系
match (c:CC),(b:BB) where c.name='hahhah' create (c)-[r1:RRR{name:'shshshshs'}]->(b) return r1
DELETE和REMOVE
DELETE操作用于删除节点和关联关系。 REMOVE操作用于删除标签和属性。
create (:Test{name:'aaa'})
create (:Test{name:'bbb'})
match (a:Test),(b:Test) where a.name='aaa' and b.name='bbb' create (a)-[:RT{type:'ha'}]->(b)
match (a:Test) delete a --删除标签为Test的节点
match (a:Test)-[rel]-(b:Test) delete a,rel,b --删除标签为Test和其关系
match (a:Test) where a.name='aaa' remove a.name --移除标签为Test的节点的name
SET
match (a:Test) where id(a)=16 set a.name = 'aaa' return a --对id=16的标签Test的a节点设置属性 name='aaa'
ORDER BY
类似于SQL,加在return * 后面即可
UNOIN和UNOIN ALL
类似于SQL
match (a:Test) return a.name as name union all match(a:Test) return a.name as name --没有去重
match (a:Test) return a.name as name union match(a:Test) return a.name as name -- 去重后的结果
LIMIT和SKIP
类似于SQL
match (a:Test) return a limit 1 -- 返回结果中的第一行
match (a:Test) return a skip 1 --跳过结果中的第一行
MERGE
merge = create + match 如果没有结果,则新增,有的话返回
关系函数
- STARTNODE 用于知道关系的开始节点。
- ENDNODE 它用于知道关系的结束节点。
- ID 它用于知道关系的ID。
- TYPE 它用于知道字符串表示中的一个关系的TYPE。
测试
match (n) detach delete n
create (cetc:Czdw{name:'15'})
create (zd:Czdw{name:'ce'})
create (ht1:Htxx{name:'ht1'})
create (ht2:Htxx{name:'ht2'})
create (jds1:Jds{name:'1'})
create (jds2:Jds{name:'2'})
-- match的时候节点标签只要对了,标签前面的可以理解为别名,根据别名.属性找到对应的节点即可
match (n:Czdw),(j:Jds) where n.name='15' and j.name='1' create (n)<-[r1:R1{type:'监管'}]-(j) return r1
match (n:Czdw),(h:Htxx) where n.name='15' and h.name='ht1' create (n)-[r2:R2{type:'执行'}]->(h) return r2
match (n:Czdw),(j:Jds) where n.name='ce' and j.name='2' create (n)<-[r11:R1{type:'监管'}]-(j) return r11
match (n:Czdw),(h:Htxx) where n.name='ce' and h.name='合同2' create (n)-[r22:R2{type:'执行'}]->(h) return r22
match (n1:Jds),(n2:Jds) where n1.name='1' and n2.name='2' create (n1)-[r3:R3{type:'同级'}]->(n2) return r3
neo4j-admin import --mode=csv --database=test.db --nodes "D:\Java\neo4j-3.5.24\import\htxx.csv" --nodes "D:\Java\neo4j-3.5.24\import\jds.csv" --relationships "D:\Java\neo4j-3.5.24\import\r.csv"
neo4j-admin import --mode=csv --database test.db --nodes:Category “D:\Java\neo4j-3.5.24\import\profession.csv” --relationships “F:\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\import\shuyu_to_biaozhun.csv” --ignore-extra-columns=true --ignore-missing-nodes=true --ignore-duplicate-nodes=true