neo4j 基本语法笔记(全)
按照总监要求看了两天的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 基本语法笔记(全)的更多相关文章
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- SQL 基础语法笔记教程整理
最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...
- Neo4j Cypher语法(三)
目录 5 函数 5.1 谓词函数 5.2 标量函数 5.3 聚合函数 5.4 列表函数 5.5 数学函数 5.6 字符串函数 5.7 Udf与用户自定义函数 6 模式 6.1 索引 6.2 限制 7 ...
- 记一个同时支持模糊匹配和静态推导的Atom语法补全插件的开发过程: 序
简介 过去的一周,都睡的很晚,终于做出了Atom上的APICloud语法提示与补全插件:apicloud_autocomplete.个中滋味,感觉还是有必要记录下来的.代码基于 GPL-3.0 开源, ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- [python] Pythonic语法笔记
Pythonic语法笔记 __new__ 在类实例化之前执行的,也就是在init之前执行,可以为这个类写操作.接受的参数不是self而是cls.只有在new方法里返回类才会执行init操作,需要返回父 ...
- Neo4j数据和Cypher查询语法笔记
Cypher数据结构 Cypher的数据结构: 属性类型, 复合类型和结构类型 属性类型 属性类型 Integer Float String: 'Hello', "World" B ...
- Neo4j的查询语法笔记(二)
cypher是neo4j官网提供的声明式查询语言,非常强大,用它可以完成任意的图谱里面的查询过滤,我们知识图谱的一期项目 基本开发完毕,后面会陆续总结学习一下neo4j相关的知识.今天接着上篇文章来看 ...
- SQL Server 常用高级语法笔记
自从用了EF后很少写sql和存储过程了,今天需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用的,因此发出来和园友分享. 1.case...end (具体的值)case后面有值,相 ...
随机推荐
- 大数减法(A - B Problem Plus)问题
解题思路 flagA为0表示A为正整数,为-1表示A为负整数: flagB为0表示B为正整数,为2表示B为负整数: 而 flag = flagA + flagB. 1.当 flag == 0 表示数A ...
- 前端面试题常考&必考之--跨域的解决办法
1.为啥出现跨域??? 在制定Html规则时,为了安全的考虑,一个源的脚本(网页,网站)不能与另一个源的资源进行交互, 所以就引发一个词叫做“同源策略”. 同源策略:同源策略是一种约定,它是浏览器最核 ...
- [CF1188B]Count Pairs 题解
前言 这道题目是道好题. 第一次div-2进前100,我太弱了. 题解 公式推导 我们观察这个式子. \[(a_i+a_j)(a_i^2+a_j^2)\equiv k \mod p\] 感觉少了点什么 ...
- 题解 P2674 【《瞿葩的数字游戏》T2-多边形数】
题目说了很清楚,此题找规律,那么就找规律. 我们观察数列. 令k表示数列的第k个数. 三角形数:1 3 6 10 15 两项相减:1 2 3 4 5 再次相减:1 1 1 1 1 四边形数:1 4 9 ...
- 清北学堂算法&&数据结构DAY1——知识整理
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性 ...
- 洛谷P4391 [BOI2009]Radio Transmission 无线传输——题解
题目传送 假如我们有一个用于循环连接的最短串ans,考虑用它造出来的数据(即输入的字符串s)有什么特点.发现:ans自我连接出一个大串z后从中取出的一个子串即为s,对s造一个KMP算法中的next数组 ...
- PHP快速教程
1.本文主要针对有C语言(或其他编程语言)基础的人快速学习PHP的,所以不会对一些基础知识作过多解释,比如“=”是赋值不是等于. 2.本文适合已学过一门编程语言,想要快速入门PHP的人. 3.基本上看 ...
- 大型网站技术架构,4网站的高性能架构之Web前端性能优化
一般说来Web前端指网站业务逻辑之前的部分,包括浏览器加载.网站视图模型.图片服务.CDN服务等,主要优化手段有优化浏览器访问.使用反向代理.CDN等. 4.2.1 浏览器访问优化 1.减少http请 ...
- chrome flash 自动暂停问题
chrome flash 尺寸小于398*298时,只要宽和高某一个值小于对应值就会自动暂停,出现这个圆形的播放按钮.(估计是当广告处理了...) 将尺寸调大即可.
- React Native商城项目实战08 - 设置“More”界面cell
1.自定义可复用的cell More/CommonCell.js: /** * 自定义可复用的cell */ import React, { Component } from 'react'; imp ...