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瀏覽量
85798 -
數值
+關注
關注
0文章
80瀏覽量
14359 -
數據類型
+關注
關注
0文章
236瀏覽量
13618 -
postgresql
+關注
關注
0文章
21瀏覽量
211
發布評論請先 登錄
相關推薦
評論