neo4j的CQL基本语法使用

neo4j是图形数据库,目前也是在学习阶段,主要是记录自己学习的过程。

1.创建(create)语句

语法:

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

语法说明:

语法元素描述
CREATE它是一个Neo4j CQL命令。
<node-name>它是我们要创建的节点名称。
<label-name>它是一个节点标签名称

创建一个节点例子:

create (user:User)

这里的user是节点名,User是 user 节点的标签名称。

当然,我们还可以在创建一个节点的时候,增加节点的属性。

创建带有属性节点语法

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

语法说明:

语法元素描述
<node-name>它是我们将要创建的节点名称。
<label-name>它是一个节点标签名称
<Property1-name>...<Propertyn-name>属性是键值对。 定义将分配给创建节点的属性的名称
<Property1-value>...<Propertyn-value>属性是键值对。 定义将分配给创建节点的属性的值

例子:

create (user:User{id:"1",name:"xiaoming",age:"26"})

大括号中的数据可以看做是一个json串。

打开neo4j的页面:输入上面的命令,如下图展示就成功创建了了一个带有多个属性的节点了。

2.修改(set)语句:

SET 子句向现有节点或关系添加新属性或者添加或更新属性值。

向节点新增字节属性并赋值:

match (u:User) set u.address='bj' return u

更新已有属性的值:id=“1”的address属性更新为hb

match (u:User)  where u.id="1"  set u.address='hb'   return u

这里可以搭配where使用,做条件过滤筛选。

3.删除语句

删除语句有两个关键字:delete和remove。

delete可以删除节点,也可以删除节点及相关节点和关系。关系的使用会在下篇文章进行总结。

例子:

//创建一个测试节点,并进行删除
//创建test节点,属性id=1
create (t:test{id:1})
//删除test节点
match (t:test) delete t

如果节点之间有关系的存在,那么用delete关键字进行删除会报错,会在下篇文章做演示。

remove可以删除节点或关系的标签,也可以除节点或关系的属性。

例子:

//创建test节点,有id和name属性
create (t:test{id:1,name:'test'})
//删除test的id属性
match (t:test) remove t.id return t

delete和remove的区别:

delete操作用于删除节点和关联关系。

remove操作用于删除标签和属性。

4.查询(MATCH)语句:

 MATCH语法:

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

语法说明:

语法元素描述
<node-name>这是我们要查询一个节点名称。
<label-name>这是一个节点的标签名称

RETURN语法:

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

语法说明:

语法元素描述
<node-name>它是我们将要创建的节点名称。
<Property1-name>...<Propertyn-name>属性是键值对。 <Property-name>定义要分配给创建节点的属性的名称

例子:

match (user:User) return user

return就是需要返回的数据,user的话就是返回user节点所有数据。

注意:match语法要和return或者delete等语法联合使用,如果只是用match会报错。

 正确执行后:

当然,我们可以查询user节点的某一个属性作为返回值,对比mysql会更容易理解。

mysql中是将查询返回属性放在了前面,neo4j是放在后面。

//mysql的写法:
select id from user  
//neo4j
match (user:User) return user.id

return后面是节点或者节点.属性名。

如果需要加过滤条件,那么就需要where语法了。

where语法

where语法和mysql的语法一样,都是过滤条件,多个条件用and、or、not、XOR做条件拼接。

条件中的比较运算符包括=、<>(不等于)、>、>=、<、<=。

例子:

match (u:User) where u.id="1" return u

这个语句就是查询id=“1”的数据,注意,如果存入的数据带有“”,那么条件也要带有“”。如果是数字,那么就不要带“”。条件要带有字节名.属性的格式,这个类似于mysql的表名.字段。

 多条件例子:

match (u:User) where u.id="1" and u.age = 25 return u

group by语法

 和mysql语法一样,group by后加属性名进行属性排序,asc升序,desc降序排序。默认不加是asc升序排序。

例子:

match (u:User)  return u group by u.age asc

 union语法:

将两个不同的结果合并成一组结果

创建另外一个节点,做两个表的拼接

create (p:Phone{user_id:1,phone:123456,address:"bj"})

然后查询两个表并且做union拼接。

match (p:Phone) return p.user_id as id,p.address as a,p.phone as name union  match (u:User) return u.id as id ,u.age as a,u.name as name

注意,union拼接的时候,必须所有的属性名要一直,否则会报错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值