mysql 建表定义中 int(10),这个10代表啥?

Mysql数据表定义中我们经常用int(M),这个M默认是11,我们可以写10,或者3

 

这个东西对于mysql存储的数值没有任何影响,mysql存储的数值范围如下所示(32位系统),这个定义的唯一作用,需要与zerofill配合使用,如果启用了zerofill,就是当数值的位数<M的时候,左侧自动以0补齐,>M的时候没有任何作用,如果启用了zerofill,程序中对查询出的int值需要做intval处理才能正确使用,其实是一件比较坑爹的事情,所以基本没有人这么用

总结一句话就是,int(M),M其实对我们没有任何影响,建议大家定义表结构时忽略此值

 

1.BIT[M]

位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1

2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4

很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

3. BOOL,BOOLEAN

是TINYINT(1)unsigned的同义词。zero值被视为假。非zero值视为真。范围是-128到127

4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6

小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9

中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

6. INT[(M)] [UNSIGNED][ZEROFILL]   M默认为11

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20

大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

MySQL,可以使用以下DDL语句定义一个名为`lifecycle`的表: ``` CREATE TABLE lifecycle ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键', name VARCHAR(50) NOT NULL COMMENT '名称', start_time DATETIME NOT NULL COMMENT '开始时间', end_time DATETIME COMMENT '结束时间', status TINYINT(1) NOT NULL DEFAULT 0 COMMENT '状态', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id), KEY idx_status (status), KEY idx_start_time (start_time), KEY idx_end_time (end_time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生命周期表'; ``` 该表包括以下字段: - `id`: 主键,自增长的整数。 - `name`: 名称,最大长度为50的字符串。 - `start_time`: 开始时间,时间类型。 - `end_time`: 结束时间,时间类型。 - `status`: 状态,取值为0或1。 - `create_time`: 创建时间,时间类型,使用CURRENT_TIMESTAMP函数设置默认值,表示使用当前时间。 - `update_time`: 更新时间,时间类型,使用CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP函数设置默认值,表示在更新时自动设置为当前时间。 该表还定义了三个索引: - `PRIMARY KEY`: 主键索引,用于保证唯一性。 - `idx_status`: 状态索引,用于加快状态查询。 - `idx_start_time`和`idx_end_time`: 开始时间和结束时间索引,用于加快时间范围查询。 该表使用InnoDB引擎,字符集为utf8mb4,注释为“生命周期表”。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值