Neo.4j 使用总结
创建建实体
CREATE (emp:Employee{id:135,name:"Sky",sal:5000,deptno:10,deptName:"JS"})
CREATE (emp2:Employee{id:136,name:"shine",sal:5000,deptno:10,deptName:"JS"})
CREATE (emp1:Employee{id:134,name:"line",sal:4000,deptno:9,deptName:"JS"})
CREATE (m:Employee:Employer{id:01,name:"jack",sal:100,deptno:01,deptName:"aaa",weight:78})
简单查询
MATCH (p:Employee {id:135,name:"Sky"}} RETURN P
MATCH (p:Employee) WHERE p.name = "Sky" RETURN p
MATCH (p:Employee) RETURN p
MATCH (p: Employee) RETURN p.id,p.name,p.sal,p.deptno,p.deptName
新增创建关系
MATCH(p1:Employer),(p2:Employee) where p1.name="jack" and p2.name="Sky" create (p1) -[Employer_Employee:雇佣 {ralation:"正式工"}] -> (p2)
MATCH(p1:Employer),(p2:Employee) where p1.name="jack" and p2.name="shine" create (p1) -[Employer_Employee:雇佣 {ralation:"正式工"}] -> (p2)
MATCH(p1:Employer),(p2:Employee) where p1.name="jack" and p2.name="line" create (p1) -[Employer_Employee:雇佣 {ralation:"正式工"}] -> (p2)
MATCH(p1:Employer:Employee) where p1.name="jack" create (p1) -[Employer_Employee:雇佣 {ralation:"正式工"}] -> (p1)
修改属性
MATCH(p1:Employee) where p1.id=0 SET p1.name="shine"
删除数据
// DELETE操作用于删除节点和关联关系。
// REMOVE操作用于删除标签和属性。
MATCH (p1)-[Employer_Employee:雇佣 {ralation:"正式工"}] -> (p2) delete Employer_Employee
============
CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250})
//删除一个属性
MATCH (book { id:122 }) REMOVE book.price RETURN book
//重新添加,并赋值
MATCH(book{id:122}) set book.price= 200 return book
CREATE (book1:Book:Document:Database {id:100,title:"How work?",pages:890,price:129})
MATCH(bk) where bk.id=100 REMOVE bk:Database RETURN bk
====================
联合的使用
CREATE (a1:CreditCard {id:1, number:1, name:"b1"})
CREATE (a2:CreditCard {id:2, number:2, name:"b2"})
CREATE (c1:DebitCard {id:1, number:2, name:"c1"})
CREATE (c2:DebitCard {id:3,number:4, name:"c2"})
CREATE (c2:DebitCard {id:1,number:1, name:"b1"})
//UNION ALL 两个表的组合叠加,即两个表的内容和;
//UNINON 叠加后,去掉重复行
MATCH (a:CreditCard)
RETURN a.id as id,a.number as number,a.name as name
UNION ALL
MATCH (c:DebitCard)
RETURN c.id as id,c.number as number,c.name as name
//skip 跳过几行; limit 输出几行;
MATCH (c:DebitCard) RETURN c skip 1 limit 2
//merge 如果节点不存在时等同于create,存在则什么也不做;
MERGE (c2:DebitCard {id:1,number:1, name:"b1"})
//IS NOT NULL ; IS NULL
MATCH (c:DebitCard) WHERE c.id IS NOT NULL RETURN c.id,c.name,c.number
数据库设计经验:
图数据库设计:一种类似看板的数据库
1) 实体:识别名词 ,有点类似关系DB中的一条数据,软件设计中的对象;
2) 标签: 用于分组,有点类似关系DB中的表,软件设计中的类;
3) 关系:动词/动名词, 有起点和终点
4)属性: 存储有关节点或与其描述的实体之间的关系的相关数据,可通过了解用例需要对数据提出哪些问题来提取它们。
关系数据库->图数据库
NO | 元素 | 说明 |
1 | 表->节点标签 | 将关系模型中的每个实体表都转成为图模型中节点上的标签 |
2 | 行->节点 | 将关系实体表中的每一行都成为图中的一个节点 |
3 | 列->节点的属性 | 将关系表上的列(字段)成为图中的节点属性 {时间关联、中间类、类型树单独考虑} |
4 | 主键 | 删除技术主键,保留业务主键 |
5 | 添加约束/索引 | 为业务主键添加唯一约束,为频繁查找属性添加索引 |
6 | 关系的外键 | 用关系替换另一个表的外键,然后将其删除 |
7 | 无默认值 | 删除具有默认值的数据,无需存储这些值 |
8 | 清理数据 | 必须将非规范化表中的重复数据拉到单独的节点中以获得更清晰的模型 |
9 | 数组的索引列 | 索引列名(如phone1,phone2,phone3)可能表示数组属性 |
10 | 将表联接到关系 | 将联接表转换为关系,这些表上的列成为关系属性 |
11 |
其中Employee 为节点类型; 名称为sky,请确保上面两个组合后是唯一的
节点间关系,用动词 -----建立相关的关系结构;
查找游离节点:
match (n) where not(n)-[]-() return n
删除指定ID的节点
MATCH (m:`国家`)-[r:`包含`] ->(n)
where id(n) = 87
delete r,n
添加节点
MERGE (n:`SH-60`)
SET n.动力类型="涡轮轴发动机"
RETURN n
删除节点属性
MATCH (n:`SH-60`) REMOVE n.动力类型 RETURN n
Neo.4j 使用总结相关推荐
- SpringBoot 2 访问 Neo4j 图数据库
开篇词 该指南将引导你完成使用 Spring Data Neo4j 来构建应用,该应用将数据存储在基于图形的数据库 Neo4j 中并从中检索数据. 你将创建的应用 我们将使用 Neo4j 的基于 No ...
- 密码错误Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure
neo4j密码错误 解决办法 neo4j Neo.ClientError.Security.Unauthorized 修改密码 参考 https://blog.csdn.net/qq_22521211 ...
- NEO共识节点推荐搭建步骤
目录 共识节点推荐搭建步骤 远程访问 硬件 密码 SSH认证密钥 服务供应商具体配置 Linux服务器配置 使用su时 以管理员身份登录时 防火墙 自动安全更新 fail2ban 双因素认证 监控 登 ...
- [原创] Neo.Geo 视频帧浏览器开发日志
写给自己用的开发日志,纯粹理想+兴趣.为了偷懒,用C#写的,就不多说什么了,简介和过程都在WIP正文里:)以前也曾感叹过NRGx.Kawaks和Nebula等一流模拟器的精妙,但始终认为与其临渊羡鱼, ...
- 如果往错误的NEO地址转账会发生什么
昨天聊天有人用NEO往错误地址转账丢钱了 我的第一反应是这不可能 Neo使用的地址带有验证功能 最下面ARPP-.G6ce这一串是个base58编码 把他解开就是17-.151f7b5f这一串 红色部 ...
- NEO智能合约反编译工具
2019独角兽企业重金招聘Python工程师标准>>> 0x00 前言 下拉最后看演示效果.项目地址 本来这应该是一个很和谐的感恩节假期,本来我可以很悠闲的写完所有作业然后随便看点论 ...
- NanoPi NEO Air使用十五:移植RTL8723BU驱动
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用十:自己编写驱动来控制LED
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
最新文章
- 类与接口(三)java中的接口与嵌套接口
- Java实现图片转PDF
- C语言终极宝典微盘,C语言终极面试宝典.pdf
- 查看mysql 二进制日志_Mysql主从复制原理及搭建
- cart算法 java_决策树学习笔记(三):CART算法,决策树总结
- 金蝶K3cloud 7.6注册教程
- windows命令提示符运行.cpp文件
- 成为一名机器学习算法工程师,你需要这些必备技能
- 微信域名防封的解决方案
- Linux硬盘文件系统损坏,Linux常见的文件系统类故障该怎么解决-文件系统错误
- 计算机快捷操作知识,电脑基本操作知识
- 谈谈软件开发模式:瀑布与敏捷
- asp.net实现无刷新ajax技术登录界面
- 尼尔机械纪元游乐园怎么去机器人村_尼尔机械纪元图文攻略 系统教程+全任务剧情流程...
- 分布式定时任务中间件
- java net unicode / native2ascii / url decode / url encode / UTF8 / js url code
- 基于Altium Designer 20设计双层印刷电路板的详细步骤(待写)
- 迭代图像切割技术的交互式前景提取
- 常见的电源问题(一)混叠效应
- libnet编译linux,Linux 网络编程—— libnet 使用指南
热门文章
- ELGamal 加密算法及Java实现
- hadoop3访问hdfs web控制页面遇到的各种问题总结
- 美剧24中的SAP软件
- [ERROR Port-10250]: Port 10250 is in use
- 绝地求生 Win10 崩溃解决办法 (提示cmd.exe应用程序错误0xc000124)
- 【机器学习|数学基础】Mathematics for Machine Learning系列之图论(8):割边、割集、割点
- 干货!iOS 与 Android 的APP 设计差异
- 电脑突然变成繁体字,格式化代码快捷键失灵
- 糅合了《魔兽》和《第二人生》优点的新式游戏闪亮登场!
- 我上传了一个图片 谁知道我上传哪去了 找不见了