Neo4j学习Day6~7

Neo4j学习Day6~7

1.Neo4j CQL字符串函数

字符串列表

S.No. 功能 描述
1 toupper 它是用来改变所有的字母为大写字母。
2 lower 它是用来改变所有的字母为小写字母。
3 SUBSTRING 它是用来获得一个给定的String的子字符串。

1.1 toupper

toupper(<input-string>)

注意,<input-string>可以是Neo4j的数据库节点或者关系属性名。

1.2 lower

lower(<input-string>)

注意,<input-string>可以是Neo4j的数据库节点或者关系属性名。

1.3 substring

substring(<input-string>,<startIndex>,<endIndex>)

在Neo4j的CQL,如果一个字符串包含N个字母,那么它的长度为n和指数从0开始,并在N-1结束。

<startIndex>是指数值子字符串函数。

<endIndex>是可选的。 如果我们忽略它,则返回从startIndex到指定的字符串结束的字符串的子字符串。

【示例】接下来将一次性对上面3个函数进行示例

  • 打开数据浏览器
  • 输入以下命令创建出一个stu节点
CREATE(stu:Student{id:'1001',name:'abc',age:'19'})
CREATE(stu:Student{id:'1002',name:'def',age:'17'})
MATCH(stu:Student)
RETURN stu.id,stu.name,stu.age

Neo4j学习Day6~7

  • 现在先行尝试toupper函数。
match(stu:Student)
return stu.id,toupper(stu.name),stu.age

Neo4j学习Day6~7

**【注意】**如果按照上面命令,使用的是upper函数,由于Neo4j在4.2.6版本是不支持的,但是会提示你使用toupper函数。同理,lower()也要修改为tolower()。如下面命令第一行。

The function upper() is no longer supported. Please use toUpper() instead (line 2, column 15 (offset: 34))
"RETURN stu.id AS `stu.id`, upper(stu.name) AS `upper(stu.name)`, stu.age AS `stu.age`"
  • 接下来使用substring()函数
match(stu:Student)
return stu.id,substring(stu.name,0,2),stu.age

得到如下结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-guHk1FvM-1623248491722)(https://ftp.bmp.ovh/imgs/2021/06/a3a584f6c4a6540b.png)]

2.聚合函数

S.No. 聚集功能 描述
1 count 它返回由MATCH命令返回的行数。
2 MAX 它返回从一组由MATCH命令返回行的最大值。
3 MIN 它返回从一组由MATCH命令返回行的最小值。
4 sum 它返回由MATCH命令返回的所有行的总和值。
5 AVG 它返回由MATCH命令返回的所有行的平均值。

2.1 count

count(<value>)

其中,<value>可能是*,一个节点或关系标签名称或属性名称。

2.2 max

MAX(<property-name> )

2.3 min

min(<property-name>)

注意,<property-name>应该是一个节点或关系的名称。

2.4 AVG

AVG(<property-name> )

2.5 SUM

sum(<property-name>)

【示例】

  • 接下来使用其中的若干函数进行基本的使用。
  • 如上面示例所创建的stu节点。

输入以下命令。

match(stu:Student)
return count(stu.id)
--返回couny(stu.id)为2
match(stu:Student)
return max(stu.id)
--返回id='1002'

3.Neo4j CQL - 功能关系

语法如下:

STARTNODE (<relationship-label-name>)

注意:

<relationship-label-name>可能是从Neo4j数据库节点或者关系的属性名。

4.Neo4j的索引操作

  • 创建索引
  • DROP INDEX

4.1 创建索引

语法如下:

CREATE INDEX ON :<label_name> (<property_name>)

注意:-

冒号(:)操作符是用来指一个节点或关系标签名称。

上述语法描述了它的<PROPERTY_NAME> <LABEL_NAME>节点或关系创建一个新的指标。

4.2 删除索引

DROP INDEX语法:

DROP INDEX ON :<label_name> (<property_name>)

注意:

冒号(:)操作符是用来指一个节点或关系标签名称。

上面的语法描述它丢弃创建的现有指数节点或关系的<PROPERTY_NAME>,<LABEL_NAME>

5.唯一约束

5.1 创建唯一约束

Neo4j的CQL提供了“创建约束”命令创建的节点或关系的属性的唯一约束。

其语法如下:

CREATE CONSTRAINT ON (<label_name>)
ASSERT <property_name> IS UNIQUE

语法说明

S.No. 语法元素 描述
1 创建约束ON 这是一个Neo4j的CQL关键字。
2 <LABEL_NAME> 这是一个节点或关系的标签名称。
3 ASSERT 这是一个Neo4j的CQL关键字。
4 <PROPERTY_NAME> 这是一个节点或关系的属性名。
5 UNIQUE 这是一个Neo4j的CQL关键字通知Neo4j的数据库服务器上创建一个唯一约束。

注意:

上述语法描述了它的<PROPERTY_NAME> <LABEL_NAME>节点或关系创造了一个独特的约束。

5.2 删除唯一约束

Neo4j的CQL提供了“DROP约束”命令从一个节点或关系的财产删除现有的唯一约束。

DROP CONSTRAINT ON (<label_name>)
ASSERT <property_name> IS UNIQUE

语法说明

S.No. 语法元素 描述
1 DROP约束 这是一个Neo4j的CQL关键字。
2 <LABEL_NAME> 这是一个节点或关系的标签名称。
3 ASSERT 这是一个Neo4j的CQL关键字。
4 <PROPERTY_NAME> 这是一个节点或关系的属性名。
5 UNIQUE 这是一个Neo4j的CQL关键字通知Neo4j的数据库服务器上创建一个唯一约束。

注意

上述语法描述了从<LABEL_NAME>节点或关系的<PROPERTY_NAME>drop的唯一约束。

上一篇:Outfits——Day6-Beta冲刺


下一篇:逐梦校友圈——β冲刺day6