Neo4j的Cypher语言为处理图形数据而构建的。
CQL代表Cypher查询语言。
https://neo4j.com/docs/cypher-manual/3.5/clauses/load-csv/
CQL语句使用文档地址。
小技巧:在neo4j的CQL语句输入框里,shift + enter换行,直接enter键会执行CQL语句。
创建节点
创建csv数据文件neo4jData.csv, 放入import目录下:
注意:创建csv文件防止中文乱码,用记事本保存后的编码指定为UT-8 POM
金蝉子,唐僧,past life,前世
孙悟空,唐僧,apprentice,徒弟
猪八戒,唐僧,apprentice,徒弟
沙僧,唐僧,apprentice,徒弟
白龙马,唐僧,apprentice,徒弟
陈光蕊,唐僧,father,父亲
殷温娇,唐僧,mother,母亲
法明和尚,唐僧,master,师父
李世民,唐僧,elder sworn brother,义兄
殷开山,殷温娇,father,父亲
唐僧,孙悟空,master,师傅
菩提老祖,孙悟空,master,师傅
猪八戒,孙悟空,younger brother with the same master,师弟
沙僧,孙悟空,younger brother with the same master,师弟
白龙马,孙悟空,younger brother with the same master,师弟
镇元子,孙悟空,elder sworn brother,义兄
牛魔王,孙悟空,elder sworn brother,义兄
蛟魔王,孙悟空,elder sworn brother,义兄
鹏魔王,孙悟空,elder sworn brother,义兄
狮驼王,孙悟窄,elder sworn brother,.义兄
猕猴王,孙悟空,elder sworn brother,义兄
禺狨王,孙悟空,elder sworn brother,义兄
孙悟空,猪八戒,elder brother with the same master,师弟
沙僧,猪八戒,younger brother with the same master,师弟
白龙马,猪八戒,younger brother with the same master,师弟
唐僧,猪八戒,master,师傅
天蓬元帅,猪八戒,past life,前世
猪八戒,卵二姐,husband,夫
猪八戒,高翠兰,husband,夫
孙悟空,沙僧,elder brother with the same master,师兄
白龙马,沙僧,younger brother with the same master,师弟
唐僧,沙僧,master,师傅
卷帘大将,沙僧,past life,前世
西海龙王,白龙马,father,父亲
根据csv文件中的数据批量创建节点,label为西游关系
load csv from "file:///neo4jData.csv" as line
create (:西游关系{from:line[1],to:line[0],relation:line[3]})
根据csv文件中的数据批量创建节点,label为person
再导入对应的任务节点 person.csv
金蝉子
唐僧
陈光蕊
殷温娇
法明和尚
李世民
殷开山
殷温娇
菩提老祖
白龙马
镇元子
牛魔王
蛟魔王
鹏魔王
狮驼王
猕猴王
禺狨王
孙悟空
沙僧
猪八戒
天蓬元帅
卵二姐
高翠兰
卷帘大将
西海龙王
load csv from "file:///person.csv" as line
create (:person{name:line[0]})
查询节点
id是neo4j自动生成的,查询的时候id(n)
查询person节点,name为孙悟空,返回 id, name;
CQL语句写法一:
CQL语句写法二:
关联两个节点结合查询CQL:
根据person节点,西游关系节点 这两个节点的数据,创建person节点之间的关系:
节点有label就是 person, 西游关系 (Node Labels)
关系有type就是 西游关系(Relationship Types)
说明:这个案例,一个节点的label为“西游关系”,一个关系的type也叫“西游关系” 只是名字相同而已,没有联系,注意区分。