postgresql数据库字节流类型详解

bytea类型可以存储二进制字符串,是Postgresql数据库中保存字节流的类型。
bytea的存储空间是1或4字节+实际的二进制字符串,可见bytea是变长的二进制字符串。
二进制字符串是一个字节数值的序列。SQL 标准定义了一种不同的二进制字符串类型,叫做 BLOB 或者 BINARY LARGE OBJECT,其输入格式和 bytea 不同,但是提供的函数和操作符大多一样。bytea类型数据的具体含义由应用程序自己决定,数据库也提供了和普通文本字符串的处理方式类似的方法来对bytea类型数据进行输入和输出。可以使用字符串常量的语法来输入bytea类型的数据,对特殊的字符如单引号、反斜杠、不可打印的字符以及0,要使用转义表示法,具体用法下表所示:

十进制数值 描述 输入格式 例子 输出格式
0                           零              '//000'                        select '//000'::bytea;            /000
39  单引号       '/'' 或者 '//047'          select '/''::bytea;      '
92   反斜杠        '////' 或者 '//134'       select '////'::bytea;                     //
127 到 255       不可打印的字符   '//xxx' (八进制) select '//001'::bytea;             /001

bytea类型的数据在输出时也要进行转义处理,反斜杠用两个反斜杠表示,不可打印的字符用反斜杠加上表示它们的值的三个八进制位表示,可打印的字符用它们自身表示。如下表所示:

十进制数值                  描述                转义以后的输出个数   例子                       输出结果
92  反斜杠  //        select '//134'::bytea;         //
0 到 31 ,127 到255  不可打印八进制符  /xxx(octal value)      select '//001'::bytea;        /001
32 到 126              可打印的八进制字符        客户端字符集表现式   select '//175'::bytea;        
select'//165//166'::bytea   
   } 

   uv







你可能感兴趣的:(web开发常见问题)