【暑期实训】任务记录 2021-6-30

Neo4j学习

CQL学习

1.CREATE命令

Neo4j CQL创建一个没有属性的节点

CREATE命令语法

CREATE (<node-name>:<label-name>)

“CREATE”命令用于创建没有属性的节点。 它只是创建一个没有任何数据的节点。

node-name我们要创建的节点名称
label-name它是一个节点标签名称

注:应该使用<label-name访问节点详细信息

Neo4j CQL创建具有属性的节点

CREATE命令语法:

CREATE (
   <node-name>:<label-name>
   { 	
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)

2.MATCH命令

Neo4j CQL MATCH 命令用于

·从数据库获取有关节点和属性的数据
·从数据库获取有关节点,关系和属性的数据

MATCH 命令语法:

MATCH 
(
   <node-name>:<label-name>
)

注意-我们不能单独使用 MATCH Command 从数据库检索数据。 如果我们单独使用它,那么我们将 InvalidSyntax 错误。要配合return等命令使用

3.RETURN语句

Neo4j CQL RETURN子句用于 -

·检索节点的某些属性
·检索节点的所有属性
·检索节点和关联关系的某些属性
·检索节点和关联关系的所有属性
RETURN命令语法:

RETURN 
   <node-name>.<property1-name>,
   ........
   <node-name>.<propertyn-name>

注:return语句也不能单独使用

4.MATCH&RETURN

MATCH RETURN命令语法:

MATCH Command
RETURN Command

返回节点属性

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

返回节点

MATCH (dept: Dept)
RETURN dept

5.关系基础

基于方向性,Neo4j关系被分为两种主要类型。

·单向关系
·双向关系

没有属性的关系与现有节点

我们使用CQL MATCH命令检索现有的两个节点和CQL CREATE命令,以创建它们之间的新关系

语法:

MATCH (<node1-label-name>:<nodel-name>),(<node2-label-name>:<node2-name>)
CREATE  
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>{<define-properties-list>}]->(<node2-label-name>)
RETURN <relationship-label-name>

例:

match (xm:ytc),(cc:lzc) create (xm)-[r:Fall_in_love_with]->(cc)
MATCH (e)-[r:DO_SHOPPING_WITH ]->(cc) 
RETURN r

待解决问题:不知道为什么没有UI显示

与现有节点的属性的关系

使用现有节点创建有属性的关系

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE  
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>
	{<define-properties-list>}]->(<node2-label-name>)
RETURN <relationship-label-name>

例:

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) 
MATCH (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2) 
RETURN like
使用新节点创建属性关系
CREATE (video1:YoutubeVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"})
-[movie:ACTION_MOVIES{rating:1}]->
(video2:YoutubeVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"}) 
MATCH (video1:YoutubeVideo1)-[movie:ACTION_MOVIES]->(video2:YoutubeVideo2) 
RETURN movie
检索关系节点的详细信息

语法:

MATCH 
(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>

例:

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

6.CREATE创建标签

为节点创建多个标签

语法:

CREATE (m:Movie:Cinema:Film:Picture)
单个标签到关系
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)

7.WHERE子句

CQL比较运算符

<> 否

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

8.DELETE

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

9.REMOVE

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

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

CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250}) 
MATCH (book { id:122 })
REMOVE book.price
RETURN book

类似于SQL中的

ALTER TABLE BOOK REMOVE COLUMN PRICE;
SELECT * FROM BOOK WHERE ID = 122;

10.SET子句

更改属性值

MATCH (book:Book)
SET book.title = 'superstar'
RETURN book

11.ORDER BY

order by 默认升序
order by DESC 降序

12.UNION合并

<MATCH Command1>
   UNION
<MATCH Command2>

如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。

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 ALL不过滤重复行

13.LIMIT和SKIP

MATCH (emp:Employee) 
RETURN emp
LIMIT 2

返回Top的两个结果

MATCH (emp:Employee) 
RETURN emp
SKIP 2

skip跳过两个节点

14.合并

MERGE命令将新的节点添加到数据库,只有当它不存在

MERGE = CREATE + MATCH

CREATE命令总是向数据库添加新的节点,即使节点属性值是相同的。
MERGE命令向数据库添加新的节点时,当创建具有相同属性的同一个节点时,只保留一个。

15.NULL值

is null

16.IN操作符

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

17.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值