1.1.1 枚举类型
枚举(enum)类型是一个静态、有序的集合构成的数据类型。可以使用CREATE TYPE命令创建,例如:
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TYPE
一个枚举值在磁盘上占4字节,其文本标签的长度受限于NAMEDATALEN设置(最多63字节)。枚举标签大小写敏感,空白敏感。
1.1.2 几何类型
几何数据类型表示二维的空间物体,类型如下:
|
名字 |
存储尺寸 |
表示 |
描述 |
|
point |
16字节 |
平面上的点 |
(x,y) |
|
line |
32字节 |
无限长的线 |
{A,B,C} |
|
lseg |
32字节 |
有限线段 |
((x1,y1),(x2,y2)) |
|
box |
32字节 |
矩形框 |
((x1,y1),(x2,y2)) |
|
path |
16+16n字节 |
封闭路径(类似于多边形) |
((x1,y1),...) |
|
path |
16+16n字节 |
开放路径 |
[(x1,y1),...] |
|
polygon |
40+16n字节 |
多边形(类似于封闭路径) |
((x1,y1),...) |
|
circle |
24字节 |
圆 |
<(x,y),r> (center
point and radius) |
1.1.3 网络地址类型
GBase
8c提供用于存储 IPv4、IPv6 和 MAC 地址的数据类型,如下表所示:
|
名字 |
存储尺寸 |
描述 |
|
cidr |
7或19字节 |
IPv4和IPv6网络 |
|
inet |
7或19字节 |
IPv4和IPv6主机以及网络 |
|
macaddr |
6字节 |
MAC地址 |
|
macaddr8 |
8 字节 |
MAC 地址 (EUI-64 格式) |
用这些数据类型存储网络地址,可以进行输入错误检查报错及特殊操作符支持。
1.1.4 位串类型
位串就是一串 1 和 0 的串,可以用于存储和可视化位掩码。GBase 8c提供两种类型的 SQL 位类型:bit(n)和bit varying(n),其中 n是一个正整数。下面是一个使用位串类型的例子:
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TYPE
CREATE TABLE test (a BIT(3), b BIT VARYING(5));
CREATE TABLE
INSERT INTO test VALUES (B'101', B'00');
INSERT 0 1
INSERT INTO test VALUES (B'10', B'101');
ERROR: bit string length 2 does not match type
bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101');
INSERT 0 1
SELECT * FROM test;
a
| b
-----+-----
101 | 00
100 | 101
(2 rows)
1.1.5 文本搜索类型
GBase
8c提供两种数据类型支持全文搜索:tsvector类型和tsquery类型。tsvector类型表示一个为文本搜索优化的形式下的文档,tsquery类型表示一个文本查询。详见全文检索。
1.1.6 UUID类型
数据类型uuid存储由RFC 4122、ISO/IEC
9834-8:2005以及相关标准定义的通用唯一标识符(UUID)(某些系统将这种数据类型引用为全局唯一标识符GUID)。UUID因为其算法特殊性,很难发生重复,常被用于分布式系统唯一性标识符。标准的UUID类似于:
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
以及:
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
1.1.7 XML类型
XML数据类型可以被用来存储XML数据。
创建XML值语法:
XMLPARSE ( {
DOCUMENT | CONTENT } value)
从xml生成字符串命令语法:
XMLSERIALIZE ( {
DOCUMENT | CONTENT } value AS type )




