欢迎访问104网

当前位置: 首页 >  网站建设服务 >  neo4j

neo4j

时间:2023-12-05 12:27| 作者:admin 次

-- 创建节点语句

CREATE (
:
{
:
……..
:
}
);

其中的node-name 是节点名称

label-name 是标签名称

propert1-name是属性名称和property-value是属性值

例如
单节点单标签

create (p:Person{name:“alicy”});

create (p:Person{name:“Tom”, sex:“男”});

单节点多标签
CREATE (m:Movie:Cinema:Film:Picture)

-- match 语法
方法一:match (x:Person{name:“Tom”}) return x;

方法二:
match (p:Person)
where p.name=“Tom”
return p;

这两种是等价的,都是查找到Person下的名字叫Tom的节点

返回特定节点的特定属性
返回名字叫Tom的性别属性:
match (p:Person{name:“Tom”}) return p.sex;

创建单标签到关系

关系都是有方向的,从开始到结束

CREATE (<node1-name>:<label1-name>)-
	[<relationship-name>:<relationship-label-name>]
	->(<node2-name>:<label2-name>)  
node1-name:是from的节点名称、label1-name是标签名称


node2-name:是to的节点名称 label2-name是标签名称


relationship-name:关系名称


relationship-label-name:关系标签名称


为alicy和Tom创建恋人关系

match(a:Person{name:“alicy”}),(b:Person{name:“Tom”})

create (a)

-[rl:love]

->(b);

match(a:Person{name:“Tom”}),(b:Person{name:“alicy”})

create (a)

-[rl:love]

->(b);

相当于查出alicy和Tom,并分别叫上别名a,b ,为a,b建立关系

-- 移除关系,让alicy变心

match(a:Person{name:“alicy”})-[lv]->(b:Person{name:“Tom”}) delete lv;

-- alicy 爱上了laowang

match(a:Person{name:“alicy”}),(b:Person{name:“LaoWang”})

create (a)

-[lv:love]

->(b);

-- Tom 发现后自动解除关系,并退出

match(a:Person{name:“Tom”})

-[lv]->(b:Person{name:“alicy”})

delete a,lv

;

-- 删除节点

match (a:Movie) delete a;

-- 删除Tom节点以及它的所有关系

match (p:Person{name:‘Tom’}) -[lv]-(m) delete p,lv;

-- 为alicy 添加性别属性

match (p:Person{name:“alicy”}) set p.sex=‘女’ return p;

match (p:Person{name:“alicy”}) set p.job=‘主播’ return p;

-- 把alicy的职业移除

match (p:Person{name:“alicy”}) remove p.job return p;

-- 按照名字排序

match (p:Person) return p.name ORDER BY p.name desc;

-- union

match (a:Person{name:“alicy”})return a.name union all match(b:Person{name:“Tom”}) return b.name;

这种写法是不行的

从报错中可以得到必须要相同的列名,虽然我们看着相同,但是编辑器不认识,所以加上一个别名

match (a:Person{name:“alicy”}) return a.name as name union all match(b:Person{name:“Tom”}) return b.name as name;

-- limit

match (a:Person) return a LIMIT 1;

-- skip

match (a:Person) return a skip 1;

从结果看alicy被跳过去了

-- merge 语法 无则添加有则不动

match(a:Person{name:“Tom”}),(b:Person{name:“LaoWang”}) merge (a)-[lv:love]->(b) return a, b ;

-- 加上唯一约束

CREATE CONSTRAINT ON (n:Person) ASSERT n.name IS UNIQUE;

-- in 语句不能使用()而是[]

match(p:Person) where p.name in [“Tom”,“test”] return p;

1
热门

Copyright © 2018-2024 104网 版权所有 | 备案号:京ICP备104