Mysql数据类型---INTEGER

标签(空格分隔): MYSQL


<numeric data type> ::=
    <integer data type>     |
    <decimal data type>     |
    <float data type>       |
    <bit data type>


<integer data type> ::=
    BOOLEAN                                                         |
    TINYINTINT1               [ ( <presentation width> ) ]        |
    SMALLINTINT2              [ ( <presentation width> ) ]        |
    MEDIUMINTINT3MIDDLEINT  [ ( <presentation width> ) ]        |
    INTEGERINTINT4          [ ( <presentation width> ) ]        |
    BIGINTINT8                [ ( <presentation width> ) ]        |

INTEGER数据类型的字段可以存储整数,大部分数据表的主键都是INTEGER类型。
MYSQL 支持多种INTEGER数据类型的变体,这些变体的区别主要在于所支持的值的范围大小。下表列出了不同整形的取之范围

整数类型同义词取值范围
TINYINTINT1( –2^7, +2^7 –1 ]
SMALLINTINT2( –2^15, +2^15 –1 ]
MEDIUMINTINT3, MIDDLEINT( –2^23, +2^23 –1 ]
INTEGERINT, INT4( –2^31, +2^31 –1 ]
BIGINTINT8( –2^63, +2^63 –1 ]

对于每一个整数类型,我们都可以指定一个显示宽度,例如 INTEGER(11)。然而这个宽度与能存储的值的范围无关,只是为了向用户友好的显示存储的值。

创建一个表,并且添加行

mysql> CREATE TABLE tb_width(id INTEGER(4));
Query OK, 0 rows affected (0.22 sec)

mysql> INSERT INTO tb_width VALUES (1);
Query OK, 1 row affected (0.07 sec)

mysql> SELECT * FROM tb_width;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql> INSERT INTO tb_width VALUES (11);
Query OK, 1 row affected (0.07 sec)

mysql> SELECT * FROM tb_width;
+------+
| id   |
+------+
|    1 |
|   11 |
+------+
2 rows in set (0.00 sec)

mysql> INSERT INTO tb_width VALUES (111);
Query OK, 1 row affected (0.05 sec)

mysql> SELECT * FROM tb_width;
+------+
| id   |
+------+
|    1 |
|   11 |
|  111 |
+------+
3 rows in set (0.00 sec)

mysql> INSERT INTO tb_width VALUES (1111);
Query OK, 1 row affected (0.09 sec)

mysql> SELECT * FROM tb_width;
+------+
| id   |
+------+
|    1 |
|   11 |
|  111 |
| 1111 |
+------+
4 rows in set (0.00 sec)

mysql> INSERT INTO tb_width VALUES (11111);
Query OK, 1 row affected (0.06 sec)

mysql> SELECT * FROM tb_width;
+-------+
| id    |
+-------+
|     1 |
|    11 |
|   111 |
|  1111 |
| 11111 |
+-------+
5 rows in set (0.00 sec)

mysql> INSERT INTO tb_width VALUES (111111);
Query OK, 1 row affected (0.09 sec)

mysql> SELECT * FROM tb_width;
+--------+
| id     |
+--------+
|      1 |
|     11 |
|    111 |
|   1111 |
|  11111 |
| 111111 |
+--------+
6 rows in set (0.00 sec)

如果插入的值小于4位,则在数字前面用空格补足4位,如果插入的值大于4位,则会保留更多的位。指定的宽度只被看作最小宽度,因此,宽度和存储值的范围无关,只和显示有关

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值