1、数据类型
1、整型
特点:
- 无符号关键字:unsigned,如果不设置默认是有符号
- 如果插入的数值超出了整型的范围,会报out of rang异常,并且插入临界值
- 如果不设置长度,会有默认的长度
- 长度代表了显示的最大宽度,如果不够会用0在左边填充,单必须搭配zerofill使用
2、小数
分类
float(M,D)
double(M,D)
decimal(M,D) ```sql DROP TABLE IF EXISTS tb_test; CREATE TABLE tb_test ( f1 FLOAT(5,2), f2 DOUBLE(5,2), f3 DEC(5,2) ); DESC tb_test;
INSERT INTO tb_test VALUES(111.233,222.2,333.4366); SELECT * from tb_test;
<a name="zQ4p5"></a>
## 3、字符型
<br />
<a name="EpG6K"></a>
## 4、enum 枚举
- 只能是其中一个值
```sql
DROP TABLE IF EXISTS tb_enum;
CREATE TABLE IF NOT EXISTS tb_enum (
sex ENUM('男','女')
);
DESC tb_enum;
INSERT INTO tb_enum VALUES('男');
INSERT INTO tb_enum VALUES('女');
INSERT INTO tb_enum VALUES('红');
SELECT * from tb_enum;
5、set 集合,可以是多个
- 可以插入设置的多个值
DROP TABLE IF EXISTS tb_set; CREATE TABLE IF NOT EXISTS tb_set ( list SET('1','2','3','5') ); DESC tb_set; INSERT INTO tb_set VALUES('1,2'); INSERT INTO tb_set VALUES('2,3'); SELECT * FROM tb_set;
6、时间
datetime和timestamp的区别
- Timestamp支持的时间范围较小,取值范围:19700101080001-2038年的某个时间,Datetime的取值范围:1000-1-1 —9999-12-31
- timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入的当地时区
- timestamp的属性受Mysql版本和SQLMode的影响很大
2、数据库设计规范
mysql数据库规约.xmind