PostgreSql数据库中varchar类型与sql server中字段用法有差别,PostgreSql中如果字段设置为varchar类型长度为10,则无论存字母、数字或其它符号,长度最大为10个,也就是字母和汉字占的位置是一样的。
Sql server中如设置字段类型为nvarchar类型长度为10,则存汉字最大为5个,字母为10个,字母加汉字混合时,字母和汉字占的长度一样
补充:Postgresql 数据库 varchar()字符占用多少字节
如下所示:
create table tmp1
(
name varchar(3)
);
select pg_size_pretty(pg_relation_size('tmp1'));
-- 0 bytes
insert into tmp(name) values('欧阳子');
-- 8192 bytes
8192 bytes = 8KB = 1页(数据库的最小单位)
8页 = 1区 = 64KB(记不清磁头一次取1区还是1页数据了)
pg_relation_size()函数用于查询表占用空间.
当表创建的时候, 是不占空间的, 插入数据后, 数据库至少使用1KB去保存数据, 不够会继续增加.(不包含MateData)
首先postgresql中varchar()保存的是字符.
即可以插入3个中文, 也可以插入三个字母或者数字.
一般数据库都是UTF-8编码.
在UTF-8编码下, 一个中文 3个字节. 字母或者英文 1个字节.
另外
1KB = 1024B = 1024Bytes
1Bytes = 1B = 8bit
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:- PostgreSQL 实现查询表字段信息SQL脚本
- PostgreSQL 更新JSON,JSONB字段的操作
- postgresql 实现获取所有表名,字段名,字段类型,注释
- postgresql 修改字段长度的操作
- PostgreSQL 修改表字段常用命令操作
- 解决postgresql表中的字段名称包含特殊符号的问题