什么是CQL
?
CQL
代表Cypher
查询语言,像Oracle
数据库具有查询语言SQL
,Neo4j
具有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/