PostgreSQL是一种功能强大的开源关系型数据库管理系统,具有广泛的数据类型支持。在本教程中,我们将介绍PostgreSQL中可用的各种数据类型,包括数值、字符串、几何、时间、日期、布尔、货币和json类型。
PostgreSQL支持各种数值类型,包括整数、小数和浮点数。下面是一些常见的数值类型及其有效值范围。
PostgreSQL支持以下整数类型:
这些类型可以存储整数值,例如:
CREATE TABLE example ( id serial PRIMARY KEY, small smallint, int integer, big bigint);INSERT INTO example (small, int, big) VALUES (-32768, 2147483647, 9223372036854775807);
PostgreSQL支持以下小数类型:
这些类型可以存储小数值,例如:
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支持以下可变长度字符串类型:
这些类型可以存储可变长度的字符串,例如:
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支持以下点类型:
这些类型可以存储点坐标,例如:
CREATE TABLE example ( id serial PRIMARY KEY, p point);INSERT INTO example (p) VALUES ('(1,2)');
线类型表示二维平面中的一条线,由起点和终点坐标组成。PostgreSQL支持以下线类型:
这些类型可以存储线段和矩形框,例如:
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支持以下多边形类型:
这些类型可以存储多边形,例如:
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支持以下圆类型:
这些类型可以存储圆,例如:
CREATE TABLE example ( id serial PRIMARY KEY, c circle);INSERT INTO example (c) VALUES ('<(1,2),3>');
PostgreSQL支持各种时间类型,包括日期、时间和时间戳。下面是一些常见的时间类型及其有效值范围。
日期类型表示一个日期,由年、月和日组成。PostgreSQL支持以下日期类型:
这些类型可以存储日期,例如:
CREATE TABLE example ( id serial PRIMARY KEY, d date);INSERT INTO example (d) VALUES ('2022-01-01');
时间类型表示一天中的时间,由小时、分钟和秒组成。PostgreSQL支持以下时间类型:
这些类型可以存储时间,例如:
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支持以下时间戳类型:
这些类型可以存储日期和时间,例如:
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支持以下日期类型:
这些类型可以存储日期,例如:
CREATE TABLE example ( id serial PRIMARY KEY, d date);INSERT INTO example (d) VALUES ('2022-01-01');
时间类型表示一天中的时间,由小时、分钟和秒组成。PostgreSQL支持以下时间类型:
这些类型可以存储时间,例如:
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支持以下时间戳类型:
这些类型可以存储日期和时间,例如:
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支持布尔类型,表示真或假。以下是布尔类型的有效值:
这些类型可以存储布尔值,例如:
CREATE TABLE example ( id serial PRIMARY KEY, b boolean);INSERT INTO example (b) VALUES (true);
PostgreSQL支持货币类型,表示货币值。以下是货币类型的有效值:
这些类型可以存储货币值,例如:
CREATE TABLE example ( id serial PRIMARY KEY, m money);INSERT INTO example (m) VALUES ('34.56');
PostgreSQL支持JSON类型,可以存储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。