に最終更新
BOOLEAN
説明
BOOLEAN(別名: BOOL)は、真と偽のブール値を表す Doris のデータ型です。
内部的には、BOOLEAN は uint8 値として格納され、0 が false、1 が true を表します。
MySQL では BOOLEAN は TINYINT(1) の別名ですが、Doris では PostgreSQL や Oracle などのデータベースシステムと同様に、BOOLEAN を独立したデータ型として扱います。
値の範囲
BOOLEAN の値は次のいずれかです。
true(表示時は 1)false(表示時は 0)
メモリ上で BOOLEAN 型の値は 0 または 1 のみであり、それ以外の値は取りません。
リテラル値
Doris では、キーワード true と false(大文字と小文字は区別されません)をブール値のリテラルとして使用できます。
mysql> select TrUe, False, true;
+------+-------+------+
| TrUe | False | true |
+------+-------+------+
| 1 | 0 | 1 |
+------+-------+------+
対応する演算
論理演算
BOOLEAN 型は AND、OR、NOT、XOR などの論理演算をサポートします。
mysql> select true AND false, true OR false, NOT true, true XOR false;
+----------------+---------------+----------+----------------+
| true AND false | true OR false | NOT true | true XOR false |
+----------------+---------------+----------+----------------+
| 0 | 1 | 0 | 1 |
+----------------+---------------+----------+----------------+
算術演算
BOOLEAN は算術演算を直接サポートしませんが、暗黙的な型変換により、true + true のような式は実行できます。
mysql> select true + true;
+-------------+
| true + true |
+-------------+
| 2 |
+-------------+
これは、ブール値が暗黙的に SMALLINT に変換されるためです: CAST(TRUE AS smallint) + CAST(TRUE AS smallint)。
型変換
MySQL の慣例によって似て見える場合がありますが、Doris では BOOLEAN と TINYINT は同等ではない点に注意してください。
ブール値のリテラルを TINYINT 列に挿入すると、暗黙的な型変換が行われます。
CREATE TABLE test_boolean(
u8 TINYINT
)
properties("replication_num" = "1");
mysql> insert into test_boolean values(true);
この例では、ブール値のリテラル true が TINYINT 値に変換されます。
キーワード
BOOL, BOOLEAN