最近准备做一个与知识图谱相关的项目,需要用到Neo4j数据库,也就是一种图数据库,存储数据,简单学了下CQL命令,留作备份。
一、查询命令
1) 查询全部数据
match(n:person) return n
2) 查询指定字段
match(n:person) return n.name, id(n)
3) 加筛选条件:法一
match(n:person) where n.name = '唐僧' return n.name, id(n)
3) 加筛选条件:法二
match(n:person {name: '唐僧'}) return n.name, id(n)
4) 关联2张表查询
match (n:person {name:'唐僧'}),(m:xiyouRelation {from: '唐僧'}) return n.name,m.relation,m.to
二、添加和删除命令
1) 创建 student 表,只有name字段,并插入三条数据
create (:student {name:"小红"}), (:student {name:"张三"}), (:student {name:"小明"})
2) 给 小明->小红 创建关联关系
match (n:student {name:"小明"}),(m:student {name:"小红"}) create (n)-[r:同学]->(m) return n.name,type(r),m.name
3) 根据关系表,创建关联
match (n:person {name: '唐僧'}), (m:xiyouRelation), (s:person ) where m.from='唐僧' and m.to=s.name
create (n)-[:西游人物关系{relation:m.relation}]->(s)
return n.name, m.relation, s.to
4)删除关系
MATCH (n:person{name: "唐僧"})<-[r]-(m) delete r return type(r)
MATCH (n:person{name: "唐僧"})-[r]->(m) delete r return type(r)
5) 删除节点
MATCH (n:person{name:"白龙马"}) delete n
三、导入数据
1) 导入实体数据
load csv from "file:///人物.csv" as line
create (:person {name:line[0]})
2) 导入三元组数据(关联关系表)
load csv from "file:///西游记.csv" as line
create (:xiyouRelation {from:line[1],relation:line[3],to:line[0]})
四、其他
- 修改用 SET,如 SET age = 18
- 分页查询用 LIMIT 和 SKIP
- 删除表用 DELETE,同上删除节点,只是筛选条件去掉
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏