部署和安装图数据库
CQL语句
一.load cvs 导入cvs文件
数据源如下:
二.MATCH 命令
Neo4j CQL MATCH 命令用于
从数据库获取有关节点和属性的数据
从数据库获取有关节点,关系和属性的数据
MATCH (
节点名:标签名
{
属性名1:属性值1,
........
属性名n:属性值n
}
);
示例:
# e.g
# 查询Dept下的内容
MATCH (dept:Dept);
# 查询User标签中 name 属性为 Tom 的节点
MATCH (n: User{name: "Tom" });
# 查询User标签中 name 属性为 Tom 的节点,使用(where命令)
MATCH (n:User) WHERE n.name = "Tom"
三.CREATE命令
Neo4j使用CQL CREATE 命令
创建节点
CREATE (
[节点名]:标签名
{
属性名1:属性值1,
........
属性名n:属性值n
}
);
# e.g
# 创建一个Person类的节点,名为Mike,年龄18
CREATE (node:Person {age:18, name:"Mike"})
创建关系
CREATE (节点1:标签1)-[关系名:关系标签]->(节点2:标签2)
# e.g
# 对 节点p1 与 p2 建立 LIKES 关系
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
为节点或关系创建单个或多个标签
CREATE (
节点名:标签名1,标签名2...标签名n
);
# e.g
# 为 节点m 创建 Movie、Cinema、Film、Picture 标签
CREATE (m:Movie:Cinema:Film:Picture)
四.RETURN子句
Neo4j CQL RETURN子句用于 -
检索节点的某些属性
检索节点的所有属性
检索节点和关联关系的某些属性
检索节点和关联关系的所有属性
Neo4j CQL RETURN子句用于 -
检索节点的某些属性
检索节点的所有属性
检索节点和关联关系的某些属性
检索节点和关联关系的所有属性
# e.g
# 返回 节点n 的 name 属性
RETURN n.name
五.WHERE子句
像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果。
WHERE 条件;
Neo4j CQL中的布尔运算符 Neo4j支持以下布尔运算符在Neo4j CQL WHERE子句中使用以支持多个条件。
Neo4j CQL中的比较运算符 Neo4j 支持以下的比较运算符,在 Neo4j CQL WHERE 子句中使用来支持条件。
六.DELETE删除
Neo4j使用CQL DELETE子句
删除节点。
删除节点及相关节点和关系。
DELETE 节点1,节点2,...关系1,关系2...;
# e.g
# 删除 节点 cc 以及 节点 c 以及两者的关系 rel
MATCH (cc: CreditCard)-[rel]-(c:Customer)
DELETE cc,c,rel
六.REMOVE删除
Neo4j CQL REMOVE命令用于
删除节点或关系的标签
删除节点或关系的属性
Neo4j CQL DELETE和REMOVE命令之间的主要区别
DELETE操作用于删除节点和关联关系。
REMOVE操作用于删除标签和属性。
Neo4j CQL DELETE和REMOVE命令之间的相似性
这两个命令不应单独使用。
两个命令都应该与MATCH命令一起使用。
REMOVE
节点名.属性1,
节点名.属性2,
....
节点名.属性n,
# e.g
# 删除 节点 n 的 name 属性
MATCH (n:Person)
REMOVE n.name
八.SET语句
Neo4j CQL 已提供 SET 子句来执行以下操作。
向现有节点或关系添加新属性。
添加或更新属性值。
SET
节点.属性1 = 值1,
节点.属性2 = 值2,
....
节点.属性n = 值n,
# e.g
# 将节点n 的 name 属性设置为 Jack
MATCH (n:Person)
SET n.name = 'Jack'
九.LIMIT与SKIP子句
Neo4j CQL提供“LIMIT”与“SKIP”子句来过滤或限制查询返回的行数。
“LIMIT”修整CQL查询结果集底部的结果;
“SKIP”修整CQL查询结果集顶部的结果。
LIMIT 限制行数
SKIP 限制行数
增
# 创建一个节点
CREATE (k : Person{ name:'Mike',born:2002}) RETURN k;
# 创建多个节点
CREATE (:User{name:"爷爷",age:76}),
(:User{name:"奶奶",age:74}),
(:User{name:"爸爸",age:43}),
(:User{name:"妈妈",age:41});
# 基于现有节点 创建一个关系
MATCH (f:User{name:"爸爸"}) MATCH (m:User{name:"妈妈"}) CREATE (f)-[r:夫妻]->(m) RETURN f,r,m
# 创建 节点 + 关系
CREATE (:User{name:"Jack",age:12})-[:夫妻]->(:User{name:"Rose",age:9})
删
# 删除语句 先删关系在删节点。
MATCH (n:User{name:"Jack"})-[r]-() WHERE n.age=0.6 DELETE r, n;
改
# 修改属性
MATCH (a:User{name:"JACK",age:12}) SET a.age=5 return a;
查
# 根据节点属性值 返回 具体单个节点
MATCH (n: User{name: "TOM" }) return n;
# 根据对象返回对象中的部分属性并限制行数
MATCH (n:Person) RETURN n.name LIMIT 10;
# 根据属性的条件区间 返回 所在区间的对象属性
MATCH (n: Movie) WHERE n.released >= 1990 AND n.released < 2000 RETURN n.title
# 查询 节点对象 、其关系 以及 关系的节点
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies