Neo4j - CQL 使用
Neo4j 的 Cypher 语言是为处理图形数据库而构建的,CQL 代表 Cypher 查询语言。
类似 关系型数据库的 SQL 语言。
文章目录
- Neo4j - CQL 使用
- 前言
- 一、load
- 二 create 创建
- 三 match 匹配
- 四 return 返回
- 五 where 条件
- 六 delete 删除
- 七 remove 删除
- 八 set 添加或修改属性
- 九 order by 排序
- 十 union 子句
- 十一 limit 和 skip 使用
- 总结
前言
- CQL 是Neo4j 图形数据库的查询语言;
- 是一种声明性模式匹配语言;
- CQL 遵循 SQL 语法;
- 语法简单并且简单人性化,可读性高;
一、load
1.1 load csv
将csv文件的数据导入到Neo4j中。
load csv from 'D:\xxx.csv' as line create (:drama {name:line[0], label:line[1]})
二 create 创建
2.1 创建单节点
create (paper)
2.2 创建多节点
create (customer),(users)
2.3 创建节点(带属性)
create (n:loveperson {name:'赵四', age:55, gender:'男'}) return n
创建了一个节点,属性值是手机信息。
2.4 创建关系
根据属性图模型,关系应该是定向的,否则,Neo4j将抛出错误信息。
2.4.1 单向关系
create (z:loveperson {name:'赵四'})-[rel:亲家]->(l:loveperson {name:'刘能'}) return type(rel)
match (z:loveperson {name:'赵玉田'}),(l:loveperson {name:'翠花'})
create (z)-[rel:对象 {status:'未婚'}]->(l)
return type(rel)
2.4.2 双向关系
create family=(:loveperson {name:'王小蒙', age:26, gender:'女'})<-[rel:夫妻 {status:'已婚'}]-(:loveperson {name:'谢永强', age:27, gender:'男'})-[rel2:父子]->(:loveperson {name:'谢广坤', age:58, gender:'男'}) return family
三 match 匹配
3.1 匹配节点
match (n:loveperson {name:'翠花'}) return n
3.2 匹配关系节点详细信息
match (n:loveperson)-[rel]->(m:loveperson) return n,m limit 10
四 return 返回
match (n:loveperson {name:'翠花'}) return n
4.1 返回节点或关系属性
match (n:loveperson) return id(n), n.name, n.age
五 where 条件
match (n:loveperson) where n.name='翠花' or n.name = '赵四' return n
5.1 按照id 查询
match (n) where id(n)=91 return n
六 delete 删除
6.1 按条件 删除节点
match (n:loveperson {name:'宋小宝'}) delete n
6.2 按条件 删除关系
match (n:loveperson {name:'宋小宝'})-[rel]->(m) delete rel return n
七 remove 删除
7.1 移除节点的属性
match (n:loveperson {name:"宋晓峰"}) remove n.gender
7.2 移除节点的标签
create (n:loveperson:person {name:"宋晓峰", age:28, gender:"男"}) return n
match (n:loveperson:person {name:'宋晓峰'}) remove n:person return n
八 set 添加或修改属性
8.1 根据id修改属性
match (n:loveperson) where id(n) = 130 set n.age = 30 return n
九 order by 排序
9.1 按照 age 进行升序排序
match (n:loveperson) return n order by n.age asc
十 union 子句
10.1 union 两个结果中的公共组合并返回一组结果中 (去重)
match (n:loveperson) return n.name as name
union
match (m:person) return m.name as name
10.2 union all 两个结果中的所有行组合成一个单一的结果集 (不去重)
match (n:loveperson) return n.name as name
union all
match (m:person) return m.name as name
十一 limit 和 skip 使用
11.1 limit 限制返回2个节点
match (n:loveperson) return n limit 2
11.2 skip 跳过2个节点
match (n:loveperson) return n skip 2
总结
本文主要记录了 neo4j 的简单操作(增、删、改、查)的各种 命令 的简单使用,还有 order by, union, skip , limit 这些常用的命令,笔记是学过知识的记录,也是增强记忆的方法,毕竟是亲手 尝试 并且 手敲上去的,留给自己,也分享给他人,有错误敬请留言指出。
图数据库 Neo4j 学习随笔之高级操作待续~~~