Nullable
Nullable Data Types
NULL
values are used to represent nonexistent or unknown values.
Nullable
data types allow storing NULL
values.
For example, the Nullable(Int64)
type can store Int64
values as well as NULL
.
Syntax
Define column field data types Nullable
while creating a table is as follows:
CREATE TABLE test(
id Int64,
name String NULL,
age Int32 NOT NULL
);
NULL
indicates that the data type of this field is Nullable
and can store NULL
values.
NOT NULL
indicates that this field cannot store NULL
values.
note
Using Nullable
will almost always have a negative impact on performance. If there is no explicit setting, Databend's column field data type defaults to NOT NULL
.
Functions
Check whether the value is NULL
or 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 |
+--------+-----------+---------------+