w3c学习链接:Neo4j - 特点和优势_w3cschool
cypher语言。
./neo4j status|start|stop
注释:双斜杠是注释。
START n=node(1) RETURN b //这是行结束注释
创建标签:create (:大学{name:"武汉大学“})
--创建单标签:create (n: Person) --默认会有一个空节点
--创建多标签:create (n:Person:Indian)
注意:同时创建的标签,查询其中一个标签时,都会显示同时创建的所有标签;图表则是语句查询的记录。
查询标签:match (n:大学) return n --标签名不能带引号,反引号可以。
创建单节点:
create (var:label {k1:v1,k2:v2}) return var;
创建多节点:
create (var:label {k1:v1,k2:v2}) ,
(:label {k1:v11,k2:v21})
return var;
修改属性值:
match (p1:`大学`) where p1.name = '华南师范大学' set p1.name ="华师" return p1;
创建关系:
1、match (p1:'大学'),(p2:'院系') create (p1) - [r:院系关系] -> (p2)
2、match (a: stock) , (b: exchange) where a.name = 'xx' and b.name='yy' create (a) - [r:交易关系] -> (b) return r
(stock和exchange标签都有name属性)
查询节点:
1、match (a: stock) where a.name = 'xx' return a; --返回name为xx的股票记录
match (n:stock) where n.name in ["xx","yy"] return n;
2、match (a:stock) return a; --返回所有的股票记录
3、查询多标签: match (a:`大学`),(b:`学院`) return a,b
4、MATCH (n:bool) RETURN n.value --返回bool标签的value属性的值
字符串的会有双引号引起来;数值型、true是没有的。
type:有simple、object等。
5、通过ID查询节点:
MATCH (n) where id(n) >10 RETURN n
查询节点关系: -> 注意写法
3、match (: stock {name : 'xx' }) -[r] -> (: exchange {name: 'yy'}) return type(r) --返回两个节点的关系信息
4、match (: stock {name : 'xx'}) -[r] -> () return type(r) --返回name为xx的股票的所有关联关系
查询所有关系图:
MATCH p=()-[r:`院系关系`]->() RETURN p LIMIT 25
记忆: match (var: label {条件1}) -[r] -> (var : label {条件2} ) return type(r)
注意方向,返回条件1指向条件2的关系。
统计节点数:
MATCH (n) RETURN count(n)
统计所有关系:
// Count all relationships
MATCH ()-->() RETURN count(*);
删除节点:
1、删除标签下的某节点:
match (a: stock) where a.name ='xx' delete a; --先找到记录然后删除
2、删除标签的所有节点:
match (a: stock) delete a; --删除某标签节点
3、删除所有标签:
match (n) delete n ; --删除所有标签
match (n:`学院`) where n.name is NULL delete n; --删除空值节点,text查看表现为{}
只创建标签create (n: xx) 默认会有一个空的节点。
说明:删除节点必须得先删除关系。
删除节点关系:
1、删除两个节点之间的关系:
match (a: stock{name:'xx'}) -[r] → (b : exchange {name : 'yy'}) delete r ; 先查询关系然后删除
2、删除一个节点的所有关系:
match (a: stock{name:'xx'}) -[r] →() delete r; 删除该节点记录的所有关系
3、删除某个标签的所有关系:
match (: stock ) -[r] →() delete r ; 删除该stock标签的所有关系
4、删除所有关系:
match p = () - [r] -> () delete p;
match (n{node_code:"ResourceCategory-c8bec831"})-[r]-() delete n,r; 删除节点及其关联关系
新增、删除节点属性:
-- match (a:stock) where a.name = 'xx' set a.age = 22 return a;
-- match (a:stock) where a.name = 'xx' remove a.age ;
set子句,用于对更新节点的标签和实体的属性;
remove子句,用于删除实体的属性和节点的标签。
其他:
show databases;
:help
:use database名 使用数据库
CALL db.labels() --返回所有标签
// List relationship types
CALL db.relationshipTypes() --返回关系
// What is related, and how
CALL db.schema.visualization() --返回标签直接的关系,而不是标签节点的关系
数据库备份与恢复:
用户管理:
例子:
CREATE
(p1:Person {name:'胡兴炯', born:1991, interest:'mac,ios,旅游', goodat:'java,swift,objectiveC'}),
(p2:Person {name:'张勇', born:1990, interest:'android', goodat:'java,android'}),
(p3:Person {name:'成文龙', born:1990, interest:'linux,hadoop', goodat:'linux,java,android'}),
(p4:Person {name:'王昕', born:1978, interest:'wpf,noSQL,旅游', goodat:'java,c#'}),
(p5:Person {name:'周开琪', born:1977 , interest:'管理', goodat:'管理,'}),
(p6:Person {name:'徐锦亮', born:1985, interest:'前端', goodat:'前端,html5,hadoop'}),
(p6:Person {name:'张三', born:1993, interest:'大数据', goodat:'hadoop,html5,java,lucene,elasticsearch,solr'}),
(p8:Person {name:'徐辉霞', born:1990, interest:'管理,旅游', goodat:'管理,采购'}),
(p9:Person {name:'黄廷鹏', born:1992, interest:'OA', goodat:'java'}),
(p10:Person {name:'史乐乐', born:1991, interest:'OA,旅游', goodat:'管理'}),
(p1)-[:认识]->(p2),
(p1)-[:认识]->(p3),
(p1)-[:认识]->(p4),
(p1)-[:认识]->(p5),
(p1)-[:认识]->(p9),
(p2)-[:认识]->(p1),
(p2)-[:认识]->(p3),
(p2)-[:认识]->(p4),
(p2)-[:认识]->(p5),
(p2)-[:认识]->(p9),
(p3)-[:认识]->(p1),
(p3)-[:认识]->(p2),
(p3)-[:认识]->(p4),
(p3)-[:认识]->(p5),
(p3)-[:认识]->(p7)
————————————————
版权声明:本文为CSDN博主「三劫散仙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010454030/article/details/52704569