PostgreSQL是一种功能强大的开源关系型数据库管理系统,具有广泛的数据类型支持。在本教程中,我们将介绍PostgreSQL中可用的各种数据类型,包括数值、字符串、几何、时间、日期、布尔、货币和json类型。
PostgreSQL支持各种数值类型,包括整数、小数和浮点数。下面是一些常见的数值类型及其有效值范围。
PostgreSQL支持以下整数类型:
smallint
:2字节,范围为-32768到+32767integer
:4字节,范围为-2147483648到+2147483647bigint
: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位,最大标度为16383numeric
:用户指定的精度和标度,最大精度为131072位,最大标度为16383real
: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支持以下固定长度字符串类型:
char(n)
:长度为n的固定长度字符串,n的范围是1到10485760character(n)
:长度为n的固定长度字符串,n的范围是1到10485760这些类型可以存储固定长度的字符串,例如:
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到10485760character varying(n)
:长度为n的可变长度字符串,n的范围是1到10485760text
:可变长度字符串,最大长度为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:00time 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:59timestamp 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:00time 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:59timestamp 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');
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。
全部0条评论
快来发表一下你的评论吧 !