mysql中整数数据类型分析
2012-10-03 15:35
555 查看
尊重原创:http://blog.csdn.net/chen861201
此处我们给int char没有给出他们的宽度,系统默认会给它分配一个宽度。
M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关
我们来进行下试验
那么我们可以看到这里,系统会自动为我们的数据类型给出一个默认的宽带值,这里这个宽度值其实只有在zerofill的作用下才能起到一定的作用。在下面我们看下其他的默认值是多少,
这里我们再来看下当插入值大于数据类型的取值范围的情况:
这里的tinyint是占有一个字节,就是可以表示从0-255这个范围的整数,可是这里为什么直到127呢,原因是我们没有给他设定无符号类型的。
此处我们给int char没有给出他们的宽度,系统默认会给它分配一个宽度。
M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关
我们来进行下试验
mysql(root@localhost:test 03:19:00)>create table c ( -> id int not null, -> name char not null); Query OK, 0 rows affected (0.25 sec) mysql(root@localhost:test 03:19:34)>desc c; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | NO | | NULL | | | name | char(1) | NO | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
那么我们可以看到这里,系统会自动为我们的数据类型给出一个默认的宽带值,这里这个宽度值其实只有在zerofill的作用下才能起到一定的作用。在下面我们看下其他的默认值是多少,
mysql(root@localhost:test 03:34:53)>alter table c modify id smallint; Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql(root@localhost:test 03:39:39)>desc c; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | smallint(6) | YES | | NULL | | | name | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql(root@localhost:test 03:39:44)>alter table c modify id bigint; Query OK, 4 rows affected (0.23 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql(root@localhost:test 03:40:12)>desc c; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | bigint(20) | YES | | NULL | | | name | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.01 sec)
这里我们再来看下当插入值大于数据类型的取值范围的情况:
mysql(root@localhost:test 03:25:58)>insert into c values(300,'chen'); Query OK, 1 row affected, 2 warnings (0.08 sec) mysql(root@localhost:test 03:26:20)>show warnings; +---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1264 | Out of range value for column 'id' at row 1 | | Warning | 1265 | Data truncated for column 'name' at row 1 | +---------+------+---------------------------------------------+ 2 rows in set (0.00 sec) mysql(root@localhost:test 03:26:27)>select * from c; +------+------+ | id | name | +------+------+ | 127 | c | +------+------+ 1 row in set (0.02 sec) mysql(root@localhost:test 03:26:40)>insert into c values(320,'chen'); Query OK, 1 row affected, 2 warnings (0.05 sec) mysql(root@localhost:test 03:26:53)>select * from c; +------+------+ | id | name | +------+------+ | 127 | c | | 127 | c | +------+------+ 2 rows in set (0.00 sec)
这里的tinyint是占有一个字节,就是可以表示从0-255这个范围的整数,可是这里为什么直到127呢,原因是我们没有给他设定无符号类型的。
相关文章推荐
- MySql数据类型分析(日期时间类型) Part5
- 关于mysql数据表myisam与innode两种类型的比较分析
- MySQL的数据类型----整数
- MySql数据类型分析(数值(整形)类型) Part1
- 分析MySQL数据类型的长度
- MySQL的数据类型和建库策略分析详解
- MySql数据类型分析(数值(整形)类型) Part1
- mysql数据类型分析总结
- mysql整数浮点数据类型
- MySQL数据类型--------整数类型实战
- mysql整数数据类型深入解析
- MySql数据类型分析(数值(小数型)类型) Part2
- 对MySQL中JSON数据类型的操作和分析
- MySQL数据类型--整数类型
- MySql数据类型分析(数值(小数型)类型) Part2
- 分析MySQL数据类型的长度
- MySql数据类型分析(字符类型) Part4
- [转]MySQL整数数据的精确数字数据类型
- 分析MySQL数据类型的长度
- mysql数据类型分析