NULL¶
默认情况下,插入点或边时,属性值可以为NULL,用户也可以设置属性值不允许为NULL(NOT NULL),即插入点或边时必须设置该属性的值,除非创建属性时已经设置默认值。
NULL 的逻辑操作¶
AND、OR、XOR和NOT的真值表如下。
| a | b | a AND b | a OR b | a XOR b | NOT a |
|---|---|---|---|---|---|
| false | false | false | false | false | true |
| false | null | false | null | null | true |
| false | true | false | true | true | true |
| true | false | false | true | true | false |
| true | null | null | true | null | false |
| true | true | true | true | false | false |
| null | false | false | null | null | null |
| null | null | null | null | null | null |
| null | true | null | true | null | null |
OpenCypher 兼容性¶
NebulaGraph 中,NULL 的比较和操作与 openCypher 不同,后续也可能会有变化。
NULL 的比较¶
NebulaGraph 中,NULL 的比较操作不兼容 openCypher。
NULL 的操作和返回¶
NebulaGraph 中,对 NULL 的操作以及返回结果不兼容 openCypher。
示例¶
使用 NOT NULL¶
创建 Tag,名称为player,指定属性name为NOT NULL。
nebula> CREATE TAG IF NOT EXISTS player(name string NOT NULL, age int);
使用SHOW命令查看创建 Tag 语句,属性name为NOT NULL,属性age为默认的NULL。
nebula> SHOW CREATE TAG player;
+-----------+-----------------------------------+
| Tag | Create Tag |
+-----------+-----------------------------------+
| "student" | "CREATE TAG `player` ( |
| | `name` string NOT NULL, |
| | `age` int64 NULL |
| | ) ttl_duration = 0, ttl_col = """ |
+-----------+-----------------------------------+
插入点Kobe,属性age可以为NULL。
nebula> INSERT VERTEX player(name, age) VALUES "Kobe":("Kobe",null);
使用 NOT NULL 并设置默认值¶
创建 Tag,名称为player,指定属性age为NOT NULL,并设置默认值18。
nebula> CREATE TAG IF NOT EXISTS player(name string, age int NOT NULL DEFAULT 18);
插入点Kobe,只设置属性name。
nebula> INSERT VERTEX player(name) VALUES "Kobe":("Kobe");
查询点Kobe,属性age为默认值18。
nebula> FETCH PROP ON player "Kobe" YIELD properties(vertex);
+--------------------------+
| properties(VERTEX) |
+--------------------------+
| {age: 18, name: "Kobe"} |
+--------------------------+
最后更新:
2025年8月8日