GBase 8a MPP Cluster (集群)-1 数据类型 (2)

1.2 字符类型

GBase 8a MPP Cluster 目前支持三种字符类型,如下表所示:
image.png

1.2.1 CHAR

CHAR(m)
CHAR 类型仅仅是为了兼容 SQL 标准,因此,不建议使用者在实际的项目
应用场景使用此数据类型,建议使用 VARCHAR 数据类型。
CHAR 是 CHARACTER 的缩写。m 表示该列中字符串的长度,其范围是 1 到
255 个字符。
当存储的字符长度小于指定的长度 m 时,在字符串右边用空格补齐。
当读取 CHAR 值时,填充的空格依旧保留。
如果给一个定义为 CHAR 类型的列插入一个超出最大长度的字符串,那么
系统将报告错误信息。

1.2.2

VARCHAR(m)
变长字符串,m 表示该列中串的长度,其范围是 1 到 10922 个字符。
当存储 VARCHAR 类型的数据时,不会用空格填充补足列定义长度,存储
的数据包含空格时,保留空格。
示例 1:VARCHAR 数据类型不会补足列定义的长度,但会保留插入的数据
中的空格。
示例中用到的表及数据:

CREATE TABLE products (productName VARCHAR(100));
INSERT INTO products(productName) VALUES('南大通用');
INSERT INTO products(productName) VALUES(' 南大通用');;
gbase> SELECT productName, LENGTH(productName) AS length,
CHAR_LENGTH(productName) AS char_length FROM pro ducts;
+----------------+--------+-------------+
| productName | length | char_length |
+----------------+--------+-------------+
| 南大通用 | 12 | 4 |
| 南大通用 | 14 | 6 |
+----------------+--------+-------------+
2 rows in set
gbase> SELECT productName FROM products WHERE productName = ' 南大通用 ';
+--------------+
| productName |
+--------------+
| 南大通用 |
+--------------+
1 row in set

查询结果中保留原始数据中的空格:

gbase> SELECT productName FROM products WHERE productName = ' 南大通 用 ';
+----------------+
| productName |
+----------------+
| 南大通用 |
+----------------+
1 row in set

1.2.3 TEXT

TEXT 类型仅仅是为了兼容其它数据库的类型,推荐使用 VARCHAR 类型。
TEXT 类型最大支持 10922 字符的存储长度,定义 TEXT 列时,不能为它
指定 DEFAULT 值。

  
    展开阅读全文