从零基础安装到手写 Cypher 跑通全流程
纯动手实践课 · 请打开你的电脑跟着做
没有金刚钻,揽不了瓷器活。
让我们先把 Neo4j 跑起来!
Neo4j 是用 Java 写的,所以你的电脑必须有 JDK!
打开终端(CMD 或者 PowerShell),输入:
如果没有反应或者版本不对,请先去配置 Java 环境变量!
去官网下载 Community Edition (社区免费版) 的 zip 压缩包。
强烈建议:解压到一个没有中文、没有空格的路径下!(例如:D:\dev\neo4j)
打开 CMD,进入到 bin 目录下,执行:
(出现 "Started" 字样代表启动成功。黑窗口千万不要关,关了数据库就停了!)
打开浏览器,输入神器网址:
如果你在使用 Linux 虚拟机,可以使用 tar.gz 包进行安装:
提示:Linux 下推荐用 start 放在后台运行,而不是 console。
在 conf 目录下,用记事本或 VSCode 打开它。
常见痛点:
为什么装在 Linux 服务器上,我本机的浏览器访问不了 7474 页面?
找到下面这一行,把前面的 #(注释)删掉:
这段代码的意思是允许所有外部 IP 访问该数据库。
改完记得重启 Neo4j!
写代码最怕“粗心大意”。
花两分钟记牢这几个规范,少报 80% 的错。
文本(String)必须加引号:
错: name: 张三
对: name: '张三'
数字和布尔值千万别加引号:
对: age: 20, isMale: true
Cypher 对数据极其敏感!
标签 :Student 和 :student 会被系统认成两个完全不同的类别。
习惯养成:类别名首字母一律大写!
别拿系统命令当自己的变量名!避开以下词汇:
CREATE, MATCH, RETURN, WHERE, SET, REMOVE, DELETE 等。
(你在命令行里敲出来会高亮的词,都别当名字用)。
实战任务:构建一个“大学选课与人脉网”
请大家在 Neo4j Browser 的顶部输入框中跟着敲!
在浏览器顶部的框框里,输入以下代码并点击右侧蓝色的 运行:
s1 和 s2 是我们临时给节点起的“小名”(变量名)。:Student 是标签,告诉数据库他们都是学生。{} 里面放的是详细属性。如果我们要一步到位,既创建课程,又把小明和课程连起来:
MATCH 把之前建好的“小明”找出来。Course。CHOOSE(选课)的箭头,从小明指向课程。数据录进去了,怎么看图?敲入这行代码:
(因为目前我们刚建库,数据量极小,所以可以直接查所有节点 n)
执行后,浏览器下方会出现一个可视化的图表。
在实际企业开发中,动辄千万级数据,绝不能直接 RETURN n。我们需要分页展示。
解释:
找出所有学生,只返回名字和年龄。
SKIP 1:跳过第 1 个人。
LIMIT 1:只抓取 1 个人出来。
我们要找出所有“年龄大于等于20岁”的学生:
运行一下,是不是只有“小红”被查询出来了?
大家可以自己试着改成 WHERE s.name STARTS WITH '小' 测试模糊匹配!
小明过完年,长了一岁,并且我们要给他加一个“社团”属性:
小明当选了班长,我们在不删除原标签的情况下,给他加个新身份:
(查看图谱,小明现在既是 Student 又是 Monitor 了)
小明退出了社团,我们要把 club 属性擦掉:
要把小明开除,但他身上还绑着“选课”的关系线。必须用 DETACH DELETE 连根拔起!
光看老师敲可不行!
现在,轮到你们自己构建一个“企业管理图谱”了!
请结合刚才讲的知识,在你的机器上一步步执行以下操作:
Employee,名字叫“老王”,工资 salary: 8000。Department,部门名叫“大数据研发部”。-[WORKS_IN]-> 大数据研发部。salary 修改为 12000。Manager。Employee。WHERE 从句,筛选出工资大于 10000 的人。RETURN 他们的名字和工资。你已经成功掌握了图数据库的基础 CRUD 操作!
做完测验的同学请举手示意,老师来检查代码。