CPL
CQL代表Cypher查询语言。像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言
基础点
1. cpl特征
它是Neo4j图形数据库的查询语言。
它是一种声明性模式匹配语言
它遵循SQL语法。
它的语法是非常简单且人性化、可读的格式。
2.常用命令关键词
| CPL命令关键词 | 用法 |
|---|---|
| CREATE | 创建节点,关系和属性 |
| MATCH | 检索有关节点,关系和属性数据 |
| RETURN | 返回查询结果 |
| WHERE | 提供条件过滤检索数据 |
| DELETE | 删除节点和关系 |
| REMOVE | 删除节点和关系的属性 |
| ORDER BY | 排序检索数据 |
| SET | 添加或更新标签 |
| Aggregation | 用于对CQL查询结果执行一些聚合操作。 |
| Relationship | 用于获取关系的细节,如startnode,endnode等。 |
一. 创建节点
Neo4j使用CQL“CREATE”命令
创建没有属性的节点
使用属性创建节点
在没有属性的节点之间创建关系
使用属性创建节点之间的关系
为节点或关系创建单个或多个标签
命令格式
CREATE (<node-name>:<label-name>)
// PS:也可以创建多个标签到节点
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)
node-name : 节点代表的是查询得到的实例对象集合,或者创建的对应对象
可以简单的理解为: 就是一个对象的引用(名)变量名, 可以方便我们对其进行操作
不需要对对象操作时,可以不写node-name, 比如在创建节点的时候
label-name: 节点标签名称. 作为内部节点名称的别名,
标签可以看做是图数据库的分类,
相当于mysql ---------- 表名
实例
1. 创建一个Person人的标签, 3个节点, 属性: id, name, desc
CREATE (men:Person {id:1,name:"nandi1",age:100,desc:"test1"})
CREATE (women:Person {id:2,name:"nandi2",age:100,desc:"test2"})
CREATE (x:Person {id:3,name:"nandi3",age:100,desc:"test3"})
// 不写node-name 也是可以的
CREATE (:Person {id:4,name:"nandi4",age:100,desc:"test4"})
查看结果


二. 关系
创建统一用create命令,而关系的创建,实际上和创建节点差不多,唯一区别就是,关系是有方向的,而且关系用‘[]’表示,而节点用’()'表示
关系标记
关系标记(->)包含两个节点
从节点
到节点
从节点 -> 到节点
命令格式
// <node1-details>是“From Node”节点详细信息
// <node2-details>是“到节点”节点详细信息
// relationship-details>是关系详细信息
CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)
实例
MATCH (a:Person), (b:Person) where a.name="nandi1" and b.name="nandi2"
create(a)-[r:兄弟{des:"兄弟关系测试"}]->(b) return a,r,b

// 省略标签
MATCH (a), (b) where a.name="nandi1" and b.name="nandi3"
create(a)-[r:兄弟{des:"兄弟关系测试"}]->(b) return a,r,b
MATCH (a), (b) where a.name="nandi1" and b.name="nandi3"
create(b)-[r:兄弟{des:"兄弟关系测试"}]->(a) return a,r,b


三. 查找
Neo4j CQL MATCH命令用于 -
从数据库获取有关节点和属性的数据
从数据库获取有关节点,关系和属性的数据
命令格式
MATCH
(
<node-name>:<label-name>
)
查找实例
// 查找标签Person所有节点
match (x: Person) return x
// 查找标签Person, 节点id=1的节点
match (x: Person) where x.id = 1 return x
查找关系
MATCH (a)-[r]-(b) where a.name="nandi1" and b.name="nandi2" return a, r, b四. 其他
DELETE
REMOVE
SET
UNION
LIMIT
ORDER BY
COUNT
MAX
MIN
AVG
SUM
...省略1万字...
文章转载自PuShkin,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




