Neo4j CQL基本使用
Neo4j用CQL作为查询语言
CQL
- Neo4j图形数据库的查询语言
- 是一种声明性模式匹配语言
- 遵循SQL语法
- 语法是非常简单且人性化、可读的格式
1.启动服务,打开浏览器
在数据浏览器中的美元提示符下键入命令

2.常用命令
(1)CREATE
- 创建没有属性的节点
- 使用属性创建节点
- 在没有属性的节点之间创建关系
- 使用属性创建节点之间的关系
- 为节点或关系创建单个或多个标签
创建节点
CREATE (<node-name>:<label-name>)
eg:
CREATE (emp:Employee)
创建一个标签和一个节点,在数据库中创建一个带有标签名“Employee”的节点“emp”


创建带有属性的节点
CREATE (
<node-name>:<label-name>
{
<Property1-name>:<Property1-Value>
........
<Propertyn-name>:<Propertyn-Value>
}
)
eg:
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
创建:
一个标签,即“Dept”;
一个节点,即“dept”;
三个属性,即deptno,dname,location

创建关系
- 单向关系
- 双向关系
CREATE (<node1-name>:<label1-name>)-
[(<relationship-name>:<relationship-label-name>)]
->(<node2-name>:<label2-name>)
eg:
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
From Node——节点名称 p1,节点标签名称profile1
To Node——节点名称p2,节点标签名称Profile2
r1是关系名称,LIKES是一个关系标签名称


(2)MATCH和
MATCH
- 从数据库获取有关节点和属性的数据
- 从数据库获取有关节点,关系和属性的数据
MATCH
(
<node-name>:<label-name>
)
RETURN
- 检索节点的某些属性
- 检索节点的所有属性
- 检索节点和关联关系的某些属性
- 检索节点和关联关系的所有属性
RETURN
<node-name>.<property1-name>,
........
<node-name>.<propertyn-name>
不能单独使用MATCH或RETURN命令,结合起来从数据库检索数据
MATCH + RETURN命令
- 检索节点的某些属性
- 检索节点的所有属性
- 检索节点和关联关系的某些属性
- 检索节点和关联关系的所有属性
MATCH Command
RETURN Command
eg:
MATCH (dept:Dept) return dept

MATCH (dept: Dept) RETURN dept.deptno,dept.dname

(3)WHERE
过滤MATCH查询的结果
WHERE <condition> <boolean-operator> <condition>
<boolean-operator> AND,OR,NOT,XOR
<condition>
<property-name> <comparison-operator> <value>
<comparison-operator> =,<>,<,>,<=,>=
eg:
CREATE (emp:Employee{id:1001,name:"Lokesh",sal:35000,deptno:10})
CREATE (emp:Employee{id:1002,name:"abc",sal:28000,deptno:20})
CREATE (emp:Employee{id:1003,name:"xyz",sal:35000,deptno:30})
CREATE (emp:Employee{id:1004,name:"Mno",sal:32000,deptno:40})
查询
MATCH (emp:Employee) RETURN emp.id,emp.name,emp.salary,emp.deptno

MATCH (emp:Employee) WHERE emp.name = 'abc' RETURN emp

MATCH (emp:Employee) WHERE emp.name = 'abc' OR emp.name='xyz' RETURN emp.id,emp.name,emp.sal,emp.deptno

使用WHERE创建关系
- 创建两个现有节点之间的关系
- 一次创建两个节点和它们之间的关系
- 使用WHERE子句创建两个现有节点之间的关系
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
WHERE <condition>
CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>
{<relationship-properties>}]->(<node2-label-name>)
eg:
CREATE (e:Customer{id:"1001",name:"Abc",dob:"01/10/1982"})
CREATE (cc:CreditCard{id:"5001",number:"1234567890",cvv:"888",expiredate:"20/17"})
MATCH (cust:Customer),(cc:CreditCard) WHERE cust.id = "1001" AND cc.id= "5001" CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r

(4)DELETE
- 删除节点
- 删除节点及相关节点和关系
删除节点
DELETE <node-name-list>
eg:
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
MATCH (d: Dept) RETURN d

MATCH (d: Dept) DELETE d

删除节点和关系
DELETE <node1-name>,<node2-name>,<relationship-name>
eg:
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
MATCH (p1:Profile1)-[r]-(p2:Profile2)RETURN p1,r,p2

MATCH (p1:Profile1)-[r]-(p2:Profile2) DELETE p1,r,p2

两个节点及其关联都被删除了
MATCH (p1:Profile1)-[r]-(p2:Profile2) RETURN r

还有很多命令,以后再继续学习
Neo4j CQL基本使用的更多相关文章
- neo4j CQL 使用
neo4j CQL 使用 1. create命令 CREATE (emp:Employee) #创建一个emp 员工标签 CREATE (dept:Dept) #部门标签 #Added 1 label ...
- Neo4j入门之中国电影票房排行浅析
什么是Neo4j? Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持 ...
- 史上最全面的Neo4j使用指南
Neo4j图形数据库教程 Neo4j图形数据库教程 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.测试 第三章:CQL 1 ...
- NEO4j简单入门
Neo4j是: 一个开源 无Schema 没有SQL 图形数据库 图形数据库也称为图形数据库管理系统或GDBMS. Neo4j的官方网站:http://www.neo4j.org Neo4j的优点 它 ...
- 一文教你用 Neo4j 快速构建明星关系图谱
更多有趣项目及代码见于:DesertsX/gulius-projects 前言 本文将带你用 neo4j 快速实现一个明星关系图谱,因为拖延的缘故,正好赶上又一年的4月1日,于是将文中的几个例子顺势改 ...
- 史上超全面的Neo4j使用指南
Create by yster@foxmail.com 2018-7-10 我的博客:https://blog.csdn.net/yueshutong123 W3Cschool文档:https://w ...
- Neo4j图数据库从入门到精通
目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...
- Neo4j图数据库从入门到精通(转)
add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...
- 初识Neo4j
Neo4j是一个世界领先的开源图形数据库. 它是由Neo技术使用Java语言完全开发的. Neo4j的优点 它很容易表示连接的数据 检索/遍历/导航更多的连接数据是非常容易和快速的 它非常容易地表示半 ...
随机推荐
- 微信小程序转百度小程序代码
听说百度小程序开始出现手机端搜索流量,作为SEO一员,必须搞他.但是又奈何之前做的都是微信小程序,所以用php写了一个微信小程序转百度小程序代码. 修改文件后缀名 .wxml转换为.swan .wxs ...
- (转)python自动化测试之异常及日志
为了保持自动化测试用例的健壮性,异常的捕获及处理,日志的记录对掌握自动化测试执行情况尤为重要,这里便详细的介绍下在自动化测试中使用到的异常及日志,并介绍其详细的用法. 一.日志 打印日志是很多程序的重 ...
- [USACO08OCT]:打井Watering Hole(MST)
题意:有N个牧场,每个牧场修水井花费Wi,连接牧场花费Pij,问最小花费,使得每个牧场要么有水井,要么和有水井的牧场有通道. 思路:加一个格外的节点O,连接O表示修井,边权是修井的费用. 那么 ...
- python获取参数列表
def f(a=1, b=2, c=3): print(locals())#在函数内获取 #使用inspect模块,简单方便 python2.7: import inspectinspect.geta ...
- robot framework中如何为每个测试用例,测试集准备数据或销毁数据
Suite Setup:在这个测试集的所有测试用例开始测试之前运行(类似于junit的@BeforeClass) Suite Teardown:在这个测试集的所有测试用例结束之后运行(类似于junit ...
- pgloader 方便的数据迁移工具
pgloader 是一个支持多种数据源迁移到pg 数据库的工具,高性能,使用灵活同时作者 也提供了docker 版本的镜像,今年3月份使用此工具的时候,发现好久都没更新了,但是 最近作者有了新版本的发 ...
- The two of the oldest man need cheers
At a company dinner, the drinking rule was that two colleagues of similar age clinked glasses of win ...
- Java-根据经纬度计算距离(百度地图距离)
最近碰到一个需求,需要根据两个点的经纬度查询两点的距离.感觉以后还会用到,所以小记一波. 第一步:添加Maven依赖. <dependency> <groupId>org.ga ...
- mysql 唯一键
唯一键特点: 1.唯一键在一张表中可以有多个. 2.唯一键允许字段数据为NULL,NULL可以有多个(NULL不参与比较) //一个表中允许存在多个唯一键,唯一键允许为空,在不为空的情况下,不允许重复 ...
- Tkinter 之文件管理器
一.效果图 二.功能描述 1.打开文件菜单中的打开按钮,可以选择目录. 2.可以查看各种类型的图片. 3.可以编辑文本. 4.显示行号功能,可改变目录显示的宽度. 三.使用的标签 1.Menu 2.F ...