一、数据类型
1、数值类型
数值类型由 2 字节、4 字节或 8 字节的整数以及 4 字节或 8 字节的浮点数和可选精度的十进制数组成。
类型名称 | Navicat中显示的名称 | 描述 |
---|---|---|
smallint | int2 | 定长,2字节,即二进制16位,十进制-32768 到 +32767 |
integer | int4 | 定长,4字节,即二进制32位,十进制-2147483648 到 +2147483647 |
bigint | int8 | 定长,8字节,即二进制64位,十进制-9223372036854775808 到 +9223372036854775807 |
numeric | numeric | 变长,精确,小数点前 131072 位;小数点后 16383 位 |
decimal | decimal | 变长,精确,小数点前 131072 位;小数点后 16383 位 |
real | float4 | 变长,不精确,4字节,6 位十进制数字精度 |
double precision | float8 | 变长,不精确,8字节,15 位十进制数字精度 |
smallserial | int2 | 自增整数,Navicat中显示int2,同时默认规则变为:nextval('表名_id_seq'::regclass) |
serial | int4 | 自增整数,Navicat中显示int4,同时默认规则变为:nextval('表名_id_seq'::regclass) |
bigserial | int8 | 自增整数,Navicat中显示int8,同时默认规则变为:nextval('表名_id_seq'::regclass) |
2、字符类型
名字 | 描述 |
---|---|
character varying(n), varchar(n) | 变长,有长度限制,n表示字符长度 |
character(n), char(n) | 定长,不足补空白,n表示字符长度 |
text | 变长,无长度限制,n表示字符长度 |
varchar不指定长度,可以存储最大长度10485760(1GB)的字符串,而char不指定长度,默认则为1。
text和varchar几乎无性能差别,区别仅在于存储结构的不同。
对于char的使用,应该在确定字符串长度的情况下使用,否则应该选择varchar或者text。
事实上,character(n)通常是这三个中最慢的,因为额外存储成本。在大多数情况下,应该使用text 或character varying。
注释:
定长:长度固定,用户不可以指定长度。
变长:长度不固定,用户可以指定长度。
bit:即位,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位。一个二进制数据0或1,是1bit。
Byte:即字节,字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定1Byte=8bit。
字符:一个汉字、一个数字、一个字母都称为一个字符。
1,ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
2,UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。
3,Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节。
字:计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。
字长:指字的位数,即计算机CPU一次操作处理实际位数的多少。计算机的字长越大,其性能越优越。