软件下载吧文章资讯

分类分类

Postgres bytea类型 转换及查看操作

2024-03-07 21:27作者:下载吧

一开发表里的列类型为 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)

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消