PostgreSQL数据类型

本文详细介绍了 PostgreSQL 中的各种数据类型,包括整数类型、浮点数类型、精确数值类型、字符类型、日期时间类型等,并解释了每种类型的用途、存储空间需求及适用范围。

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

PostgreSQL存储空间描述范围备注
smallint2字节小范围整数-32768-+32768类型smallint、integer和bigint存储各种范围的全部是数字的数,也就是没有小数部分的数字。试图存储超出范围以外的数值将导致一个 错误。常用的类型是integer,因为它提供了在范围、存储空间和性能之间的最佳平衡。一般只有在磁盘空间紧张的时候才使用smallint。而只有在 integer的范围不够的时候才使用bigint,因为前者(integer)绝对快得多。 
integer4 字节常用的整数-2147483648 到 +2147483647
bigint8 字节大范围的整数-9223372036854775808 到 9223372036854775807
decimal变长用户声明精度,精确无限制类型numeric可以存储最多1000位精度的数字并且准确地进行计算。因此非常适合用于货币金额和其它要求计算准确的数量。不过,numeric类型上的算术运算比整数类型或者浮点数类型要慢很多。
    numeric字段的最大精度和最大比例都是可以配置的。要声明一个类型为numeric的字段,你可以用下面的语法:
    NUMERIC(precision,scale)
    比如数字23.5141的精度为6,而刻度为4。
    在目前的PostgreSQL版本中,decimal和numeric是等效的。
numeric变长用户声明精度,精确无限制
real4 字节变精度,不精确6 位十进制数字精度数据类型real和double是不准确的、牺牲精度的数字类型。不准确意味着一些数值不能准确地转换成内部格式并且是以近似的形式存储的,因此存储后再把数据打印出来可能显示一些缺失。
double8 字节变精度,不精确15 位十进制数字精度
serial4 字节自增整数1 到 +2147483647serial和bigserial类型不是真正的类型,只是为在表中设置唯一标识做的概念上的便利。
CREATE TABLE tablename (
        colname SERIAL
    );
    等价于
    CREATE SEQUENCE tablename_colname_seq;
    CREATE TABLE tablename(
        colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL
    );
    这样,我们就创建了一个整数字段并且把它的缺省数值安排为从一个序列发生器取值。应用了一个NOT NULL约束以确保空值不会被插入。在大多数情况下你可能还希望附加一个UNIQUE或者PRIMARY KEY约束避免意外地插入重复的数值,但这个不是自动发生的。因此,如果你希望一个序列字段有一个唯一约束或者一个主键,那么你现在必须声明,就像其它数 据类型一样。
    还需要另外说明的是,一个serial类型创建的序列在其所属字段被删除时,该序列也将被自动删除,但是其它情况下是不会被删除的。因此,如果你想用同一个序列发生器同时给几个字段提供数据,那么就应该以独立对象的方式创建该序列发生器。 
bigserial8 字节大范围的自增整数1 到 9223372036854775807
varchar(n)变长,有长度限制
char(n)定长,不足补空白
text变长,无长度限制
timestamp[无时区]8字节包括日期和时间4713BC-5874897AD   1毫秒/14位任何日期或者时间的文本输入均需要由单引号包围,就象一个文本字符串一样。
timestamp[含时区]8字节日期和时间,带时区
interval12字节时间间隔
date4字节只用于日期
time(无时区)8字节只用于一日内时间任何日期或者时间的文本输入均需要由单引号包围,就象一个文本字符串一样。
uuiduniversally unique identifier:唯一标识类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值