按照总监要求看了两天的neo4j 数据库的使用。在网上找了一个基础教程类似于w3c.school的网站(英文中文,中文的翻译的不是很好,如果英文不好可以辅助理解),这个教程基础知识很全全面,从数据库的安装,到spring框架下的使用都有降到,由于spring框架侧重于工程,目前还用不到,所以有关在spring框架下的使用没有看。

neo4j 基础知识点比较少,我这里只整理了21个。

neo4j数据库的基本概述:

neo4j的优点:图数据库的有点是按照的关系深度的遍历。例如:A 的朋友的妻子的妈妈,,类似于这样的推理,图数据库可以推理4层甚至五层,而关系型数据库智能推理三层。

neo4j数据库的容量:节点和关系大约可以存储350亿个,关系可以存储27.5亿。

neo4j图模型规则:数据使用节点 属性和关系表示,节点和关系包含属性;关系连接节点,属性是键值对,节点使用圆,关系使用箭头来表示,关系分为单项和双向;每个关系包含Start Node或者From Node和To Node 或者End Node;

neo4j的cql命令:create match where delete remove return orderby 组(添加或者更新标签),可以允许两个或者多个完全相同的节点存在。

语法和关键字:

1、create: create语句是创建模型语句用创建数据模型

语法格式:create(nodename:label-name { Property1-name:Property1-Value ……. Propertyn-name:Propertyn-Value })

e.g: create (nodename:Nodename{name:”king”, location:”xiamen”})

e.g.: create (A:Person{name:’jim’})-[:Friend]-(B:Person {name:’tim’})-[:Friend]-(C:Person {name:’lucy’}), (A)-[:Know]-(C)

创建一个多标签名称的节点:CREATE (m:Movie:Cinema:Film:Picture);

//* A 是B的朋友,B是C的朋友,A知道C; ()里面表示的是节点,[]里面表示的是关系;{}里面的元素表示的是属性;

2、match: match是查询语句,用于查询数据库中的值。return 语句是返回语句,用于返回查询的结果集

eg. match (a)-[:Friend]-(b) where b.name=’tim’ return b

eg. match (nodename:Nodename) return nodename.name, nodename.location

3、create +return

4、关系基础:每个关系包含两个节点,节点间的关系有单项关系和双向关系。 创建关系包含,为无属性的节点创建关系,为有属性的节点创建关系,创建无属性的新节点的关系,

创建有属性的新节点关系,检索相关节点详细信息。

创建单个标签的关系, create(nodename1:nodelabel,)-(relationshipName:relationship-label_name)]-(nodeName2:nodeLabel2)

eg.CREATE (node1-name:label1-name)-[(relationship-name:relationship-label-name)]-(node2-name:label2-name)

5、where关键字:where语法: where condition 或者 where condition boolean-operation condition

条件(condition)的语法:property-name comparison-operator value

boolean 操作符: and or not xor(异或)

比较运算符:= (不等于) = =

eg: match (nodename:Nodename) where nodename.name=”king” return nodename

eg: match (nodename:Nodename) where nodename.name=”king” or nodename.location=”xiamen” return nodename

使用where语句创建关系: 对两个现存节点创建一个关系,同时创建两个节点及他们之间的关系,使用where语句对两个现存节点创建关系。

使用where语句创建关系案例: match(node1-name:node-label1-name,node2-name:node1-name) where condition create (node1-name:node1-label)

-[relationship:relationship-name]-(node2-label-name)

6、delete关键字: 删除节点列表: delete nodename-list; eg: match (nodename1:nodeName) delete nodename1;

删除节点及关系: delete node1name,node2name,relationship-name eg: match (node1-name)-[relationshipn]-(node2-name)

7、remove关键字:用于移除节点和关键字属性标签。 remove property-name-list MATCH (book { id:122 }) REMOVE book.price RETURN book

8、set 关键字; 用于添加节点和关键字的属性标签 set property-name-list match (book {id:122}) set book.price=26 return book

9、分类:分类使用order by 关键字,按照降序使用desc 语法为 order by property-name-list [desc] eg:MATCH (emp:Employee)

RETURN emp.empid,emp.name,emp.salary,emp.deptno ORDER BY emp.name DESC

order默认为升序的方式

10、union关键字: union关键字是将用两个结果集融合成一个结果集,有两种形式:union和union all. 用于约束的两个结果集必须有相投的结果列和相同结果形式

语法格式:match command1 union match command2 eg:MATCH (cc:CreditCard) RETURN cc.id,cc.number UNION MATCH (dc:DebitCard) RETURN dc.id,dc.number

union all 关键字:两个队列必须有有相同的行和相同的数据类型。 语法格式:match command1 union all match command2.

11、limit 关键字: 用来筛选或者限制检索结果的行数。语法 limit number; eg. match (emp:Employee) return emp limit 3 注:筛选前面的number个结果

skip关键 用来筛选或者限制检索结果的行数 语法 skip number eg. match (emp:Employe ) return emp skip 3 注 筛选后面的number个结果

12、merge 关键字:用于在图中按照给定的模式搜索,如果该模式不存在,将创建一个新的节点或者关系。语法:merge (node-name: node-label-name){

property-name: property-value)

13、null关键字:null 值作为节点或者关系的属性的缺省值或者未定义的值。

14、IN 关键字:给值的集合到定制列表命令。语法:IN[collection-of-values] eg. matche (emp:Employee) where e.id in [] return emp

15、id 属性:id 是库按照节点或者关系创建的顺序自动添加的标识符。

16、直接关系, 在图数据中节点与节点之间的链接是依靠关系链接,这里关系是具有方向的(单项或者双向)

17、String 函数: string函数是为了按照要求处理查询结果。string函数包含 upper lower substring relac关键字。

lower关键字将字符串全部转化为小写字符,substring函数是用来截取子串,replace用来替换字符串的。语法分别为: upper(input-string) lower(input-string) substring(input-string, startIndex,endIndex)

eg. MATCH (e:Employee) RETURN e.id,UPPER(e.name),e.sal,e.deptno MATCH (e:Employee) RETURN e.id,LOWER(e.name),e.sal,e.deptno

MATCH (e:Employee) RETURN e.id,SUBSTRING(e.name,0,2),e.sal,e.deptno

18、aggregation 函数: 在return 关键中提供了Aggregation函数,aggregation 函数主要包含count max min sum avg 关键字。upper关键是,将结果全部转化为大写字符

count 关键字是为了统计有多少个返回值的。count (value) eg. match (e:Employee) RETURN COUNT(*);

max (property-name), 检索返回值中proper-name属性最大值 min(property-name), 检索返回值中proper-name属性最小值

MATCH (e:Employee) RETURN MAX(e.sal),MIN(e.sal)

avg 关键字:AVG(property-name)计算返回值中属性为property-name的平均值, sum 关键字:sum(property-name)计算返回值中属性为property-name的和,

eg. MATCH (e:Employee) RETURN SUM(e.sal),AVG(e.sal)

19、relationship 函数:relationship 函数提供一些处理节点之间的关系的函数。relationship 函数提供了STARTNODE ENDNODE ID TYPE关键字;

startnode (relationship-label-name) relationship-label-name 是节点或者关系的属性名称,返回关系的起始节点。endnode (relationship-label-name) 返回关系的中止节点。

id(relation-name)返回relation-name的id

type(relation-name) 返回关系标签(relation-label-name)

eg. MATCH (a)-[movie:ACTION_MOVIES]-(b) RETURN ENDNODE(movie) startnode(movie)

eg. MATCH (a)-[movie:ACTION_MOVIES]-(b) RETURN ID(movie),TYPE(movie)

20.index: neo4j 支持在节点和关系的属性索引来提高应用程序的性能。主要功能有创建索引和清除索引,

create index: create index on: label-name:property-name eg. CREATE INDEX ON :Customer (name)

drop index:DROP INDEX ON :label_name (property_name) eg. DROP INDEX ON :Customer (name)

21、create unique constraint: 创建约束的目的是为了回避重复的节点 保持数据的完成性规则。

create constraint on(label-name) assert (property-name) is unique eg.CREATE CONSTRAINT ON (cc:CreditCard) ASSERT cc.number IS UNIQUE

DROP CONSTRAINT ON (label_name) ASSERT property_name IS UNIQUE eg. DROP CONSTRAINT ON (cc:CreditCard) ASSERT cc.number IS UNIQUE

原文地址:https://blog.csdn.net/kingjack1176/article/details/75125700

neo4j 基本语法笔记(全)的更多相关文章

  1. SQL基础语法笔记教程整理

    PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...

  2. SQL 基础语法笔记教程整理

    最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...

  3. Neo4j Cypher语法(三)

    目录 5 函数 5.1 谓词函数 5.2 标量函数 5.3 聚合函数 5.4 列表函数 5.5 数学函数 5.6 字符串函数 5.7 Udf与用户自定义函数 6 模式 6.1 索引 6.2 限制 7 ...

  4. 记一个同时支持模糊匹配和静态推导的Atom语法补全插件的开发过程: 序

    简介 过去的一周,都睡的很晚,终于做出了Atom上的APICloud语法提示与补全插件:apicloud_autocomplete.个中滋味,感觉还是有必要记录下来的.代码基于 GPL-3.0 开源, ...

  5. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  6. [python] Pythonic语法笔记

    Pythonic语法笔记 __new__ 在类实例化之前执行的,也就是在init之前执行,可以为这个类写操作.接受的参数不是self而是cls.只有在new方法里返回类才会执行init操作,需要返回父 ...

  7. Neo4j数据和Cypher查询语法笔记

    Cypher数据结构 Cypher的数据结构: 属性类型, 复合类型和结构类型 属性类型 属性类型 Integer Float String: 'Hello', "World" B ...

  8. Neo4j的查询语法笔记(二)

    cypher是neo4j官网提供的声明式查询语言,非常强大,用它可以完成任意的图谱里面的查询过滤,我们知识图谱的一期项目 基本开发完毕,后面会陆续总结学习一下neo4j相关的知识.今天接着上篇文章来看 ...

  9. SQL Server 常用高级语法笔记

    自从用了EF后很少写sql和存储过程了,今天需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用的,因此发出来和园友分享. 1.case...end (具体的值)case后面有值,相 ...

随机推荐

  1. 阿里云服务器tomcat能启动,但是不能访问问题。

    显示时间过长. 解决方案: 可以看到就可以访问了.百度云的就没有这个问题.

  2. ecshop 除去版权信息

    ECSHOP 2.73彻底去版权的方法 前台部分: 1. 去掉头部TITLE “- Powered by ecshop” 后者打开includes/lib_main.php $page_title = ...

  3. hihocoder1286 : 子矩阵求和

    http://hihocoder.com/problemset/problem/1286 题解 NB分析题. 首先我们令\(s[i][j]\)表示以\((i,j)\)为左上角的矩形的权值和. 因为\( ...

  4. 转载:PICT使用教程(设计测试用例工具)

    原文:https://blog.csdn.net/quiet_girl/article/details/50699543 之前一篇写了正交设计助手的使用教程,与正交设计助手相比,个人觉得PICT的使用 ...

  5. Collections 索引

    About Me NOIp 数据结构专题总结 NOIp 图论算法专题总结 NOIp 基础数论知识点总结 NOIp 数学知识点总结 搜索算法总结 (不包含朴素 DFS, BFS) 位运算 字符串算法总结 ...

  6. 手把手教你搞定个推iOS推送SDK集成

    以下是一位开发者在集成个推iOS推送SDK过程中的真实经历. 作者:Ezreallp 一次偶然的机会,公司的项目要用到推送,我自己本来就很懒,不愿意去弄整套APNS的流程,刚好之前跟朋友聊起过他们的产 ...

  7. vux组件样式大合集

    1.Actionsheet 2.Alert 3.badge 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ...

  8. 《SQL Server 2012 T-SQL基础》读书笔记 - 10.可编程对象

    Chapter 10 Programmable Objects 声明和赋值一个变量: DECLARE @i AS INT; SET @i = 10; 变量可以让你暂时存一个值进去,然后之后再用,作用域 ...

  9. 微信小程序、SSL证书、开启服务器TSL1.0、TSL1.1、TSL1.2服务

    微信小程序.SSL证书.开启服务器TSL1.0.TSL1.1.TSL1.2服务 https://blog.csdn.net/qq_32933615/article/details/70143105

  10. SQL优化案例

    8月9日对数据库进行优化 每日22:00开始跑批 经过优化,跑批时间缩短 逻辑读对比: 20180808逻辑读 20180809逻辑读 优化前后CPU负载对比: