nchar(10)类型的类存储数据库 占用字节
发布网友
发布时间:2022-04-25 17:59
我来回答
共3个回答
热心网友
时间:2023-10-23 03:54
nchar(10) 字符串长度不够10时自动填充空格
譬如:存入字符串"123"
最终变成"123 "
这时候拿出来和"123"对比 一定是false
"123".equals("123 ") =>false
而varchar
长度不够
不会填充空格,存进去是什么,取出来就是什么
char
与varchar的区别:
char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。再者,char的存储方式是,对英文字符(ascii)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。若有疑问,再追问
热心网友
时间:2023-10-23 03:55
char
和
varchar
固定长度
(char)
或可变长度
(varchar)
字符数据类型。
nchar
根据
unicode
标准所进行的定义,用给定整数代码返回
unicode
字符。
char是固定长度的字节,varchar是可变长度的字节,nchar是unicode编码的固定字符长度。
如:12345
在char(6)存储为123456加一个空格,共6个字节。
中国
在char(6)存储为中国加两个空格,共6个字节。
12345
在varchar(6)存储为123456,共5个字节。
中国
在varchar(6)存储为中国,共4个字节。
nchar(6)对汉字和半角字符处理时一样的,即可以存储6个汉字,也可以存储6个字母!
热心网友
时间:2023-10-23 03:55
这是电大的考试题吧?我填写的是6个字符。
nchar占用空间比char大。比如char格式下一个字母只占用一个字节,汉字占用两个,nchar所有字符都占用两个字节。