cypher语言学习

cypher语言学习

create 命令

CREATE (
   <node-name>:<label-name>   # 通过标签创建节点
   { 	# 属性 key-value形式
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)

p.s: 一个节点可以有多个标签,标签之间用:分隔

match 命令

用途:

  • 从数据库获取有关节点和属性的数据
  • 从数据库获取有关节点,关系和属性的数据
MATCH 
(
   <node-name>:<label-name>   # node-name是节点的别名 
)

p.s. match命令需要和return联合使用

return命令

用途:

  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性
return <node-name>
return <node-name>.<property1_name>,<node-name>.<property2_name>

where子句

WHERE <condition> <boolean-operator> <condition>   # 其中布尔运算符包含and, or, not, xor
WHERE <property-name> <comparison-operator> <value>  # 比较运算符包括=, <>, <, >, <=, >=

使用where子句创建关系

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>) 
WHERE <condition>
CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>
       {<relationship-properties>}]->(<node2-label-name>) 

delete命令

可以从数据库永久删除节点及其关联的属性

delete <node-name-list>  # 使用(,)运算符来分隔节点名

p.s. delete命令不单独使用,跟match共同使用,先match出相应的记录,然后删除

remove命令

用途:

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

与delete命令的区别:delete用于删除节点和关联关系,remove用于删除标签和属性

remove <node-name>.<property1-name>, <node-name>.<propertyn-name>  # 删除属性名称列表
remove <node-name>:<label2-name>, <node-name>:<labeln-name> # 删除标签名称列表

p.s. remove命令也不单独使用,要跟match一起使用

set命令

用途

  • 向现有节点或关系添加新属性
  • 添加和更新属性值
SET  <node-label-name>.<property1-name>, <node-label-name>.<property2-name> 

order by命令

ORDER BY  <property-name-list>  [DESC]	# 默认情况下是升序排序ASC

union命令

将两组结果中的公共行组合并返回到一组结果中。其中结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该相同,列的数据类型应该相同。

<MATCH Command1>
   UNION
<MATCH Command2>

p.s. 查询不返回相同的数据

limit命令和skip命令

limit <num>  # 限制查询返回的结果的行数,返回num行数据
skip <num>  # 跳过查询结果的前num行返回后面的结果

merge命令

merge命令是create命令和match命令的组合

MERGE (<node-name>:<label-name>
{
   <Property1-name>:<Pro<rty1-Value>
   .....
   <Propertyn-name>:<Propertyn-Value>
})

p.s. MERGE命令检查该节点在数据库中是否可用。 如果它不存在,它创建新节点。 否则,它不创建新的。也就是先检查一下现有数据库中含不含该节点,如果不包含则创建一个新的节点,如果包含则pass

IN操作符

IN [<Collection-of-values>]   # 某个属性在这个集合中的数据

字符串函数

UPPER (<input-string>)  # 输入一个字符串并转换为大写 <input-string>可以是来自Neo4J数据库的节点或关系的属性名称。
LOWER (<input-string>)  # 输入一个字符串并转换为小写
SUBSTRING(<input-string>,<startIndex> ,<endIndex>)  # 接受一个字符串作为输入和两个索引:一个是索引的开始,另一个是索引的结束,并返回从StartInded到EndIndex-1的子字符串。

aggregation聚合函数

COUNT(<value>)   # <value>可以是*,节点或关系标签名称或属性名称
MAX(<property-name>)
MIN(<property-name>)
AVG(<property-name>)
SUM(<property-name>)

建立和删除索引

CREATE INDEX ON :<label_name> (<property_name>)  # 创建索引
DROP INDEX ON :<label_name> (<property_name>)  # 删除索引

p.s. :后面用于引用节点或关系标签名称

创建唯一性约束

用途:

  • 避免重复记录
  • 强制执行数据完整性规则
CREATE CONSTRAINT ON (<label_name>)
ASSERT <property_name> IS UNIQUE

删除唯一性约束

DROP CONSTRAINT ON (<label_name>)
ASSERT <property_name> IS UNIQUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值