3.3-Cypher语言及语法使用
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 //创建节点属性唯一约束
【阅读原文...】
3.3-Cypher语言及语法使用的更多相关文章
- neo4j初次使用学习简单操作-cypher语言使用
Neo4j 使用cypher语言进行操作 Cypher语言是在学习Neo4j时用到数据库操作语言(DML),涵盖对图数据的增删改查 neo4j数据库简单除暴理解的概念: Neo4j中不存在表的概念, ...
- 【转】让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 ...
- Java语言基本语法
Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为“标识符”: 标识符由字母.数字.下划线.美元符号组成 ...
- linux下常用语言的语法检查插件整理
linux下常用语言的语法检查插件 可以结合vim语法检查插件syntastic使用,具体请参考syntastic使用说明 如php,sql,json,css,js,html,shell,c等语法插件 ...
- 初识 go 语言:语法
目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...
- go语言基本语法
一个例子总结go语言基本语法 demo.go package main import ( "fmt" ) //结构体 type PersonD struct ...
- Groovy语言学习--语法基础(5)
至此groovy语言学习-语法基础就结束了,新的工作已经安排下来,要干活了. 对groovy了解到一定程度之后就可以在java项目中对其进行引入了.为此新建了一个微型的项目,个人觉得千言万语不如代码实 ...
- Groovy语言学习--语法基础(1)
2018年11月末,从上家公司离职后进入现在的公司.进入项目以来,发现项目中有很多groovy脚本,以前没接触过groovy,抽时间系统地学一下,也方便后期项目的开发和维护. groovy和java的 ...
- C语言基础语法
#include <stdio.h> int main() { int age; printf("input your age"); scanf("%d&qu ...
随机推荐
- 安装vue开发环境→安装淘宝镜像的时候报错
问题: npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid ...
- 博弈的dfs
题目: 链接:https://ac.nowcoder.com/acm/contest/283/D来源:牛客网 小西买了一堆肥宅快乐水和肥宅快乐茶,准备和室友比谁更肥宅. 快乐水有A瓶,快乐茶B瓶. 小 ...
- Using-JSONNET-for-dynamic-JSON-parsing
原文 https://weblog.west-wind.com/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing With the re ...
- c#各类DI容器
IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,侧重于原理. DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现. ...
- MyEclipse2017搭建android开发环境
1 安装MyEclipse2017cli7; 2 准备安装ADT插件和 Android SDK 开发包;比如:ADT-24.0.2 android-sdk_r24.4.1-windows; 工具栏点击 ...
- 2018-2-13-win10-UWP-九幽登录
title author date CreateTime categories win10 UWP 九幽登录 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...
- while 循环语句举例
- NFS 共享存储实战
目录 NFS 共享存储实战 一.NFS概述 二.NFS部署 部署NFS客户端backup和web01 统一web.nfs.backup的用户权限 代码部署步骤 三.NFS配置详解 NFS存储小结 四. ...
- Redis-HA
Redis-HA部署 链接:https://pan.baidu.com/s/1cj5H9snQXqWaC0od1mUuig 提取码:jdqf 复制这段内容后打开百度网盘手机App,操作更方便哦 1. ...
- java延迟队列
大多数用到定时执行的功能都是用任务调度来做的,单身当碰到类似订餐业务/购物等这种业务就不好处理了,比如购物的订单功能,在你的订单管理中有N个订单,当订单超过十分钟未支付的时候自动释放购物车中的商品,订 ...