時間:2024-03-07 21:27作者:下載吧人氣:16
一開發表里的列類型為 bytea ,可是它select出來的時候又不是想要的結果:
在postgres配置文件里修改參數
bytea_output = ‘escape’
這個默認是hex類型的,修改成escape。
查看的時候還是不是想要的結果:
select encode(data::bytea,’hex’) from data_from_target limit 1;
補充:PostgreSQL的數據類型及日常實踐筆記
數據類型是編程語言中,在其數據結構上定義的相同值類型的集合以及對該相同值集合的一組操作。而數據類型的值存儲離不開變量,因此變量的一個作用就是使用它來存儲相同值集的數據類型。數據類型決定了如何將代表這些值的集合存儲在計算機的內存中。變量一般遵循先聲明后使用的原則。而在數據庫中,變量就是字段,用字段來表示一組相同值類型的集合,其實也是先聲明后使用的原則。
PostgreSQL支持豐富的數據類型,包括一般的數據類型和非常規的數據類型。一般數據類型包括數值型,貨幣類型,字符類型,日期類型,布爾類型,枚舉類型等,非常規數據類型包括二進制數據類型,幾何類型,網絡地址類型,位串類型,文本搜索類型,UUID類型,XML類型,JSON類型,數組類型,復合類型,范圍類型,Domain類型,OID類型,pg_lsn類型和pseudo-Types類型。
1.1整型
PostgreSQL中的整型類型有小整型,整型,大整型,用 smallint,integer,和bigint表示,雖然三個都可以存儲相同的數據類型,但是它們各自的存儲大小和存儲范圍卻不相同。見下表:
名稱 | 描述 | 存儲空間 | 范圍 |
---|---|---|---|
SMALLINT | 小范圍整數,別名為INT2。 | 2字節 | -32,768 – +32,767 |
INTEGER | 常用的整數,別名為INT4。 | 4字節 | -2,147,483,648 – +2,147,483,647 |
BIGINT | 大范圍的整數,別名為INT8。 | 8字節 | -9,223,372,036,854,775,808 – 9,223,372,036,854,775,807 |
如下示例所示,在PostgreSQL中,smallint,integer,bigint 數據類型可以使用 int2,int4,int8的擴展寫法來標識。
示例:
hrdb=# –創建整型數據類型的表
hrdb=# CREATE TABLE IF NOT EXISTS tab_num(v1 smallint,v2 smallint,v3 int,v4 int,v5 bigint,v6 bigint);
CREATE TABLE
hrdb=# –表字段注釋
hrdb=# COMMENT ON COLUMN tab_num.v1 IS ‘小整型最小范圍’;
COMMENT
hrdb=# COMMENT ON COLUMN tab_num.v2 IS ‘小整型最大范圍’;
COMMENT
hrdb=# COMMENT ON COLUMN tab_num.v3 IS ‘整型最小范圍’;
COMMENT
hrdb=# COMMENT ON COLUMN tab_num.v4 IS ‘整型最大范圍’;
COMMENT
hrdb=# COMMENT ON COLUMN tab_num.v5 IS ‘大整型最小范圍’;
COMMENT
hrdb=# COMMENT ON COLUMN tab_num.v6 IS ‘大整型最大范圍’;
COMMENT
hrdb=# –描述數據類型
hrdb=# d+ tab_num
Table “public.tab_num”
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
——–+———-+———–+———-+———+———+————–+—————-
v1 | smallint | | | | plain | | 小整型最小范圍
v2 | smallint | | | | plain | | 小整型最大范圍
v3 | integer | | | | plain | | 整型最小范圍
v4 | integer | | | | plain | | 整型最大范圍
v5 | bigint | | | | plain | | 大整型最小范圍
v6 | bigint | | | | plain | | 大整型最大范圍
hrdb=# –插入不同整型的范圍數值
hrdb=# INSERT INTO tab_num
hrdb-# VALUES (-32768,
hrdb(# 32767,
hrdb(# -2147483648,
hrdb(# 2147483647,
hrdb(# -9223372036854775808,
hrdb(# 9223372036854775807);
INSERT 0 1
hrdb=# –查詢結果
hrdb=# SELECT * FROM tab_num;
v1 | v2 | v3 | v4 | v5 | v6
——–+——-+————-+————+———————-+———————
-32768 | 32767 | -2147483648 | 2147483647 | -9223372036854775808 | 9223372036854775807
(1 row)
網友評論