跳转到主要内容

Nullable(数据类型)

Nullable 数据类型

NULL 用于表示不存在或未知的值。 Nullable 数据类型允许存储 NULL 值。 例如, Nullable(Int64) 类型可以存储 Int64 类型的值以及 NULL

Syntax

创建表时,可以参照下述语句,定义 Nullable 列数据类型:

CREATE TABLE test(
id Int64,
name String NULL,
age Int32 NOT NULL
);

NULL 表示此字段的数据类型是 Nullable 并可以存储 NULL 值。 NOT NULL 表明此字段不能存储 NULL 值。

备注

使用 Nullable 几乎总是会对性能产生负面影响。 如果没有显式设定,Databend 的列数据类型默认为 NOT NULL

函数

检查值是否为 NULLNOT NULL

IS NULL

IS NOT NULL

Example

CREATE TABLE nullable_table(a Int8 NOT NULL, b Int8 NULL);

DESC nullable_table;
+-------+---------+------+---------+-------+
| Field | Type | Null | Default | Extra |
+-------+---------+------+---------+-------+
| a | TINYINT | NO | 0 | |
| b | TINYINT | YES | NULL | |
+-------+---------+------+---------+-------+

INSERT INTO nullable_table VALUES(1, NULL),(2, 3);

SELECT * FROM nullable_table;
+---+--------+
| a | b |
+---+--------+
| 1 | <null> |
| 2 | 3 |
+---+--------+

SELECT b, b IS NULL, b IS NOT NULL FROM nullable_table;
+--------+-----------+---------------+
| b | b IS NULL | b IS NOT NULL |
+--------+-----------+---------------+
| <null> | 1 | 0 |
| 3 | 0 | 1 |
+--------+-----------+---------------+