8c SQL手册 三

本文详细介绍了数据库中常见的数据类型,包括枚举类型,如创建和存储方式;几何类型,如点、线、矩形等及其表示;网络地址类型,如IPv4、IPv6和MAC地址的存储;位串类型,用于存储位掩码;文本搜索类型,如tsvector和tsquery,支持全文搜索;以及UUID类型,用于存储全局唯一标识符。此外,还提到了XML数据类型在存储XML数据时的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      1. 枚举类型

枚举(enum)类型是一个静态、有序的集合构成的数据类型。可以使用CREATE TYPE命令创建,例如:

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

CREATE TYPE

一个枚举值在磁盘上占4字节,其文本标签的长度受限于NAMEDATALEN设置(最多63字节)。枚举标签大小写敏感,空白敏感。

      1. 几何类型

几何数据类型表示二维的空间物体,类型如下:

名字

存储尺寸

表示

描述

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. 网络地址类型

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 和 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. 文本搜索类型

GBase 8c提供两种数据类型支持全文搜索:tsvector类型和tsquery类型。tsvector类型表示一个为文本搜索优化的形式下的文档,tsquery类型表示一个文本查询。详见全文检索

      1. UUID类型

数据类型uuid存储由RFC 4122、ISO/IEC 9834-8:2005以及相关标准定义的通用唯一标识符(UUID)(某些系统将这种数据类型引用为全局唯一标识符GUID)。UUID因为其算法特殊性,很难发生重复,常被用于分布式系统唯一性标识符。标准的UUID类似于:

a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

以及:

A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11

      1. XML类型

XML数据类型可以被用来存储XML数据。

创建XML值语法:

XMLPARSE ( { DOCUMENT | CONTENT } value)

从xml生成字符串命令语法:

XMLSERIALIZE ( { DOCUMENT | CONTENT } value AS type )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值