VARCHAR2(20)可以存储多少个数字

如题所述

20个数字。

4.0版本以下,varchar(20),指的是20字节。如果存放数字时,只能存20个(每个数字1字节)。如果存放UTF8汉字时,只能存33个(每个汉字3字节) 。

5.0版本以上,varchar(20),指的是20字符。无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个, VARCHAR(M)类型的列最多可以占用65535个字节。

如果插入字符超过21个,则报错  [Err] 1406 - Data too long for column'string' at row 1

可见MySQL的varchar(n)可以存储的中文字符数和英文字符数是一致的,都是n个字符。

扩展资料:

示例:以5.0以上版本为例。

新建表:

CREATE TABLE varchar_test (`id` int(11) NOT NULL ,`string` varchar(20)) ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

插入数据:

INSERT INTO varchar_test (id, string) VALUES (1, '一二三四五六七八九十');

INSERT INTO varchar_test (id, string) VALUES (2, '一二三四五六七八九十一二三四五六七八九十');

INSERT INTO varchar_test (id, string) VALUES (3, '12345678901234567890');

测试结果:

1:一二三四五六七八九十

2:一二三四五六七八九十一二三四五六七八九十

3:12345678901234567890

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-21

varchar2是oracle中独有的类型,可以存储0-20个数字(英文写法),如果是中文数字的话只能存储10个。

创建测试表:

create table test
(id int,
name varchar2(20));

执行这句,这里是21个数字:

insert into test values (1,'123456789012345678901');

测试一下中文数字:

insert into test values (1,'一二三四五六七八九十一');

结果是雷同的:

所以,varchar2(20)只能存20个数字,或十个中文。

第2个回答  2012-09-05
0-20位数字,,注意是位数追问

不是很懂,能举个例子么??谢谢

追答

12是指2位,个位和十位组成,依次类推

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网