• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    mysql 整型字段设计

      in  数据库      Tags: 

    只要做开发的,肯定创建过表,表字段用什么类型,长度是多少等。感觉没什么要说的,可是归纳总结一下,还有东西可说的。

    1,整型类型

    数据类型 有符号 无符号 存储
    bigint -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 0 到 2^64-1 (18446744073709551615) 8 字节
    int -2^31 (-2147483648) 到 2^31-1 (2147483647) 0 到 2^32-1 (4294967295) 4 字节
    mediumint -2^31 (-8388608) 到 2^23-1 (8388607) 0 到 2^24-1 (16777215) 3 字节
    smallint -2^15 (-32768) 到 2^15-1 (32767) 0 到 2^16-1 (65535) 2 字节
    tinyint -2^7 (-127) 到 2^7-1 (127) 0 到 2^8-1 (255) 1 字节

    知道类型的范围值对我们有帮助的,例如,如果用tinyint,该字段的最大值不会超过255,把字段设置成tinyint(10),有符号的情况下,最大只能是127,表面上看好像是可以存入10位,而实际只能存入3位数。

    根据要存数字大小,来选择不同的数据类型,例如,如果是标识位,一般情况设置为tinyint(1),最合适,存储小,又不会存不进去。

    2,实例说明

    mariadb [test]> CREATE TABLE `test` (
     -> `big_test` bigint(20) DEFAULT 0,
     -> `int_test` int(11) DEFAULT 0,
     -> `medium_test` mediumint(8) DEFAULT 0,
     -> `small_test` smallint(6) DEFAULT 0,
     -> `tiny_test` tinyint(4) DEFAULT 0
     -> ) ENGINE=myisam DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.09 sec)
    
    mariadb [test]> INSERT INTO test (big_test, int_test, medium_test, small_test, tiny_test) VALUES (9223372036854775807, 2147483647, 8388607, 32767, 127);
    Query OK, 1 row affected (0.00 sec)
    
    mariadb [test]> select * from test;
    +---------------------+------------+-------------+------------+-----------+
    | big_test | int_test | medium_test | small_test | tiny_test |
    +---------------------+------------+-------------+------------+-----------+
    | 9223372036854775807 | 2147483647 | 8388607 | 32767 | 127 |
    +---------------------+------------+-------------+------------+-----------+
    1 row in set (0.00 sec)
    
    mariadb [test]> INSERT INTO test (big_test, int_test, medium_test, small_test, tiny_test) VALUES (9223372036854775807, 2147483647, 8388607, 32767, 128);
    Query OK, 1 row affected, 1 warning (0.00 sec)   //128超过了,有符号tinyint的最大值,报了warning出来,但是还是入库了。
    
    MariaDB [test]> select * from test;
    +---------------------+------------+-------------+------------+-----------+
    | big_test | int_test | medium_test | small_test | tiny_test |
    +---------------------+------------+-------------+------------+-----------+
    | 9223372036854775807 | 2147483647 | 8388607 | 32767 | 127 |
    | 9223372036854775807 | 2147483647 | 8388607 | 32767 | 127 |
    +---------------------+------------+-------------+------------+-----------+
    2 rows in set (0.00 sec)
    
    MariaDB [test]> ALTER TABLE `test` CHANGE `tiny_test` `tiny_test` TINYINT( 10 ) NULL DEFAULT '0';
    Query OK, 0 rows affected (0.00 sec)
    Records: 0 Duplicates: 0 Warnings: 0   //将长度改为10,没报错
    
    MariaDB [test]> INSERT INTO test (big_test, int_test, medium_test, small_test, tiny_test) VALUES (9223372036854775807, 2147483647, 8388607, 32767, 128);
    Query OK, 1 row affected, 1 warning (0.00 sec)   //在插入数据,一样报warning,但还是入库
    
    MariaDB [test]> select * from test;
    +---------------------+------------+-------------+------------+-----------+
    | big_test | int_test | medium_test | small_test | tiny_test |
    +---------------------+------------+-------------+------------+-----------+
    | 9223372036854775807 | 2147483647 | 8388607 | 32767 | 127 |
    | 9223372036854775807 | 2147483647 | 8388607 | 32767 | 127 |
    | 9223372036854775807 | 2147483647 | 8388607 | 32767 | 127 |
    +---------------------+------------+-------------+------------+-----------+
    3 rows in set (0.00 sec)


    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开