CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nickname` varchar(100) NOT NULL,
`type` smallint(5) unsigned NOT NULL DEFAULT '0',
`password` char(32) DEFAULT NULL,
`email` varchar(100) NOT NULL,
`created` int(10) unsigned NOT NULL DEFAULT '0',
`last_login` int(10) unsigned DEFAULT NULL,
`mobile` varchar(40) DEFAULT NULL,
`bak1` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `INDEX_NICK` (`nick`),
UNIQUE KEY `INDEX_EMAIL` (`email`),
UNIQUE KEY `mobile` (`mobile`),
KEY `INDEX_TYPE` (`type`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户表';
列类型 | 存储空间 | 取值范围 |
tinyint | 1字节 | signed:-128~127 unsigned: 0~255 |
smallint | 2字节 | signed: -32768~32767 unsigned: 0~65535 |
mediumint | 3字节 | signed: -800万~800万 unsigned:0~1600万 |
int | 4字节 | signed: -21亿~21亿 unsigned:0~42亿 |
bigint | 8字节 | 922亿亿,注意是两个亿,总之很大就是了。。。 |
列类型 | 字符数 | 用途 |
char | 0-255 | 定长字符串 例如经常用char(32)来存储md5加密后的密码。 |
varchar | 0-65535 | 变长字符串 |
TEXT | 0-65535 | 长文本数据 |
MEDIUMTEXT | 0-16 777 215 | 中等长度文本数据 |
LONGTEXT | 0-4 294 967 295 | 极大文本数据 |
列类型 | 说明 |
DECIMAL | 5表示总位数,2表示小数点后的位数 DECIMAL(5,2)能够存储五位数和两位小数的任何值 因此可以存储在值范围为-999.99至 999.99。 decimal是精确值, 经常用于存金额 |
float | 近似数字数据值,四个字节的单精度值. 从0到23的精度将产生一个4字节的单精度浮点数列。 FLOAT(7,4) 显示时看起来像-999.9999 当存储值时 mysql执行四舍五入, 所以如果将999.00009插入到浮点(7,4)列中,则近似结果为999.0001。 |
DOUBLE | 近似数字数据值,八个字节的双精度值 从24到53的精度导致一个8字节的双精度双列。 |
列类型 | 存储空间 | 日期格式 | 取值范围 |
datetime | 8 字节(bytes) | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
timestamp | 4 字节(bytes) | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:01 ~ 2038 |
date | 3 字节(bytes) | YYYY-MM-DD | 1000-01-01 ~ 9999-12-31 |
year | 1 字节(bytes) | YYYY | 1901 ~ 2155 |
建表的sql代码中,UNIQUE KEY `INDEX_NICK` (`nick`)应该更改为UNIQUE KEY `INDEX_NICK` (`nickname`) 2019年10月4日 8:32