neo4j的CQL基础学习

2021-05-21 11:12:45 浏览数 (1)

什么是CQL?

CQL代表Cypher查询语言,像Oracle数据库具有查询语言SQLNeo4j具有CQL作为查询语言。

  • 它是Neo4j图形数据库的查询语言。
  • 它是一种声明性模式匹配语言
  • 它遵循SQL语法。
  • 它的语法是非常简单且人性化、可读的格式。

Neo4j CQL数据类型

CQL数据类型

表示含义

boolean

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

byte

用于表示8位整数。

short

用于表示16位整数。

int

用于表示32位整数。

long

用于表示64位整数。

float

用于表示32位浮点数。

double

用于表示64位浮点数。

char

用于表示16位字符。

String

用于表示字符串。

常用Neo4j CQL命令

命令

作用

CREATE

创建节点,关系和属性

MATCH

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

RETURN

返回查询结果

WHERE

提供条件过滤检索数据

DELETE

删除节点和关系

REMOVE

删除节点和关系的属性

ORDER BY

排序检索数据

SET

添加或更新标签

CREATE
  • 创建没有属性的节点
  • 使用属性创建节点
  • 在没有属性的节点之间创建关系
  • 使用属性创建节点之间的关系
  • 为节点或关系创建单个或多个标签

1、创建没有属性的节点

语法:CREATE (<node-name>:<label-name>)

语法元素

描述

<node-name>

要创建的节点名称。

<label-name>

一个节点标签名称

实例:创建一个节点的一个标签

代码语言:javascript复制
CREATE (:pig)

2、创建包含具有属性的节点

语法:

代码语言:javascript复制
CREATE (
   <node-name>:<label-name>
   { 	
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)

语法元素

描述

<Property1-name>...<Propertyn-name>

属性是键值对。 定义将分配给创建节点的属性的名称

<Property1-value>...<Propertyn-value>

属性是键值对。 定义将分配给创建节点的属性的值

实例:创建一个小猪佩奇的节点

代码语言:javascript复制
CREATE (:pig {name:"小猪佩奇",age:10})
MATCH
  • 从数据库获取有关节点和属性的数据
  • 从数据库获取有关节点,关系和属性的数据

语法:

代码语言:javascript复制
MATCH (<node-name>:<label-name>)

语法元素

描述

<node-name>

这是创建一个节点名称

<label-name>

这是一个节点的标签名称

示例:

代码语言:javascript复制
MATCH (:pig)
执行失败,提示必须配合其他的语句使用,即执行下列语句

MATCH (p:pig) RETURN p
RETURN子句
  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性

语法:

代码语言:javascript复制
RETURN 
   <node-name>.<property1-name>,
   ........
   <node-name>.<propertyn-name>

语法元素

描述

<node-name>

这是创建一个节点名称

<Property1-name>...<Propertyn-name>

属性是键值对。 <Property-name>定义要分配给创建节点的属性的名称

MATCH & RETURN匹配和返回

在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该合并这两个命令以从数据库检索数据。

  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性

语法:

代码语言:javascript复制
MATCH Command
RETURN Command

语法元素

描述

MATCH命令

Neo4j CQL MATCH命令

RETURN命令

Neo4j CQL RETURN命令

示例:查询节点的所有标签

代码语言:javascript复制
MATCH (p:pig) RETURN p
CREATE创建标签

Label是Neo4j数据库中的节点或关系的名称或标识符, 因此将此标签名称称为关系为关系类型

使用Neo4j CQL CREATE命令

  • 为节点创建单个标签
  • 为节点创建多个标签
  • 为关系创建单个标签
单个标签到节点

语法:

代码语言:javascript复制
CREATE (<node-name>:<label-name>)

示例:

代码语言:javascript复制
CREATE (Movie:Cinema)
多个标签到节点

语法:

代码语言:javascript复制
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)

示例:

代码语言:javascript复制
CREATE (Movie:Film:Picture)
单个标签到关系

语法:

代码语言:javascript复制
CREATE (<node1-name>:<label1-name>)-
	[(<relationship-name>:<relationship-label-name>)]
	->(<node2-name>:<label2-name>)

语法元素

描述

CREATE

Neo4J CQL关键字

<node1-name>

From节点的名称

<node2-name>

To节点的名称

<label1-name>

From节点的标签名称

<label2-name>

To节点的标签名称

<relationship-name>

一个关系的名称

<relationship-label-name>

一个关系的标签名称

示例一:创建关系

代码语言:javascript复制
CREATE (:pig)-[r1:前后]->(:rabbit)

示例二:结合前后的语法创建单个节点中的任意标签关系

代码语言:javascript复制
MATCH (a:pig{name:"小猪佩奇"}) MATCH (b:pig{name:"小猪乔治"})  CREATE (a) -[r:兄妹] -> (b) RETURN r

简单的学习基础的CQL语法,后面继续更新关于进阶的CQL语法,博主CQL新手,有问题欢迎联系指出,指教。如果对这个感兴趣可以关注一下这个系列

喜欢编程的,请关注我的博客https://www.lzmvlog.top/

0 人点赞