Cypher是一种图数据库查询语言,表现力丰富,查询效率高,其地位和作用与关系型数据库中的SQL语言相当。

Cypher具备的能力:

  • Cypher通过模式匹配图数据库中的节点和关系,来提取信息或者修改数据。

  • Cypher语句中允许使用变量,用来表示命名、绑定元素和参数。

  • Cypher语句可以对节点、关系、标签和属性进行创建、更新和删除操作。

  • Cypher语句可以管理索引和约束。

Cypher的简单语法:

  • 1、节点语法:采用一对圆括号来表示节点。如: ()

    (foo)

  • 2、关系语法:使用一对短横线表示无方向关系,有方向加箭头。如: -[role]-

    -[:ACTED_IN]->

    -[role:ACTED_IN]->

  • 3、模式语法:将节点和关系的语法组合在一起可以表达模式。如: (keanu: Person: Actor {name: "Keanu Rteves"}-[role:ACTED_IN {roles: ["Neo"]}]->{matrix: Movie {title: "The Matrix"}})

Cypher处理值支持的类型:

  • 数值、字符串、布尔、节点、关系、路径、映射Map、列表List

Cypher查询语言中的所有函数:

  • 断言(Predicate)函数、标量(Scalar)函数、列表(List)函数、数学(Math)函数、字符串(String)函数、自定义函数

Neo4j程序开发模式:

  • Java嵌入式开发模式,Java开发人员完全可以直接在代码中调用Neo4j的API,并将对Neo4j数据库的操作嵌入到Java代码中;

  • 驱动开发模式,使用.net、JavaScript、Python、php等集成的驱动包或驱动库就可以与Neo4j相互对话

常用的语句

  • 1.创建节点语句

CREATE (n {name:"张三"}) //创建节点并给节点分配一个属性

CREATE ({name:"李四"})-[r:have]->({bookname:"设计模式"}) //创建一个关系,给两个节点建立关系指定关系类型、方向和绑定一个变量

  • 2.查询语句

MATCH (n{name:"张三"}) RETURN n //根据属性匹配节点信息

MATCH (n:Person)-[:FRIEND]->(m:Person) WHERE n.name = '张三' //匹配节点时指定标签、属性和关系类型

MATCH (n)-[k:KNOWS]->(f) WHERE k.since < 2000 RETURN f //根据关系属性过滤

  • 3.节点更新和删除

MATCH (n {name:'张三'}) SET n={age:20} //修改节点信息,覆盖节点属性

MATCH (n {name:'张三'}) SET n+={age:20} RETURN n //该语句不会删除掉name属性,而是在节点中新增age属性

MATCH (n{name:'张三'}) remove n.age RETURN n //删除节点属性

MATCH (a)-[r:KNOWS]->(b) DELETE r,b //删除一个节和关系

  • 4.索引和约束

CREATE INDEX ON :Person(name) //为"Person"标签的name属性创建索引

DROP CONSTRAINT ON (n:Person) ASSERT n.name IS UNIQUE //创建节点属性唯一约束

阅读原文...

声明:责编内容由 稀土掘金 发布,CoLaBug.com 无法对本文内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!CoLaBug.com 遵循[CC BY-SA 4.0]分享,并保持客观立场。如您有版权、意见、投诉等问题,请通过[eMail]联系我们处理。原文地址:https://www.colabug.com/6381865.html

3.3-Cypher语言及语法使用的更多相关文章

  1. neo4j初次使用学习简单操作-cypher语言使用

    Neo4j 使用cypher语言进行操作 Cypher语言是在学习Neo4j时用到数据库操作语言(DML),涵盖对图数据的增删改查  neo4j数据库简单除暴理解的概念: Neo4j中不存在表的概念, ...

  2. 【转】让Souce Insight支持多种语言的语法高亮:Python,Ruby,ARM汇编,windows脚本文件(bat/batch),PPC,SQL,TCL,Delphi等

    原文网址:http://www.crifan.com/source_insight_support_highlight_for_python_ruby_arm_batch_ppc_sql_tcl_de ...

  3. Java语言基本语法

    Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为“标识符”: 标识符由字母.数字.下划线.美元符号组成 ...

  4. linux下常用语言的语法检查插件整理

    linux下常用语言的语法检查插件 可以结合vim语法检查插件syntastic使用,具体请参考syntastic使用说明 如php,sql,json,css,js,html,shell,c等语法插件 ...

  5. 初识 go 语言:语法

    目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...

  6. go语言基本语法

    一个例子总结go语言基本语法  demo.go   package main   import (     "fmt" )   //结构体 type PersonD struct ...

  7. Groovy语言学习--语法基础(5)

    至此groovy语言学习-语法基础就结束了,新的工作已经安排下来,要干活了. 对groovy了解到一定程度之后就可以在java项目中对其进行引入了.为此新建了一个微型的项目,个人觉得千言万语不如代码实 ...

  8. Groovy语言学习--语法基础(1)

    2018年11月末,从上家公司离职后进入现在的公司.进入项目以来,发现项目中有很多groovy脚本,以前没接触过groovy,抽时间系统地学一下,也方便后期项目的开发和维护. groovy和java的 ...

  9. C语言基础语法

    #include <stdio.h> int main() { int age; printf("input your age"); scanf("%d&qu ...

随机推荐

  1. MySQL事务的四种隔离级别

    事务的基本要素: 原子性(atomicity):事务开始后的全部操作, 要么全部执行成功,如果中间出现错误,事务回滚到事务开始前的状态. 一致性(Consistency):事务开始后,数据库的完整性约 ...

  2. 55.Top K Frequent Elements(出现次数最多的k个元素)

    Level:   Medium 题目描述: Given a non-empty array of integers, return the k most frequent elements. Exam ...

  3. PHP include 与 require 区别

    include 与 require 语句同样用于向 PHP 代码中引用文件. include 与 require 有一个巨大的差异:  include 语句引用某个文件并且 PHP 无法找到它,脚本会 ...

  4. pychrm和linux进行链接上传代码

    众享周知:现在在windows文件中我们有pycharm工具帮我们去编辑python脚本,这会省去我们大把的时间让我们进行更多的脚本编辑.有这样的一种方法,我们可以使用pycharm编辑的脚本上传到l ...

  5. mongedb主从

    1.mongodb安装 1.将mongodb上传到linux系统 1.解压 tar -zxvf mongodb-linux-x86_64- -C /usr/local/ 这里默认安装到usr/loca ...

  6. NoWarningNoError(第八组)----Krad项目报告

    Alpha阶段展示及总结 Github地址:https://github.com/NiceKingWei/krad 项目地址:119.29.32.204/krad.html 一.项目概况 本组的项目为 ...

  7. java面试题最容易犯错

    1. static 和 final 的用法 static 的作用从三个方面来谈,分别是静态变量.静态方法.静态类. 静态变量:声明为 static 的静态变量实质上就是全局变量,当声明一个对象时,并不 ...

  8. mongoose 与 mylab 的使用 (1)

    1.引入mongoose  模块 const mongoose = require('mongoose'); 2.连接数据库 //连接数据库 mongoose.connect( db, {useNew ...

  9. typedef 复杂函数指针

    下面是三个变量的声明,我想使用typedef分别给它们定义一个别名,请问该如何做? >1:int *(*a[5])(int, char*); >2:void (*b[10]) (void ...

  10. 【leetcode】925.Long Pressed Name

    题目如下: Your friend is typing his name into a keyboard.  Sometimes, when typing a character c, the key ...