【MySQL】填充零

零填充会自动使用无符号位;零填充指的是位数固定,如果数值长度不足字段类型的长度,则使用0来填充

方式一:

zerofill: 当插入的数值比定义的属性长度小的时候,会在数值前面进行补值操作。

创建表

create table table_name (
id bigint(20) NULL,
order_no int(6) unsigned zerofill NULL
);

填充0,那么就是无符号的。

插入数据

INSERT INTO table_name VALUES(2,5);

查数据

SELECT * FROM table_name


方法二:

利用工具,如Navicat
需要注意的是,用Navicat设置填充零时,其不显示填充的0;可以通过命令行的方式进行查看,从而确定是否真的填充了0。

创建表

mysql> CREATE TABLE IF NOT EXISTS testNUM(
    -> -- 默认为有符号
    -> num1 TINYINT,
    -> num2 TINYINT UNSIGNED,
    -> num3 INT,
    -> num4 INT ZEROFILL,
    -> num5 INT UNSIGNED ZEROFILL
    -> );
Query OK, 0 rows affected (0.08 sec)

插入数据

mysql> INSERT testNUM(num1,num2) VALUES(-5,-5);
ERROR 1264 (22003): Out of range value for column 'num2' at row 1
mysql> INSERT testNUM(num3,num4) VALUES(123,123);
mysql> INSERT testNUM VALUES(0,0,0,0,0);
mysql> INSERT testNUM(num3,num4,num5) VALUES(123,123,123);

查询

mysql> SELECT * FROM testNUM;
+------+------+------+------------+------------+
| num1 | num2 | num3 | num4       | num5       |
+------+------+------+------------+------------+
| NULL | NULL |  123 | 0000000123 |       NULL |
|    0 |    0 |    0 | 0000000000 | 0000000000 |
| NULL | NULL |  123 | 0000000123 | 0000000123 |
+------+------+------+------------+------------+


参考文章:

https://blog.csdn.net/m0_37479246/article/details/79964672

https://blog.csdn.net/lingyun_blog/article/details/44099681