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
- 现在先行尝试toupper函数。
match(stu:Student)
return stu.id,toupper(stu.name),stu.age
**【注意】**如果按照上面命令,使用的是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的唯一约束。