mysql的整型赋值_mysql整型int(M)

类型

字节

最大值

最小值

(带负号的/无负号的)

(带负号的/无负号的)

TINYINT

1

-128

127

0

255

SMALLINT

2

-32768

32767

0

63335

MEDIUMINT

3

-8388608

8388607

0

16777215

INT

4

-2147483648

2147483647

0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807

0

18446744073709551615

说明:

整数类型后面跟的是显示的宽度。M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。

1.创建表

mysql> create table int_test(a int(1) unsigned not null,

b int,c int(20) unsigned zerofill);

Query OK, 0 rows affected (0.01 sec)

mysql> show create table int_test;

+----------+-------------------------------

-------------------------------------------

| Table | Create Table

+----------+-------------------------------

-------------------------------------------

| int_test | CREATE TABLE `int_test` (

`a` int(1) unsigned NOT NULL,

`b` int(11) DEFAULT NULL,

`c` int(20) unsigned zerofill DEFAULT NUL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+----------+-------------------------------

-------------------------------------------

1 row in set (0.00 sec)

mysql>

2.插入数据

mysql> insert into int_test values(23,99999,123456789);

Query OK, 1 row affected (0.01 sec)

mysql> select * from int_test;

+----+-------+----------------------+

| a | b | c |

+----+-------+----------------------+

| 23 | 99999 | 00000000000123456789 |

+----+-------+----------------------+

1 row in set (0.00 sec)

注意:

int(M),

这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(1)只能存储1个长度的数字,int(20)就会存储20个长度的数字,这是大错特错的。

tinyint(1) 和 tinyint(20) 中的1和20并不表示存储长度,只有字段指定zerofill是有用,

如tinyint(20),如果实际值是123456789,如果列指定了zerofill,查询结果就是00000000000123456789,左边用0来填充。

补充(char和varchar的区别):

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足。(在检索操作中那些填补出来的空格字符将被去掉)

在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值