mysql数据库数值型之整型
1、 整型 整形 | 占用字节数 | 范围 | tinyint | 1 | -128~127 | smallint | 2 | -32768~32767 | mediumint | 3 | -8388608~8388607 | int | 4 | -2147483648~2147483647 | bigint | 8 | -9223372036854775808~9223372036854775807 |
选择的范围尽可能小,范围越小占用资源越少 代码如下:
- mysql> create table stu1(
- -> id tinyint, # 范围要尽可能小,范围越小,占用空间越少
- -> name varchar(20)
- -> );
- Query OK, 0 rows affected (0.02 sec)
- -- 超出范围会报错
- mysql> insert into stu1 values (128,'tom');
- ERROR 1264 (22003): Out of range value for column 'id' at row 1
复制代码 无符号整形(unsigned) 无符号整形就是没有负数,无符号整数是整数的两倍
- mysql> create table stu2(
- -> id tinyint unsigned # 无符号整数
- -> );
- Query OK, 0 rows affected (0.02 sec)
- mysql> insert into stu2 values (128);
- Query OK, 1 row affected (0.00 sec)
复制代码 整形支持显示宽度,显示宽带是最小的显示位数,如int(11)表示整形最少用11位表示,如果不够位数用0填充。显示宽度默认不起作用,必须结合zerofill才起作用。
- mysql> create table stu4(
- -> id int(5),
- -> num int(5) zerofill # 添加前导0,int(5)显示宽带是5
- -> );
- Query OK, 0 rows affected (0.05 sec)
- mysql> insert into stu4 values (12,12);
- Query OK, 1 row affected (0.00 sec)
- mysql> select * from stu4;
- +------+-------+
- | id | num |
- +------+-------+
- | 12 | 00012 |
- +------+-------+
- 1 row in set (0.00 sec)
复制代码 小结:
1、范围要尽可能小,范围越小,占用空间越少
2、无符号整数是整数的两倍
3、整形支持显示宽度,显示宽带是最小的显示位数,必须结合zerofill才起作用
|