现在的位置: 首页 > 综合 > 正文

PostgreSQL数据类型

2013年09月01日 ⁄ 综合 ⁄ 共 1697字 ⁄ 字号 评论关闭

 

第六章  数据类型

6.1概述

 

    PostgreSQL 提供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型被分为四种,分别是基本数据类型、复合数据类型、域和伪类型。

 

    基本数据类型是数据库内置的数据类型,包括integercharvarchar等数据类型。表6-1列出了PostgreSQL提供的所有基本数据类型。复合数据类型是用户自己定义的,使用CREATE TYPE命令就能创建一个复合数据类型。域是一种特殊的基本数据类型,它由基本数据类型加上一个约束条件构成,使用CREATE DOMAIN命令就能创建一个域,关于域的详细信息,参考《SQL命令手册》对CREATE DOMAIN命令的解释。伪类型是具有特殊作用的数据类型,这些数据类型不能作为表的列的数据类型,只能作为函数的参数或返回值的数据类型。

 

    下面的小节将会详细介绍基本数据类型、复合数据类型和伪类型。

6-1. 基本数据类型

名字

描述

bigint

有符号 8 字节整数

bigserial

自增八字节整数

bit [ (n) ]

定长位串

bit varying [ (n) ]

变长位串

boolean

逻辑布尔量 (真/假)

box

平面中的长方形

bytea

二进制数据("字节数组"

character varying [ (n) ]

变长字符串

character [ (n) ]

定长字符串

cidr

IPv4 或者 IPv6 网络地址

circle

平面中的圆

date

日历日期(年,月,日)

double precision

双精度浮点数字

inet

IPv4 或者 IPv6 网络地址

integer

四字节长有符号整数

interval [ (p) ]

时间间隔

line

平面中的无限长直线

lseg

平面中的线段

macaddr

MAC 地址

numeric [ (p, s) ]

可选精度的准确数字

path

平面中的几何路径

point

平面中的点

polygon

平面中的封闭几何路径

real

单精度浮点数

smallint

有符号两字节整数

serial

自增四字节整数

text

变长字符串

time [ (p) ] [ without time zone ]

一天里的时间

time [ (p) ] with time zone

一天里的时间,包括时区

timestamp [ (p) ] [ without time zone ]

日期和时间

timestamp [ (p) ] with time zone

日期和时间

tsquery

全文检索查询

tsvector

全文检索文档

txid_snapshot

用户级别事务ID快照

uuid

通用唯一标识符

xml

XML数据

兼容性: 下列类型是在SQL标准中定义的: bitbit varyingbooleancharcharactercharacter varyingvarchardatedouble precisionintegerintervalnumericdecimalrealsmallinttime (包括有时区和无时区的), timestamp (包括有时区和无时区的)。

    PostgreSQL的词法分析器在解析用户发出的SQL命令时,首先将其中的单词分成五类:整数、非整数数字、字符串、标识符和关键字。大部分的非数值常量首先被认为是字符串。

 

    SQL语言提供了明确地指定字符串的类型的机制。例如:

SELECT 'Origin':: text AS "label", '(0,0)':: point AS "value";

 

 label  | value

--------+-------

 Origin | (0,0)

(1 row)

 

在上面的例子中,用户指定'Origin' 的类型是text'(0,0)'的类型是 point。如果用户没有明确地指定和'Origin''(0,0)'的数据类型,系统先把它们的类型设为unknown,以后再确定它们的具体数据类型。

 

6.2 数值类型

    数值类型包括248字节的整数,48字节的浮点数和可以定义精度的十进制数。 表6-2 列出了所有数值类型。

6-2. 数值类型

名字

存储空间

描述

取值区间

smallint

2 字节

小整数

-32768 +32767

integer

4 字节

常用的整数

抱歉!评论已关闭.