本文介绍管理图中属性的语句。
显示属性
使用显示属性的语句获取当前图中与点schema或边schema关联的属性信息。
<show property statement> ::=
<show node property> | <show edge property>
<show node property> ::=
"SHOW NODE" <node schema name> "PROPERTY"
<show edge property> ::=
"SHOW EDGE" <edge schema name> "PROPERTY"
获取点schema User
的属性信息:
SHOW NODE User PROPERTY
获取边schema Joins
的属性信息:
SHOW EDGE Joins PROPERTY
属性信息展示在不同表格中:
- 点属性:表
_nodeProperty
展示所有点属性信息,表_nodeProperty_shard_N
展示分片N
中的点属性信息。 - 边属性:表
_edgeProperty
展示所有边属性信息,表_edgeProperty_shard_N
展示分片N
中的边属性信息。
表中各字段提供了每个属性的基础信息:
字段 |
描述 |
---|---|
name |
属性名称 |
type |
属性值类型 |
lte |
属性是否已加载至分片内存以加速查询 |
read |
当前数据库用户能否读取该属性,1 表示可以,0 表示不可以 |
write |
当前数据库用户能否写入该属性,1 表示可以,0 表示不可以 |
schema |
属性关联的schema |
description |
对属性的描述 |
encrypt |
加密该属性的方法 |
创建属性
使用创建属性的语句可向当前图添加一或多个属性。
<add property statement> ::=
<add node property> | <add edge property>
<add node property> ::=
"ALTER NODE" { <node schema name> | "*" } "ADD PROPERTY" <property types>
<add edge property> ::=
"ALTER EDGE" { <edge schema name> | "*" } "ADD PROPERTY" <property types>
<property types> ::=
"{" <property type> [ { "," <property type> }... ] "}"
<property type> ::=
<property name> <property value type>
详情
- 可以指定
<node schema name>
或<edge schema name>
来关联属性,或使用*
指定所有点schema或边schema。 - 对于每个
<property type>
:- 指定
<property name>
时,需注意属性命名规范。 - 查看所有支持的属性值类型。
- 指定
整数类属性
支持的整数类属性值类型包括int32
、uint32
、int64
和uint64
。
ALTER NODE user ADD PROPERTY {age uint32}
小数类属性
支持的小数类属性值类型包括float
、double
和decimal
。
ALTER EDGE links ADD PROPERTY {distance float, weight decimal}
文本类属性
支持的文本类属性值类型包括string
和text
,其中string
是默认类型。若需将属性定义为string
类型,可在属性创建过程中省略类型指定过程。
ALTER NODE post ADD PROPERTY {title string, content text}
时间类属性
支持的时间类属性值类型包括datetime
和timestamp
。
ALTER NODE post ADD PROPERTY {createdOn timestamp, publishedOn datetime}
布尔类属性
支持的布尔类属性值类型为bool
。
ALTER NODE city ADD PROPERTY {isCapital bool}
空间类属性
支持的空间类属性值类型为point
。
ALTER NODE city ADD PROPERTY {position point}
列表类属性
支持的列表类属性值类型包括子类型int32
、int64
、uint32
、uint64
、float
、double
、string
、text
、datetime
和timestamp
。
ALTER NODE user ADD PROPERTY {interests list<string>}
为所有schema创建属性
为所有边schema创建属性time
:
ALTER EDGE * ADD PROPERTY {time datetime}
删除属性
使用删除属性的语句可以删除当前图中的属性。属性删除后,所有相关数据都将删除,其中包括属性值、关联的索引、全文索引和内存中加载到引擎的值。
<drop property statement> ::=
<drop node property> | <drop edge property>
<drop node property> ::=
"ALTER NODE" { <node schema name> | "*" } "DROP PROPERTY" <property name> [ { "," <property name> }... ]
<drop edge property> ::=
"ALTER EDGE" { <edge schema name> | "*" } "DROP PROPERTY" <property name> [ { "," <property name> }... ]
删除点user
的属性name
和属性age
:
ALTER NODE user DROP PROPERTY name, age
删除边links
的属性time
:
ALTER EDGE links DROP PROPERTY time
删除所有点的属性location
:
ALTER NODE * DROP PROPERTY location