这篇具有很好参考价值的文章主要介绍了neo4j。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。
-- 创建节点语句
CREATE (
<node-name>:<label-name>
{
<Property1-name>:<Property1-Value>
........
<Propertyn-name>:<Propertyn-Value>
}
);
其中的node-name 是节点名称
label-name 是标签名称
propert1-name是属性名称和property-value是属性值
例如
单节点单标签
create (p:Person{name:"alicy"});
create (p:Person{name:"Tom", sex:"男"});
文章来源地址https://www.toymoban.com/news/detail-747461.html
单节点多标签
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 语句不能使用()而是[]文章来源:https://www.toymoban.com/news/detail-747461.html
match(p:Person) where p.name in ["Tom","test"] return p;
到了这里,关于neo4j的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!