mysql tinyint,smallint,mediumint,int,bigint,decimal的使用

197 阅读1分钟

mysql tinyint,smallint,mediumint,int,bigint,decimal的使用

show create table table_int

mysql> show create table table_int;
CREATE TABLE `table_int` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `tinyint1` tinyint(4) unsigned DEFAULT NULL COMMENT '1个字节 0~255',
  `smallint2` smallint(6) unsigned DEFAULT NULL COMMENT '2个字节 0~65535',
  `mediumint3` mediumint(9) unsigned DEFAULT NULL COMMENT '3个字节 0~16777215',
  `int4` int(10) unsigned DEFAULT NULL COMMENT '4个字节 0~4294967295',
  `bigint8` bigint(20) unsigned DEFAULT NULL COMMENT '8个字节 0~18446744073709551615',
  `tinyint1$` tinyint(4) DEFAULT NULL COMMENT '-128~127',
  `smallint2$` smallint(6) DEFAULT NULL COMMENT '-32768~32767',
  `mediumint3$` mediumint(9) DEFAULT NULL COMMENT '-8388608~8388607',
  `int4$` int(11) DEFAULT NULL COMMENT '-2147483648~2147483647',
  `bigint8$` bigint(20) DEFAULT NULL COMMENT '-9223372036854775808~9223372036854775807',
  `xxx` tinyint(2) unsigned DEFAULT NULL COMMENT 'length并不会影响插入数据的大小,大小是由Type决定的。',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '删除状态,1是0否',
  `weight` decimal(3,2) unsigned NOT NULL DEFAULT '0.00' COMMENT 'decimal定义总长度为3,小数点前保留1位,小数点后保留2位,3.14可以,31.4不可以',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='1字节=8bit 【tinyint范围:[0, ( 2^(1*8) ) - 1],int范围:[0, ( 2^(4*8) ) -1] 】';

desc table_int

mysql> desc table_int;
+-------------+------------------------+------+-----+---------+----------------+
| Field       | Type                   | Null | Key | Default | Extra          |
+-------------+------------------------+------+-----+---------+----------------+
| id          | int(11) unsigned       | NO   | PRI | NULL    | auto_increment |
| tinyint1    | tinyint(4) unsigned    | YES  |     | NULL    |                |
| smallint2   | smallint(6) unsigned   | YES  |     | NULL    |                |
| mediumint3  | mediumint(9) unsigned  | YES  |     | NULL    |                |
| int4        | int(10) unsigned       | YES  |     | NULL    |                |
| bigint8     | bigint(20) unsigned    | YES  |     | NULL    |                |
| tinyint1$   | tinyint(4)             | YES  |     | NULL    |                |
| smallint2$  | smallint(6)            | YES  |     | NULL    |                |
| mediumint3$ | mediumint(9)           | YES  |     | NULL    |                |
| int4$       | int(11)                | YES  |     | NULL    |                |
| bigint8$    | bigint(20)             | YES  |     | NULL    |                |
| xxx         | tinyint(2) unsigned    | YES  |     | NULL    |                |
| deleted     | bit(1)                 | NO   |     | b'0'    |                |
| weight      | decimal(3,2) unsigned  | NO   |     | 0.00    |                |
+-------------+------------------------+------+-----+---------+----------------+
14 rows in set (0.00 sec)

select * from table_int

mysql> select * from table_int;
+----+----------+-----------+------------+------------+----------------------+-----------+------------+-------------+-------------+----------------------+------+---------+--------+
| id | tinyint1 | smallint2 | mediumint3 | int4       | bigint8              | tinyint1$ | smallint2$ | mediumint3$ | int4$       | bigint8$             | xxx  | deleted | weight |
+----+----------+-----------+------------+------------+----------------------+-----------+------------+-------------+-------------+----------------------+------+---------+--------+
|  1 |      255 |     65535 |   16777215 | 4294967295 | 18446744073709551615 |       127 |     -32768 |     8388607 | -2147483648 | -9223372036854775808 |  200 |         |   3.14 |
+----+----------+-----------+------------+------------+----------------------+-----------+------------+-------------+-------------+----------------------+------+---------+--------+
1 row in set (0.00 sec)