1.概述
弄好pgsql的环境后,我大概玩了一下,并且数了下里面的数据类型,发现至少有一百多种,WTF?
PostgreSQL 有着丰富的内置数据类型可用。用户还可以使用 CREATE TYPE 命令增加新的数据类型(摘抄官网)。
PostgreSQL文档地址
查看官方文档后发现很多都是因历史原因 PostgreSQL 在内部使用的名字。另外,还有一些内部使用的或者废弃的类型也可以使用,但没有再这类列出,在使用pgAdmin创建表的时候可以看到。
普通数据类型
| 名字 | 别名 | 描述 |
|---|---|---|
| bigint | int8 | 有符号 8 字节整数 |
| bigserial | serial8 | 自增 8 字节整数 |
| bit [ (n) ] | 定长位串 | |
| bit varying [ (n) ] | varbit | 变长位串 |
| boolean | bool | 逻辑布尔值(真/假) |
| box | 平面中的矩形 | |
| bytea | 二进制数据("字节数组") | |
| character varying [ (n) ] | varchar [ (n) ] | 变长字符串 |
| character [ (n) ] | char [ (n) ] | 定长字符串 |
| cidr | IPv4 或 IPv6 网络地址 | |
| circle | 平面中的圆 | |
| date | 日历日期(年, 月, 日) | |
| double precision | float8 | 双精度浮点数字 |
| inet | IPv4 或 IPv6 网络地址 | |
| integer | int, int4 | 有符号 4 字节整数 |
| interval [ (p) ] | 时间间隔 | |
| line | 平面中的无限长直线 | |
| lseg | 平面中的线段 | |
| macaddr | MAC 地址 | |
| money | 货币金额 | |
| numeric [ (p, s) ] | decimal [ (p, s) ] | 可选精度的准确数字 |
| path | 平面中的几何路径 | |
| point | 平面中的点 | |
| polygon | 平面中的封闭几何路径 | |
| real | float4 | 单精度浮点数 |
| smallint | int2 | 有符号 2 字节整数 |
| serial | serial4 | 自增 4 字节整数 |
| text | 变长字符串 | |
| time [ (p) ] [ without time zone ] | 一天中的时间 | |
| time [ (p) ] with time zone | timetz | 一天里的时间,包括时区 |
| timestamp [ (p) ] [ without time zone ] | 日期和时间 | |
| timestamp [ (p) ] with time zone | timestamptz | 日期和时间,包括时区 |
数值类型
| 名字 | 存储空间 | 描述 | 范围 |
|---|---|---|---|
| smallint | 2 字节 | 小范围整数 | -32768 到 +32767 |
| integer | 4 字节 | 常用的整数 | -2147483648 到 +2147483647 |
| bigint | 8 字节 | 大范围的整数 | -9223372036854775808 到 9223372036854775807 |
| decimal | 变长 | 用户声明精度,精确 | 无限制 |
| numeric | 变长 | 用户声明精度,精确 | 无限制 |
| real | 4 字节 | 变精度,不精确 | 6 位十进制数字精度 |
| double precision | 8 字节 | 变精度,不精确 | 15 位十进制数字精度 |
| serial | 4 字节 | 自增整数 | 1 到 2147483647 |
| bigserial | 8 字节 | 大范围的自增整数 | 1 到 9223372036854775807 |
字符类型
| 名字 | 描述 |
|---|---|
| character varying(n), varchar(n) | 变长,有长度限制 |
| character(n), char(n) | 定长,不足补空白 |
| text | 变长,无长度限制 |
特殊字符类型
| 名字 | 存储空间 | 描述 |
|---|---|---|
| "char" | 1 字节 | 单字节内部类型 |
| name | 64 字节 | 用于对象名的内部类型 |
二进制数据类型
| 名字 | 存储空间 | 描述 |
|---|---|---|
| bytea | 4 字节加上实际的二进制字符串 | 变长的二进制字符串 |
bytea 文本逃逸八进制
| 十进制数值 | 描述 | 输入逃逸形式 | 例子 | 输出形式 |
|---|---|---|---|---|
| 0 | 八进制的零 | E'\\000' | SELECT E'\\000'::bytea; | \000 |
| 39 | 单引号 | '''' 或 E'\\047' | SELECT E'\'' |
这篇博客探讨了PostgreSQL中丰富的数据类型,尤其是几何类型,包括点、线段、矩形、路径、多边形和圆,并介绍了位串类型。此外,还讨论了数组、复合类型、对象标识符和伪类型。文章强调了PostgreSQL的灵活性,如自定义数据类型和丰富的内置类型,例如对XML文档的支持。
最低0.47元/天 解锁文章

1783

被折叠的 条评论
为什么被折叠?



