什么是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>一个节点标签名称

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

CREATE (:pig)

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

语法:

CREATE (
   <node-name>:<label-name>
   { 	
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)
语法元素描述
<Property1-name>...<Propertyn-name>属性是键值对。 定义将分配给创建节点的属性的名称
<Property1-value>...<Propertyn-value>属性是键值对。 定义将分配给创建节点的属性的值

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

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

语法:

MATCH (<node-name>:<label-name>)
语法元素描述
<node-name>这是创建一个节点名称
<label-name>这是一个节点的标签名称

示例:

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

MATCH (p:pig) RETURN p

RETURN子句

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

语法:

RETURN 
   <node-name>.<property1-name>,
   ........
   <node-name>.<propertyn-name>
语法元素描述
<node-name>这是创建一个节点名称
<Property1-name>...<Propertyn-name>属性是键值对。 <Property-name>定义要分配给创建节点的属性的名称

MATCH & RETURN匹配和返回

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

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

语法:

MATCH Command
RETURN Command
语法元素描述
MATCH命令Neo4j CQL MATCH命令
RETURN命令Neo4j CQL RETURN命令

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

MATCH (p:pig) RETURN p

CREATE创建标签

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

使用Neo4j CQL CREATE命令

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

语法:

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

示例:

CREATE (Movie:Cinema)
多个标签到节点

语法:

CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)

示例:

CREATE (Movie:Film:Picture)
单个标签到关系

语法:

CREATE (<node1-name>:<label1-name>)-
	[(<relationship-name>:<relationship-label-name>)]
	->(<node2-name>:<label2-name>)
语法元素描述
CREATENeo4J CQL关键字
<node1-name>From节点的名称
<node2-name>To节点的名称
<label1-name>From节点的标签名称
<label2-name>To节点的标签名称
<relationship-name>一个关系的名称
<relationship-label-name>一个关系的标签名称

示例一:创建关系

CREATE (:pig)-[r1:前后]->(:rabbit)

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

MATCH (a:pig{name:"小猪佩奇"}) MATCH (b:pig{name:"小猪乔治"})  CREATE (a) -[r:兄妹] -> (b) RETURN r

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