neo4j学习笔记

neo4j CQL  W3Cschool https://www.w3cschool.cn/neo4j/neo4j_need_for_graph_databses.html

节点

属性

关系

标签

数据浏览器

在数据浏览器中使用语句及查看输入输出


一些命令语句

CREATE

创建一个没有属性的节点

CREATE (dept:Dept)

创建一个有属性的节点

CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })

MATCH(不能单独使用 要跟RETURN一起)

# 查询Dept下的内容 MATCH (dept:Dept) return dept

# 查询Employee标签下 id=123,name="Lokesh"的节点

MATCH (p:Employee {id:123,name:"Lokesh"}) RETURN p

## 查询Employee标签下name="Lokesh"的节点,使用(where命令)

MATCH (p:Employee) WHERE p.name = "Lokesh" RETURN p


MATCH&RETURN

MATCH (dept: Dept)
RETURN dept.deptno,dept.dname

关系基础

现有节点 无属性关系

MATCH (e:Customer),(cc:CreditCard) 
CREATE (e)-[r:DO_SHOPPING_WITH ]->(cc) 

现有节点 有属性关系

MATCH (cust:Customer),(cc:CreditCard) 
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) 
RETURN r

新建节点  无属性关系

CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2) 

新建节点 有属性关系

CREATE (video1:YoutubeVideo1{title:"ActionMovie1",updated_by:"Abc",uploaded_date:"10/10/2010"})-[movie:ACTION_MOVIES{rating:1}]->(video2:YoutubeVideo2{title:"ActionMovie2",updated_by:"Xyz",uploaded_date:"12/12/2012"}) 

检索关键节点的详细信息

MATCH (cust)-[r:DO_SHOPPING_WITH]->(cc) 
RETURN cust,cc

CREATE创建标签


创建单个标签

CREATE (google1:GooglePlusProfile)

创建多个标签

CREATE (m:Movie:Cinema:Film:Picture)

WHERE

MATCH (emp:Employee) 
WHERE emp.name = 'Abc'
RETURN emp

MATCH (emp:Employee) 
WHERE emp.name = 'Abc' OR emp.name = 'Xyz'
RETURN emp

用where创建新关系

MATCH (cust:Customer),(cc:CreditCard) 
WHERE cust.id = "1001" AND cc.id= "5001" 
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) 
RETURN r

DELETE(删除节点及相关节点和关系)

MATCH (e: Employee) DELETE e
MATCH (cc: CreditCard)-[rel]-(c:Customer) 
DELETE cc,c,rel

REMOVE(删除节点或关系的现有属性)

  • 删除节点或关系的标签
  • 删除节点或关系的属性

Neo4j CQL DELETE和REMOVE命令之间的主要区别 - 

  • DELETE操作用于删除节点和关联关系。
  • REMOVE操作用于删除标签和属性。

Neo4j CQL DELETE和REMOVE命令之间的相似性 - 

  • 这两个命令不应单独使用。
  • 两个命令都应该与MATCH命令一起使用。
MATCH (book { id:122 })
REMOVE book.price
RETURN book
MATCH (m:Movie) 
REMOVE m:Picture

SET

  • 向现有节点或关系添加新属性
  • 添加或更新属性值

MATCH (book:Book)

SET book.title = 'superstar'

RETURN book


OREDR BY

升序排列

MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name

降序排列

MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name DESC

UNION

MATCH (cc:CreditCard)
RETURN cc.id as id,cc.number as number,cc.name as name,
   cc.valid_from as valid_from,cc.valid_to as valid_to
UNION
MATCH (dc:DebitCard)
RETURN dc.id as id,dc.number as number,dc.name as name,
   dc.valid_from as valid_from,dc.valid_to as valid_to

它们具有相同的属性名:身份证和号码,但他们有不同的节点名称前缀。这就是为什么UNION命令会显示错误消息。为了避免这种错误,Neo4j的CQL提供“AS”子句

像CQL,CQL Neo4j的“AS”子句用于给一些别名。

union all 不过滤重复行


LIMIT和SKIP(过滤或限制查询返回的行数)

limit修剪CQL查询结果集底部的结果

MATCH (emp:Employee) 
RETURN emp
LIMIT 2

skip修剪CQL查询结果集顶部的结果

MATCH (emp:Employee) 
RETURN emp
SKIP 2

MERGE

MERGE命令是CREATE命令和MATCH命令的组合

Neo4j CQL MERGE命令在图中搜索给定模式,如果存在,则返回结果,如果它不存在于图中,则它创建新的节点/关系并返回结果

CQL MERGE命令检查该节点在数据库中是否可用, 如果它不存在,它创建新节点,否则,它不创建新的


IN

MATCH (e:Employee) 
WHERE e.id IN [123,124]
RETURN e.id,e.name,e.sal,e.deptno

此查询仅返回在IN运算符中指定的id匹配的两行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值