专栏首页深度学习之tensorflow实战篇Neo4j - CQL(Cypher)基本操作(一)

Neo4j - CQL(Cypher)基本操作(一)

Neo4j

标签属性图模型 • Nodes – 节点。在其他图模型中称作“点”、“顶点”、“对象”。 • Relationships – 关系。在其他图模型中也称作“边”、“弧”、“线”。关系拥有类型。 • Properties – 属性,可以定义在节点和关系上。 • Labels – 标签,代表节点的类别。

Neo4j与MySQL

这里有列出了一些与关系型数据库对应的概念方便理解:

动机 类似与关系型数据库,创建了多个数据库 想要像访问关系型数据库那样来可以无缝切换多个数据库 然而,在neo4j 3.0都暂时没有办法做到:每次启动neo4j,它只能读取一个数据库。 比如,现在有两个数据库graph.db,graph2.db。假设neo4j默认的数据库为graph.db,启动neo4j,这时候想要访问graph2.db,必须修改neo4j的配置文件,将数据库改为graph2.db,重启,此时才可以访问graph2.db.

那么,如何可以比较neat地切换数据库呢?

配置 Linux环境 同 博客:neo4j远程访问

方法 方法一:修改配置文件 这是官方文档方法 大概思路是:

新建一个conf_test文件 修改neo4j.conf:

# The name of the database to mount
dbms.active_database=graph2.db //你的数据库

将新的neo4j的配置文件的路径设为当前session的环境变量。 重启neo4j 问题 来了,我每次都要先新建一个conf文件夹,修改conf文件,再设置环境变量,据麻烦!!!

方法二:建立graph.db的软连接【推荐!!!】 (突然走向了大甩卖的风格了 -_-#)

不需要修改配置文件,不需要设置环境变量

首次修改: // 请将$NEO4j_HOME改为你的neo4j的安装路径

cd $NEO4j_HOME/data/databases/
// 保存原来数据库
mv graph.db graph1.db
//建立指向新数据库的软件接
ln -s graph2.db graph.db

//重启neo4j
cd $NEO4j_HOME/bin
./neo4j restart

再次修改 倘若我想访问graph3.db,就很简单了

//建立指向新数据库的软件接

ln -s graph3.db graph.db

//重启neo4j
cd $NEO4j_HOME/bin
./neo4j restart

CQL基本简介

Neo4j使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大,由于Neo4j在图形数据库家族中处于绝对领先的地位,拥有众多的用户基数,使得Cypher成为图形查询语言的事实上的标准 CQL代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。

Cypher语言的关键字不区分大小写,但是属性值,标签,关系类型和变量是区分大小写的

CQL数据类型

S.No.

CQL数据类型

用法

1.

boolean

用于表示布尔文字:true,false。

2.

byte

用于表示8位整数。

3.

short

用于表示16位整数。

4.

int

用于表示32位整数。

5.

long

用于表示64位整数。

6.

float

I用于表示32位浮点数。

7.

double

用于表示64位浮点数。

8.

char

用于表示16位字符。

9.

String

用于表示字符串。

常用CQL命令与函数

通过常用命令实现图数据的增删改查

S.No.

CQL命令/条

用法

1。

CREATE创建

创建节点,关系和属性

2。

MATCH匹配

检索有关节点,关系和属性数据

3。

RETURN返回

返回查询结果

4。

WHERE哪里

提供条件过滤检索数据

5。

DELETE删除

删除节点和关系

6。

REMOVE移除

删除节点和关系的属性

7。

ORDER BY以…排序

排序检索数据

8。

SET组

添加或更新标签

常用函数

S.No.

定制列表功能

用法

1。

String字符串

它们用于使用String字面量。

2。

Aggregation聚合

它们用于对CQL查询结果执行一些聚合操作。

3。

Relationship关系

他们用于获取关系的细节,如startnode,endnode等。

图数据的形式

基本语法

节点

节点必须包含在括号 () 内

(n:Label1:Label2)

• 标签名前必须有冒号 • 节点可以有多个标签 • 标签对节点进行分类,似关系数据库中的表 标签对节点进行分类,类似关系数据库中的表

(n)

节点可以没有或者不指定标签

(n:Label {prop: 'value'})

节点可以有属性

关系

关系两端各有一个短横线 /减号,用方括包含关系类型 ,关系类型名前面必须有冒号 (:) 。在其中一端用 >或 < 代表关系的方向,也可以没有方向

  - -  ,<- -,- ->
  -[:DIRECTED]- ->

关系以短划线\减号和方括号包含 与标签一样关系类型前必须要有“:”

- ->或 -[r:TYPE] ->

关系在创建时必须指定方向 关系在查询时可以不指定方向表示双向关系

< >指定关系的方 向

关系也可以有属性

-[:KNOWS {since: 2010}]

模式

模式是由关系连接起来的节点构成的表达式,关系可以是有方向的,也可以没有方向,双向的

() -[] -()
() -[] ->()
()< -[] -()

模式的例子

(n:Label {prop:'value'})-[:TYPE]- >(m:Label)
  • 最基本的模式:由一类关系连接两个节点 最基本的模式:
  • 由一类关系连接两个节点
(p1:Person {name:'Alice'}) -[:KNOWS][->(p2:Person {name:'Bob'})

如果存在从Alice到Bob的、类型为KNOWS的关系,那么上面模式会将匹配的节点保存在 p1 和p2中。

Cypher查询的组成部分

eg1.

eg 2.

eg 3.

图查询的结果 vs表状数据结果

eg 4.

命名规范

参考文献:Neo4j Inc. APAC 2018年 俞方桦 参考文献:https://www.cnblogs.com/wenruo/p/7850120.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • hive数据:名词解释

    问题导读 1.hive数据分为那两种类型? 2.什么表数据? 3.什么是元数据? 4.Hive表里面导入数据的本质什么? 5.表、分区、桶之间之间的关系是什么?...

    学到老
  • IBM SPSS Modeler Social Network Analysis 的介绍和日常应用

    IBM SPSS Modeler Social Network Analysis,中文叫做社交网络分析,本文将一律简称 SNA。

    学到老
  • IBM SPSS Modeler Social Network Analysis 的介绍和日常应用

    IBM SPSS Modeler Social Network Analysis,中文叫做社交网络分析,本文将一律简称 SNA。 引言 IBM Business...

    学到老
  • Docker发布集群工具SwarmKit

    最近Docker公司开源了Docker集群管理和容器编排工具SwarmKit,其主要功能包括节点发现、基于raft算法的一致性和任务调度等。基本概念服务器上运行...

    静一
  • 经典排序之 堆排序

    Author: bakari  Date: 2012.7.30 排序算法有很多种,每一种在不同的情况下都占有一席之地。关于排序算法我分“经典排序之”系列分别述之...

    CloudDeveloper
  • Python 刷题笔记:二叉树专题一

    今天来看二叉树专题,首先我们先整理下基础知识点;基于在 LeetCode 推荐题解中发现的一个适用于二叉树遍历的套路解法,我们今天也会连刷三道关于前序、中序和后...

    TTTEED
  • LDAP落地实战(三):GitLab集成OpenLDAP认证

    当重启完成后登陆报:Could not authenticate you from Ldapmain because "Invalid credentials"...

    37丫37
  • 人工智能搜索策略(上)

       广度优先搜索: 从初始节点S0开始逐层向下扩展,在第n层节点还没有全部搜索完之前,不进入第n+1层节点的搜索。Open表中的节点总是按进入的先后排序,先进...

    racaljk
  • 2019高考编程卷:谷歌面试编程题及解题技巧(MIT版)

    本课程重点介绍科技公司在面试时经常出现的计算机科学问题,其中包括时间复杂度、哈希表、二进制树搜索,以及 MIT「算法设计与分析」(MIT 6.046)课程中会出...

    机器之心
  • C# 数据操作系列 - 9. EF Core 完结篇

    《EF Core》实际上已经可以告一段落了,但是感觉还有一点点意犹未尽。所以决定分享一下,个人在实际开发中使用EF Core的一些经验和使用的扩展包。

    程序员小高

扫码关注云+社区

领取腾讯云代金券