PostgreSQL是一种功能强大的开源关系型数据库管理系统,具有广泛的数据类型支持。在本教程中,我们将介绍PostgreSQL中可用的各种数据类型,包括数值、字符串、几何、时间、日期、布尔、货币和json类型。
数值类型
PostgreSQL支持各种数值类型,包括整数、小数和浮点数。下面是一些常见的数值类型及其有效值范围。
整数类型
PostgreSQL支持以下整数类型:
- •
smallint
:2字节,范围为-32768到+32767 - •
integer
:4字节,范围为-2147483648到+2147483647 - •
bigint
:8字节,范围为-9223372036854775808到+9223372036854775807
这些类型可以存储整数值,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
small smallint,
int integer,
big bigint
);
INSERT INTO example (small, int, big) VALUES (-32768, 2147483647, 9223372036854775807);
小数类型
PostgreSQL支持以下小数类型:
- •
decimal
:用户指定的精度和标度,最大精度为131072位,最大标度为16383 - •
numeric
:用户指定的精度和标度,最大精度为131072位,最大标度为16383 - •
real
:4字节,单精度浮点数 - •
double precision
:8字节,双精度浮点数
这些类型可以存储小数值,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
dec decimal(10,2),
num numeric(10,2),
r real,
d double precision
);
INSERT INTO example (dec, num, r, d) VALUES (1234.56, 1234.56, 1234.56, 1234.56);
字符串类型
PostgreSQL支持各种字符串类型,包括固定长度和可变长度字符串。下面是一些常见的字符串类型及其有效值范围。
固定长度字符串类型
PostgreSQL支持以下固定长度字符串类型:
这些类型可以存储固定长度的字符串,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
c char(10),
ch character(10)
);
INSERT INTO example (c, ch) VALUES ('hello', 'world');
可变长度字符串类型
PostgreSQL支持以下可变长度字符串类型:
- •
varchar(n)
:长度为n的可变长度字符串,n的范围是1到10485760 - •
character varying(n)
:长度为n的可变长度字符串,n的范围是1到10485760 - •
text
:可变长度字符串,最大长度为10485760
这些类型可以存储可变长度的字符串,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
v varchar(10),
cv character varying(10),
t text
);
INSERT INTO example (v, cv, t) VALUES ('hello', 'world', 'hello world');
几何类型
PostgreSQL支持各种几何类型,包括点、线、多边形和圆。下面是一些常见的几何类型及其有效值范围。
点类型
点类型表示二维平面中的一个点,由x和y坐标组成。PostgreSQL支持以下点类型:
- •
point
:由x和y坐标组成的点
这些类型可以存储点坐标,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
p point
);
INSERT INTO example (p) VALUES ('(1,2)');
线类型
线类型表示二维平面中的一条线,由起点和终点坐标组成。PostgreSQL支持以下线类型:
- •
line
:由起点和终点坐标组成的线 - •
lseg
:由起点和终点坐标组成的线段 - •
box
:由左下和右上角坐标组成的矩形框
这些类型可以存储线段和矩形框,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
l line,
ls lseg,
b box
);
INSERT INTO example (l, ls, b) VALUES ('[(1,2),(3,4)]', '[(1,2),(3,4)]', '((1,2),(3,4))');
多边形类型
多边形类型表示二维平面中的一个多边形,由一组点坐标组成。PostgreSQL支持以下多边形类型:
- •
path
:由一组点坐标组成的多边形 - •
polygon
:由一组点坐标组成的封闭多边形
这些类型可以存储多边形,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
pa path,
po polygon
);
INSERT INTO example (pa, po) VALUES ('((1,2),(3,4),(5,6))', '((1,2),(3,4),(5,6))');
圆类型
圆类型表示二维平面中的一个圆,由圆心坐标和半径组成。PostgreSQL支持以下圆类型:
- •
circle
:由圆心坐标和半径组成的圆
这些类型可以存储圆,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
c circle
);
INSERT INTO example (c) VALUES ('< (1,2),3 >');
时间类型
PostgreSQL支持各种时间类型,包括日期、时间和时间戳。下面是一些常见的时间类型及其有效值范围。
日期类型
日期类型表示一个日期,由年、月和日组成。PostgreSQL支持以下日期类型:
- •
date
:日期类型,范围为0001-01-01到5874897-12-31
这些类型可以存储日期,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
d date
);
INSERT INTO example (d) VALUES ('2022-01-01');
时间类型
时间类型表示一天中的时间,由小时、分钟和秒组成。PostgreSQL支持以下时间类型:
- •
time
:时间类型,范围为00:00:00到24:00:00 - •
time with time zone
:带时区的时间类型,范围为00:00:00到24:00:00
这些类型可以存储时间,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
t time,
tz time with time zone
);
INSERT INTO example (t, tz) VALUES ('12:34:56', '12:34:56+08');
时间戳类型
时间戳类型表示日期和时间的组合,由年、月、日、小时、分钟和秒组成。PostgreSQL支持以下时间戳类型:
- •
timestamp
:时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59 - •
timestamp with time zone
:带时区的时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59
这些类型可以存储日期和时间,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
ts timestamp,
tsz timestamp with time zone
);
INSERT INTO example (ts, tsz) VALUES ('2022-01-01 12:34:56', '2022-01-01 12:34:56+08');
日期类型
PostgreSQL支持各种日期类型,包括日期、时间和时间戳。下面是一些常见的日期类型及其有效值范围。
日期类型
日期类型表示一个日期,由年、月和日组成。PostgreSQL支持以下日期类型:
- •
date
:日期类型,范围为0001-01-01到5874897-12-31
这些类型可以存储日期,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
d date
);
INSERT INTO example (d) VALUES ('2022-01-01');
时间类型
时间类型表示一天中的时间,由小时、分钟和秒组成。PostgreSQL支持以下时间类型:
- •
time
:时间类型,范围为00:00:00到24:00:00 - •
time with time zone
:带时区的时间类型,范围为00:00:00到24:00:00
这些类型可以存储时间,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
t time,
tz time with time zone
);
INSERT INTO example (t, tz) VALUES ('12:34:56', '12:34:56+08');
时间戳类型
时间戳类型表示日期和时间的组合,由年、月、日、小时、分钟和秒组成。PostgreSQL支持以下时间戳类型:
- •
timestamp
:时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59 - •
timestamp with time zone
:带时区的时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59
这些类型可以存储日期和时间,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
ts timestamp,
tsz timestamp with time zone
);
INSERT INTO example (ts, tsz) VALUES ('2022-01-01 12:34:56', '2022-01-01 12:34:56+08');
布尔类型
PostgreSQL支持布尔类型,表示真或假。以下是布尔类型的有效值:
- •
true
:真 - •
false
:假
这些类型可以存储布尔值,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
b boolean
);
INSERT INTO example (b) VALUES (true);
货币类型
PostgreSQL支持货币类型,表示货币值。以下是货币类型的有效值:
- •
money
:货币类型,范围为-92233720368547758.08到+92233720368547758.07
这些类型可以存储货币值,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
m money
);
INSERT INTO example (m) VALUES ('$1234.56');
JSON类型
PostgreSQL支持JSON类型,可以存储JSON格式的数据。以下是JSON类型的有效值:
- •
json
:JSON类型,存储JSON格式的数据 - •
jsonb
:二进制JSON类型,存储JSON格式的数据
这些类型可以存储JSON格式的数据,例如:
CREATE TABLE example (
id serial PRIMARY KEY,
j json,
jb jsonb
);
INSERT INTO example (j, jb) VALUES ('{"name": "John", "age": 30}', '{"name": "John", "age": 30}');
总结
本教程介绍了PostgreSQL中可用的各种数据类型,包括数值、字符串、几何、时间、日期、布尔、货币和json类型。熟悉这些数据类型及其有效值范围可以帮助您更好地使用PostgreSQL。
-
存储
+关注
关注
13文章
4296浏览量
85796 -
数值
+关注
关注
0文章
80浏览量
14359 -
数据类型
+关注
关注
0文章
236浏览量
13616 -
postgresql
+关注
关注
0文章
21浏览量
211
发布评论请先 登录
相关推荐
评论