ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:33.61KB ,
资源ID:17304685      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17304685.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Neo4j图数据库学习第三章Cyber和基础语法Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Neo4j图数据库学习第三章Cyber和基础语法Word下载.docx

1、例如,下面的Cypher代码将两个简单的模式连接在一起:(:Person) -:LIVES_IN- (:City) -:PART_OF-Country)像关系数据库中的SQL一样,Cypher是一种文本的声明式查询语言。它使用ASCII art的形式来表达基于图的模式。采用类似SQL的语句,如MATCH,WHERE和DELETE,来组合这些模式以表达所预期的操作。节点语法Cypher采用一对圆括号来表示节点。如:(), (foo)。下面是一些常见的节点表示法:()(matrix)Movie)(matrix:Movie title: The Matrix), released: 1997)Mat

2、ch (matrix:) return matrix关系语法Cypher使用一对短横线(即“-”)表示:一个无方向关系。有方向的关系在其中一段加上一个箭头(即“”)。方括号表达式可用于添加详情。里面可以包含变量、属性和或者类型信息。关系的常见表达方式如下:-role-:ACTED_IN-role:ACTED_IN roles: Neo-Match (n)-role-(m) return n, role ,m模式语法将节点和关系的语法组合在一起可以表达模式。(keanu:Person:Actor name:Keanu Reeves)-role: )事务任何更新图的查询都运行在一个事务中。一个更新

3、查询要么全部成功,要么全部失败。Cypher或者创建一个新的事务,或者运行在一个已有的事务中:如果运行上下文中没有事务,Cypher将创建一个,一旦查询完成就提交该事务。如果运行上下文中已有事务,查询就会运行在该事务中。直到该事务成功地提交之后,数据才会持久化到磁盘中去。兼容性Cypher不是一成不变的语言。新版本引入了很多新的功能,一些旧的功能可能会被移除。如果需要,旧版本依然可以访问到。这里有两种方式在查询中选择使用哪个版本:为所有查询设置版本:可以通过neo4j.conf中cypher.default_language_version参数来配置Neo4j数据库使用哪个版本的Cypher语

4、言。在查询中指定版本:简单地在查询开始的时候写上版本,如Cypher 2.3。1.2基本语法类型Cypher处理的所有值都有一个特定的类型,它支持如下类型:数值型字符串 布尔型 节点关系路径映射(Map)列表(List)表达式Cypher中的表达式如下:十进制(整型和双精度型)的字面值:13, -4000, 3.14, 6.022E23十六进制整型字面值(以0x开头):0x13zf, 0xFC3A9, -0x66eff八进制整型字面值(以0开头):01372, 02127, -05671字符串字面值:Hello, World布尔字面值:true, false, TRUE, FALSE变量:n,

5、 x, rel, myFancyVariable, A name with weird stuff in it!属性:n.prop, x.prop, rel.thisProperty, myFancyVariable. (weird property name)动态属性:nprop, reln.city + n.zip, mapcoll0参数:$param, $0表达式列表:ab, 1, 2, 3, , 2, n.property, $param, 函数调用:length(p), nodes(p)聚合函数:avg(x.prop), count(*)路径-模式:(a)-()3 and 3 10,

6、 exists(a.name)正则表达式:a.name = Tob.*大小写敏感的字符串匹配表达式:a.surname STARTS WITH Sven, a.surname ENDS WITH son or a.surname CONTAINS CASE表达式转义字符Cypher中的字符串可以包含如下转义字符:字符含义t制表符b退格n换行r回车f换页单引号双引号反斜杠uxxxxUnicode UTF-16编码点(4位的十六进制数字必须跟在u后面)UxxxxxxxxUnicode UTF-32 编码点(8位的十六进制数字必须跟在U后面)Case表达式计算表达式的值,然后依次与WHEN语句中的表

7、达式进行比较,直到匹配上为止。如果未匹配上,则ELSE中的表达式将作为结果。如果ELSE语句不存在,那么将返回null。语法:CASE testWHEN value THEN resultWHEN .ELSE defaultEND 参数:test:一个有效的表达式value:一个表达式,它的结果将与test表达式的结果进行比较result:如果value表达式能够与test表达式匹配,它将作为结果表达式default:没有匹配的情况下的默认返回表达式查询MATCH (n)RETURNCASE n.eyesWHEN blueTHEN 1brownTHEN 2ELSE 3 END AS resul

8、t变量当需要引用模式(pattern)或者查询的某一部分的时候,可以对其进行命名。针对不同部分的这些命名被称为变量。例如:MATCH (n)-r-(b)RETURN b 这里的n和b和r就是变量。参数Cypher支持带参数的查询。这意味着开发人员不是必须用字符串来构建查询。此外,这也让执行计划的缓存更容易。参数能够用于WHERE语句中的字面值和表达式,START语句中的索引值,索引查询以及节点和关系的id。参数不能用于属性名、关系类型和标签,因为这些模式(pattern)将作为查询结构的一部分被编译进查询计划。合法的参数名是字母,数字以及两者的组合。下面是一个使用参数的完整例子。参数以JSON

9、格式提供。具体如何提交它们取决于所使用驱动程序。字符串name :JohanMatch (n) where n.name=$name return n 运算符数学运算符 包括+,-,*,/ 和%,。比较运算符 包括=,=,=,IS NULL和IS NOT NULL。布尔运算符 包括AND,OR,XOR和NOT。字符串运算符 连接字符串的运算符为+。正则表达式的匹配运算符为=。列表运算符 列表的连接也可以通过+运算符。可以用IN来检查列表中是否存在某个元素。值的相等与比较 Cypher支持使用=和来比较两个值的相等/不相等关系。同类型的值只有它们是同一个值的时候才相等,如3 = 3和x xy。值

10、的排序与比较 比较运算符=,(降序)可以用于值排序的比较。如下所示:数字型值的排序比较采用数字顺序java.lang.Double.NaN大于所有值字符串排序的比较采用字典顺序。如布尔值的排序遵循false true当有个参数为null的时候,比较结果为null。如null 3的结果为null将其他类型的值相互比较进行排序将报错链式比较运算比较运算可以被任意地链在一起。如x y = z等价于x y AND y = z。MATCH (n) WHERE 21 n.age = 30 RETURN n等价于 n.age AND n.age 注释Cypher语言的注释类似其他语言,用双斜线/来注释行。M

11、ATCH (n) RETURN n /这是行末尾注释/这是整行注释RETURN nMATCH (n) WHERE n.property = /这不是注释 RETURN n 使用模式可以描述你期望看到的数据的形状。例如,在MATCH、CREATE、DELETE等语句中,当用模式描述一个形状的时候,Cypher将按照模式来获取相应的数据。模式描述数据的形式很类似在白板上画出图的形状。通常用圆圈来表达节点,使用箭头来表达关系。节点模式模式能表达的最简单的形状就是节点。节点使用一对圆括号表示,然后中间含一个名字。(a)这个模式描述了一个节点,其名称使用变量a表示。关联节点的模式模式可以描述多个节点及其

12、之间的关系。Cypher使用箭头来表达两个节点之间的关系。(b)也可以描述一个节点的多个标签,如:User:Admin)-指定属性属性在模式中使用键值对的映射结构来表达,然后用大括号包起来。例如,一个有两个属性的节点如下所示:(a name:Andres, sport:Brazilian Ju-Jitsu) 关系中的属性:(a)-blocked: false-描述关系如前面的例子所示,可以用箭头简单地描述两个节点之间的关系。它描述了关系的存在性和方向性。但如果不关心关系的方向,则箭头的头部可以省略。(a)-(b)与节点类似,如果后续需要引用到该关系,则可以给关系赋一个变量名。变量名需要用方括号

13、括起来,放在箭头的短横线中间,如下所示:(a)-r-就像节点有标签一样,关系可以有类型(type)。给关系指定类型,如下所示:(a)-r:REL_TYPE-不像节点可以有多个标签,关系只能有一个类型。但如果所描述的关系可以是一个类型集中的任意一种类型,可以将这些类型都列入到模式中,它们之间以竖线“|”分割。TYPE1|TYPE2-注意:这种模式仅适用于描述已经存在的数据(如在MATCH语句中),而在CREATE或者MERGE语句中是不允许的,因为一个关系不能创建多个类型。与节点类似,关系的命名也是可以省略的。(a)-:(b) 与使用一串节点和关系来描述一个长路径的模式不同,很多关系(以及中间的

14、节点)可以采用指定关系的长度的模式来描述。(a)-*2-它描述了一张三个节点和两个关系的图。这些节点和关系都在同一条路径中(路径的长度为2)。它等同于:()-关系的长度也可以指定一个范围,这被称为可变长度的关系。(a)-*3.5-关系的长度最小值为3,最大值为5。它描述了一个或者有4个节点和3个关系,或者5个节点4个关系,或者6个节点和5个关系连在一起的图组成的一条路径。长度的边界也是可以省略的,如描述一个路径长度大于等于3的路径:(a)-*3.-路径长度小于等于5的路径,如:(a)-*.5-两个边界都可以省略,这允许任意长度的路径,如:(a)-*-列表Cypher对列表(list)有很好的支

15、持。可以使用方括号和一组以逗号分割的元素来创建一个列表。例如RETURN 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 AS list 空值空值null在Cypher中表示未找到或者未定义。从概念上讲,null意味着”一个未找到的未知值”。 对待null会与其他值有些不同。例如从节点中获取一个并不存在的属性将返回null。大多数以null作为输入的表达式将返回null。这包括WHERE语句中用于断言的布尔表达式。null不等于null。两个未知的值并不意味着它们是同一个值。因此,null = null返回null而不是true。判断 某个节点上 有或没有 某个属性,如下Match

16、(n) where n.name is null return nMatch (n) where n. name is not null return n空值的逻辑运算逻辑运算符(包括AND,OR,XOR,IN,NOT)把null当作未知的三值逻辑值。下面为AND,OR和XOR的逻辑值表。abaANDORXORfalsenulltrue空值与ININ运算符遵循类似的逻辑。如果列表中存在某个值,结果就返回true。如果列表包含null值并且没有匹配到值,结果返回null。否则结果为false。下面表中是一些例子:结果2 IN 1, 2, 32 IN 1, null, 32 IN 1, 2, null2 IN 12 IN null IN 1, 2, 3null IN 1, null, 3null IN all, any, none和single与IN类似,如果可以确切地计算结果,将返回true或者false。否则将返回null。返回空值的表达式从列表中获取不存在的元素:0,head()试图访问节点或者关系的不存在的属性:n.missingProperty与null做比较:1 null包含null的算术运算:1 + null包含任何null参数的函数调用:sin(null)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1