[关闭]
@nalan90 2016-09-07T19:30:05.000000Z 字数 1572 阅读 489

MySQL数据类型

MySQL


MySQL常用基本数据类型

1.整型

数据类型 长度 范围(signed) 范围(unsigned)
tinyint 1 byte -2^7 ~ 2^7-1 0 ~ 2^8-1
smallint 2 byte -2^15 ~ 2^15-1 0 ~ 2^16-1
mediumint 3 byte -2^23 ~ 2^23-1 0 ~ 2^24-1
int 4 byte -2^31 ~ 2^31-1 0 ~ 2^32-1
bigint 8 byte -2^63 ~ 2^63-1 0 ~ 2^64-1
  1. mysql> create table t(id int primary key auto_increment,num int(20) not null default 0);
  2. Query OK, 0 rows affected (0.01 sec)
  3. mysql> show create table t \G
  4. *************************** 1. row ***************************
  5. Table: t
  6. Create Table: CREATE TABLE `t` (
  7. `id` int(11) NOT NULL AUTO_INCREMENT,
  8. `num` int(20) NOT NULL DEFAULT '0',
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
  11. 1 row in set (0.00 sec)
  12. mysql> insert into t(num) values(100);
  13. Query OK, 1 row affected (0.00 sec)
  14. mysql> select * from t;
  15. +----+-----+
  16. | id | num |
  17. +----+-----+
  18. | 1 | 100 |
  19. +----+-----+
  20. 1 row in set (0.00 sec)
  21. 修改字段num,添加zerofill
  22. mysql> alter table t modify num int(100) zerofill;
  23. Query OK, 1 row affected (0.02 sec)
  24. Records: 1 Duplicates: 0 Warnings: 0
  25. mysql> show create table t \G
  26. *************************** 1. row ***************************
  27. Table: t
  28. Create Table: CREATE TABLE `t` (
  29. `id` int(11) NOT NULL AUTO_INCREMENT,
  30. `num` int(100) unsigned zerofill DEFAULT NULL,
  31. PRIMARY KEY (`id`)
  32. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
  33. 1 row in set (0.01 sec)
  34. mysql> select * from t \G
  35. *************************** 1. row ***************************
  36. id: 1
  37. num: 0000000000000000000000000000000000000000000000000000000000000000000000000000100
  38. 1 row in set (0.00 sec)

2. 浮点型

数据类型 长度 范围(signed) 范围(unsigned)
float 1 byte -2^7 ~ 2^7-1 0 ~ 2^8-1
double 2 byte -2^15 ~ 2^15-1 0 ~ 2^16-1
decmial 3 byte -2^23 ~ 2^23-1 0 ~ 2^24-1

3. 字符


4. 日期


5. 枚举

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注