上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.3 二进制数据类型
PostgreSQL提供了二进制(bytea)数据类型用于存储二进制字符串,该数据类型占用存储空间容量为1字节或4字节加上实际的二进制字符串。
4.3.1 二进制数据类型简介
二进制数据类型可以存储不可见的字符,而字符串类型则不能存储不可见的字符。
● 二进制数据类型适用于存储程序员认为是“裸字节”的数据。
● 字符串适用于存储文本。
二进制数据类型支持两种用于输入和输出的外部格式:PostgreSQL的转义格式和十六进制格式。
4.3.2 二进制数据的十六进制格式
十六进制格式将二进制数据编码为字符串,每个字节表示两个十六进制数,最高有效位在前。十六进制字符串以“\x”开头(用以和转义格式区分)。
【举例】:
十六进制格式可以是大写,也可以是小写,在十六进制格式之间可以有空白。
十六进制格式和很多外部应用程序兼容,并且其转换速度要比转义格式更快,因此人们更愿意使用十六进制格式。
4.3.3 二进制数据的转义格式
转义格式是二进制数据类型的传统PostgreSQL格式。它采用将二进制数据表示成ASCII字符序列的方法,而将那些无法用ASCII字符表示的字节转换成特殊的转义语句。
要转义一个字节数值,通常需要将它的数值转换成对应的三位八进制数,并且加两个前导反斜线(\\)。有的字符可以加一个反斜线直接转义,如单引号和反斜线本身,如表4-11所示。
表4-11 二进制数据转义格式