Neo4j-股票节点案例-增删改查

220 阅读2分钟

增加节点和关系

创建一个节点

create(定义一个节点变量名:节点的标签{"属性1":"值1","属性2":"值2"})
create(Variable:Lable{Key1:Value1,Key2:Value2}) 
返回结果
return Variable  

创建股票节点
create(n:Stock{name:'安琪酵母',code:"600298",launchDatee:date("2000-08-18")})
return n

创建多个股票
create(n:Stock{name:'招商银行',code:"600036",launchDatee:date("2000-08-18")}),(:Stock{name:'中科创达',code:"300696",launchDatee:date("2015-12-10")}),(:Stock{name:'华工科技',code:"000988",launchDatee:date("2000-06-08")}),(:Stock{name:'国信证券',code:"002736",launchDatee:date("2014-12-29")})
return n

创建两个证券交易所节点
create(n:SecuritiesExchange{name:'上海证券交易所'}),(:SecuritiesExchange{name:'深圳证券交易所'})

创建 城市节点
create(n:Province{name:'湖北'}),(:Province{name:'北京'}),(:Province{name:'广东'})


创建关系
MATCH(a:Stock),(b:SecuritiesExchange)
WHERE a.name = '安琪酵母' AND b.name='上海证券交易所'
CREATE (a)-[r:Exchange]->(b) RETURN r

创建股票和省市名称关系
MATCH(a:Stock),(b:Province)
WHERE a.name = '安琪酵母' AND b.name='湖北'
CREATE (a)-[r:Area]->(b) RETURN r

查询节点和关系

查询单个节点
MATCH(a:Stock)
WHERE a.name='安琪酵母'
RETURN a

查询所以节点
MATCH(a:Stock) RETURN a

查询两个节点关系
MATCH(:Stock{name:"安琪酵母"})-[r]->(:Province{name:"湖北"}) RETURN type(r)

通过函数type获取某个节点所有的关系的类型
MATCH(:Stock{name:'安琪酵母'})-[r]->() RETURN type(r)


删除节点和关系


删除该节点存在的关系,先删关系,在删节点
MATCH(a:Stock)
WHERE a.name='中科创达'
DELETE a

MATCH(a:SecuritiesExchange)
WHERE a.name='上海证券交易所'
DELETE a

删除某个标签的节点
MATCH(n:Person)
DELETE n

MATCH(n:Stock)
DELETE n

删除所以节点
MATCH(n)
DELETE n


在删除节点时候 需要先删除关系
删除关系
MATCH(:Stock{name:"安琪酵母"})-[r]->(:Province{name:"湖北"})
DELETE r

删除某个节点的关系

MATCH(:Stock{name:"安琪酵母"})-[r]->()
DELETE r

删除某个标签的全部关系
MATCH(:Stock)-[r]->()
DELETE r

删除全部关系
MATCH()-[r]->()
DELETE r


先选择所有节点,然后删除所有节点对应的关系
MATCH(n)
OPTIONAL MATCH (n)-[r]->()
DELETE r

MATCH(n)
OPTIONAL MATCH (n)-[r]->()
DELETE n,r

修改节点 和关系属性

增加节点属性

MATCH(a:Stock)
WHERE a.name='中科创达'
SET a.abbreviation='ZKCD'
RETURN a

删除节点属性

MATCH(a:Stock)
WHERE a.name='中科创达'
REMOVE a.abbreviation

查询扩展

LIMIT 
查询所有节点 显示25MATCH (n) RETURN n LIMIT 25