资讯详情

Neo4j -CQL的基本使用(新手快速入门)

Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。 (1)它是Neo4j图形数据库的查询语言。 (2)它是一种声明模式匹配语言 (3)它遵循SQL语法。 (4)其语法非常简单、人性化、可读。

(以下链接为官方命令查询文件)

https://neo4j.com/docs/cypher-manual/3.5/clauses/ 在这里插入图片描述

常用命令(记住常用命令,不能直接查询)

1.CREATE

(1)创建角色节点

CREATE (n:Person { 
        name:'??曹'}) RETURN n 

CREATE是创作操作,Person是代表节点类型的标签。花括号{}代表节点的属性,属性相似Python字典。这句话的意思是创建一个标签Person该节点有一个节点name属性,属性值是曹。 (2)创建更多的角色节点

CREATE (n:Person { 
        name:'??达'}) RETURN n; CREATE (n:Person { 
        name:'??郜'}) RETURN n; CREATE (n:Person { 
        name:'雪姐'}) RETURN n; CREATE (n:Person { 
        name:'小潘潘'}) RETURN n; 

(3)然后建立关系

MATCH (a:Person { 
        name:'??达'}),        (b:Person { 
        name:'??曹'}) 
MERGE (a)-[:FATHER]->(b)

这里的方括号[]即为关系,FATHER为关系的类型。注意这里的箭头 -->是有方向的,表示是从a到b的关系。 如图,🐕曹和🐕达之间建立了FATHER关系: 但是刚刚手快不小心把FATHER(父亲)按成了FRIENDS(朋友),再继续创建FATHER关系,出现了这种情况。 因此我们提前熟悉DELETE命令,不删除节点仅删除关系。

MATCH (n { 
        name:'🐕达'})-[r:FRIENDS]->()
DELETE r

从名为“🐕达”的节点中删除所有关系为FRIENDS的传出关系。

然后改回我一开始想要的只有FATHER关系 (4)关系也可以增加属性

MATCH (a:Person { 
        name:'🐕郜'}), 
      (b:Person { 
        name:'🐕曹'}) 
MERGE (a)-[:FATHER { 
        since:2018}]->(b)

在关系中,同样的使用花括号{}来增加关系的属性,也是类似Python的字典,这里给FATHER关系增加了since属性,属性值为2018,表示他们建立父亲关系的时间。 (5)同上,建立更多的关系

MATCH (a:Person { 
        name:'🐕曹'}), (b:Person { 
        name:'雪姐'}) MERGE (a)-[:SISTERS { 
        since:2018}]->(b);
MATCH (a:Person { 
        name:'🐕曹'}), (b:Person { 
        name:'小潘潘'}) MERGE (a)-[:SISTERS { 
        since:2018}]->(b);
MATCH (a:Person { 
        name:'🐕达'}), (b:Person { 
        name:'🐕郜'}) MERGE (a)-[:BROTHERS { 
        since:2019}]->(b);

(6)创建地区节点

CREATE (n:Location { 
        city:'南阳'});
CREATE (n:Location { 
        city:'洛阳'});
CREATE (n:Location { 
        city:'平凉'});
CREATE (n:Location { 
        city:'南昌'});

(7)建立不同类型节点(人物与地区)之间的关系

MATCH (a:Person { 
        name:'🐕曹'}), (b:Location { 
        city:'平凉'}) 
MERGE (a)-[:BORN_IN { 
        year:1999}]->(b)

人物地区之间关系是BORN_IN,表示出生地,同样有一个属性,表示出生年份。 建立其他人的出生地

MATCH (a:Person { 
        name:'雪姐'}), (b:Location { 
        city:'洛阳'}) MERGE (a)-[:BORN_IN { 
        year:2000}]->(b);
MATCH (a:Person { 
        name:'小潘潘'}), (b:Location { 
        city:'南阳'}) MERGE (a)-[:BORN_IN { 
        year:2001}]->(b);
MATCH (a:Person { 
        name:'🐕达'}), (b:Location { 
        city:'南昌'}) MERGE (a)-[:BORN_IN { 
        year:2000}]->(b);
MATCH (a:Person { 
        name:'🐕郜'}), (b:Location { 
        city:'洛阳'}) MERGE (a)-[:BORN_IN { 
        year:1999}]->(b);

(8)创建节点的时候就建好关系

CREATE (a:Person { 
        name:'艳军'})-[r:FRIENDS]->(b:Person { 
        name:'红伟'})

2.MATCH

(1)检索所有在洛阳出生的人物

MATCH (a:Person)-[:BORN_IN]->(b:Location { 
        city:'洛阳'}) RETURN a,b

(2)检索所有对外有关系的节点

MATCH (a)-->() RETURN a

返回结果为什么没有地区节点????? 答:注意这里箭头的方向,因为地区并没有指向其他节点(只是被指向) (3)检索所有有关系的节点

MATCH (a)--() RETURN a

(4)检索所有对外有关系的节点,以及关系类型

MATCH (a)-[r]->() RETURN a.name, type(r)

(5)查询所有有父亲关系的节点

MATCH (n)-[:FATHER]-() RETURN n

(6)检索某人的朋友的朋友

MATCH (a:Person { 
        name:'🐕达'})-[r1:FATHER]-()-[r2:SISTERS]-(b) RETURN b.name AS Name

返回🐕达父亲的姐妹:

3.SET(对属性设置、更新、删除)(设置标签以及多个标签)

给节点增加/修改节点的属性

MATCH (a:Person { 
        name:'🐕曹'}) SET a.age=23;
MATCH (a:Person { 
        name:'🐕郜'}) SET a.age=23;
MATCH (a:Person { 
        name:'🐕达'}) SET a.age=22;

给🐕曹、🐕郜、🐕达追加年龄属性

4.WHERE(功能强大,建议去官网文档自行学习)

可用于在各种情况下使用来优化查询. 这里只介绍    布尔运算符  与  比较运算符

(1)比较运算符举例(对节点属性age进行30岁以下筛选)

MATCH (n)
WHERE n.age < 30
RETURN n.name, n.age

(2)布尔运算符举例

MATCH (n) 
WHERE n.name = '🐕曹' OR n.name = '🐕达'
RETURN n

使用“网格视图”查看节点详细信息

5.REMOVE(删除 节点和关系 的 属性)

删除节点的属性

MATCH (a:Person { 
        name:'🐕曹'}) REMOVE a.age

6.DELETE(删除节点和关系)

(1)删除平凉地区节点

MATCH (a:Location { 
        city:'平凉'}) DELETE a

报错:因为此节点还有关系。

所以此命令只能删除无关系节点。 (2)删除平凉节点及其所有关系

MATCH (a { 
         city: '平凉' })
DETACH DELETE a

成功!!!!!!!!!!! (3) 仅删除关系在create(3)讲过了 (4) 删除所有节点和关系(清空数据库)

MATCH (n)
DETACH DELETE n

标签: 平凉温湿度变送器标定计量平凉hpax电流变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台