BIGSERIAL
SERIAL8
存儲自動遞增的惟一整數,最多 8 字節。
BIT
固定長度的位串。
BIT VARYING(n)
VARBIT(n)
可變長度的位串,長度為 n 位。
BOOLEAN
存儲邏輯布爾值(true/false/unknown),可以是 TRUE、t、true、y、yes 和 1,或者 FALSE、f、false、n、no 和 0。
BYTEA
用於存儲大型二進制對象(比如圖形)的原始二進制數據。使用的存儲空間是 4 字節加上二進制串的長度。
CHAR(n)
CHARACTER(n)
包含固定長度的字符串,用空格填充到長度 n。
DATE
用 4 字節的存儲空間存儲日歷日期(年、月、日)。
DATETIME
存儲日歷日期和天內的時間。
DECIMAL(p,s)
NUMERIC(p,s)
存儲精確的數值,精度(p)和刻度(s)為 0 或更高。
FLOAT4
REAL
存儲浮點數,精度為 8 或更低和 6 個小數位。
FLOAT8
DOUBLE PRECISION
存儲浮點數,精度為 16 或更低和 15 個小數位。
SMALLINT
存儲有符號或無符號 2 字節整數。
INTEGER
存儲有符號或無符號 4 字節整數。
INT8
BIGINT
存儲有符號或無符號 8 字節整數。
SERIAL
SERIAL4
存儲自動遞增的惟一整數值,最多 4 字節存儲空間。
TEXT
存儲長度可變的大型字符串數據,最多 1 GB。PostgreSQL 自動壓縮 TEXT 字符串。
TIME (WITHOUT TIME ZONE |
WITH TIME ZONE)
存儲天內的時間。如果不存儲數據庫服務器的時區,就使用 8 字節的存儲空間;如果存儲時區,就使用 12 字節。
TIMESTAMP (WITHOUT TIME ZONE |
WITH TIME ZONE)
存儲日期和時間。可以存儲或不存儲數據庫服務器的時區,使用 8 字節存儲空間。
VARCHAR(n)
CHARACTER VARYING(n)
CHARACTER VARYING
存儲可變長度的字符串,最大長度為 n。不存儲末尾的空格。
SERIAL8
存儲自動遞增的惟一整數,最多 8 字節。
BIT
固定長度的位串。
BIT VARYING(n)
VARBIT(n)
可變長度的位串,長度為 n 位。
BOOLEAN
存儲邏輯布爾值(true/false/unknown),可以是 TRUE、t、true、y、yes 和 1,或者 FALSE、f、false、n、no 和 0。
BYTEA
用於存儲大型二進制對象(比如圖形)的原始二進制數據。使用的存儲空間是 4 字節加上二進制串的長度。
CHAR(n)
CHARACTER(n)
包含固定長度的字符串,用空格填充到長度 n。
DATE
用 4 字節的存儲空間存儲日歷日期(年、月、日)。
DATETIME
存儲日歷日期和天內的時間。
DECIMAL(p,s)
NUMERIC(p,s)
存儲精確的數值,精度(p)和刻度(s)為 0 或更高。
FLOAT4
REAL
存儲浮點數,精度為 8 或更低和 6 個小數位。
FLOAT8
DOUBLE PRECISION
存儲浮點數,精度為 16 或更低和 15 個小數位。
SMALLINT
存儲有符號或無符號 2 字節整數。
INTEGER
存儲有符號或無符號 4 字節整數。
INT8
BIGINT
存儲有符號或無符號 8 字節整數。
SERIAL
SERIAL4
存儲自動遞增的惟一整數值,最多 4 字節存儲空間。
TEXT
存儲長度可變的大型字符串數據,最多 1 GB。PostgreSQL 自動壓縮 TEXT 字符串。
TIME (WITHOUT TIME ZONE |
WITH TIME ZONE)
存儲天內的時間。如果不存儲數據庫服務器的時區,就使用 8 字節的存儲空間;如果存儲時區,就使用 12 字節。
TIMESTAMP (WITHOUT TIME ZONE |
WITH TIME ZONE)
存儲日期和時間。可以存儲或不存儲數據庫服務器的時區,使用 8 字節存儲空間。
VARCHAR(n)
CHARACTER VARYING(n)
CHARACTER VARYING
存儲可變長度的字符串,最大長度為 n。不存儲末尾的空格。
類似Oracle ,PostgreSQL也有強大的類型轉換函數, 下面僅舉兩個類型轉換例子。
--1 例子
postgres=# select 1/4;
?column?
----------
0
(1 row)
在PG里如果想做除法並想保留小數,用上面的方法卻行不通,因為"/" 運算結果為取整,並
且會截掉小數部分。
--2 類型轉換
postgres=# select round(1::numeric/4::numeric,2);
round
-------
0.25
(1 row)
備注:類型轉換后,就能保留小數部分了。
--3 也可以通過 cast 函數進行轉換
postgres=# select round( cast ( 1 as numeric )/ cast( 4 as numeric),2);
round
-------
0.25
(1 row)
--4 關於 cast 函數的用法
postgres=# SELECT substr(CAST (1234 AS text), 3,1);
substr
--------
3
(1 row)
--5 附: PostgreSQL 類型轉換函數
| Function | Return Type | Description | Example |
|---|---|---|---|
|
) |
text |
convert time stamp to string | to_char(current_timestamp, 'HH12:MI:SS') |
to_char ( interval, text ) |
text |
convert interval to string | to_char(interval '15h 2m 12s', 'HH24:MI:SS') |
to_char ( int, text ) |
text |
convert integer to string | to_char(125, '999') |
|
precision |
text |
convert real/double precision to string | to_char(125.8::real, '999D9') |
to_char ( numeric, text ) |
text |
convert numeric to string | to_char(-125.8, '999D99S') |
to_date (text, text ) |
date |
convert string to date | to_date('05 Dec 2000', 'DD Mon YYYY') |
to_number ( text, text ) |
numeric |
convert string to numeric | to_number('12,454.8-', '99G999D9S') |
to_timestamp ( text, text ) |
timestamp with time zone |
convert string to time stamp | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
to_timestamp ( double precision ) |
timestamp with time zone |
convert Unix epoch to time stamp | to_timestamp(1284352323) |
| 1 | varchar | java.lang.String | 12 | |
| 2 | bpchar | java.lang.String | 1 | |
| 3 | cidr | java.lang.Object | 1,111 | |
| 4 | inet | java.lang.Object | 1,111 | |
| 5 | macaddr | java.lang.Object | 1,111 | |
| 6 | text | java.lang.String | 12 | |
| 7 | int8 | java.lang.Long | -5 | |
| 8 | int8 | java.lang.Long | -5 | |
| 9 | box | java.lang.Object | 1,111 | |
| 10 | circle | java.lang.Object | 1,111 | |
| 11 | float8 | java.lang.Double | 8 | |
| 12 | int4 | java.lang.Integer | 4 | |
| 13 | interval | java.lang.Object | 1,111 | |
| 14 | line | java.lang.Object | 1,111 | |
| 15 | lseg | java.lang.Object | 1,111 | |
| 16 | money | java.lang.Double | 8 | |
| 17 | numeric | java.math.BigDecimal | 2 | |
| 18 | path | java.lang.Object | 1,111 | |
| 19 | point | java.lang.Object | 1,111 | |
| 20 | polygon | java.lang.Object | 1,111 | |
| 21 | float4 | java.lang.Float | 7 | |
| 22 | int2 | java.lang.Integer | 5 | |
| 23 | int4 | java.lang.Integer | 4 | |
| 24 | time | java.sql.Time | 92 | |
| 25 | timestamp | java.sql.Timestamp | 93 | |
| 26 | bit | java.lang.Boolean | -7 | |
| 27 | varbit | java.lang.Object | 1,111 | |
| 28 | bool | java.lang.Boolean | -7 | |
| 29 | bytea | [B | -2 |
