整形
-
整形数据也分为有符号和无符号。
-
数据库对数据有严格的约束,一旦越界,就无法插入数据,不像C语言可以转换。
tinyint: -
占1个字节的整数。
int:
- 4个字节。
bigint:
- 8个字节。
bit类型:
- 使用方法:bit(M)。M表示二进制的长度,就是一串二进制数字而已。如果不写M,默认M是1.
bool类型:
- 常用0表示假,1表示真。
浮点数
decimal(m, n):
- 浮点数也有float,double类型,而且也分为有符号和无符号。但是浮点数最好使用有符号(即默认的)。
- 在mysql中,还引入一种浮点数类型,decimal(m, n); m表示数据的总长度,n表示小数部分的长度。我们推荐使用decimal,因为decimal的精度更高。
- 数据库会对超过精度的部分进行四舍五入。
字符串
char(n):
- 固定字符串长度。n表示的是宏观上的n个字符,既可以表示n个字母,也可以表示n个汉字。固定的意思是,即使你没有使用n个字符,它也会为你开辟n个字符的长度。
- 显而易见,效率很高,但是有空间被浪费。
varchar(n):
- 可变字符串,n表示最大的字符长度。如果你的字符长度小于n,那么只给你开辟你使用的空间。
- 类似于C++的string,需要额外的一个字节表示已经开辟的长度。
- 效率低,但是没有空间浪费。
时间
date:
- 表示年月日,格式固定year-month-day。
datetime:
- 年月日和时分秒。time表示时分秒。
- year-month-day hour:minute:second
timestamp:
- 时间戳,有默认值。
其他
enum && set
- enum(‘A’, ‘B’);
- A和B只能选择一个。
- set(‘A’,‘B’);
- A和B可以选择多个。
对于enum和set,可以使用类似二进制的方式进行插入,但是不推荐。因为逻辑不够清晰。