一、常见的数据类型

1、数值型:

整型:

分类:tinyint(1个字节)、

smallint(2个字节)、

mediumint(3个字节)、

int/integer(4个字节)、

bigint(8个字节)

特点:

1、默认设置为有符合,如果需要设置为无符合需要在自动类型后面添加上unsigned,如果设置为无符号则该列的数值不能为负数

例如:

create table int_table(

id int,

idno int usigned);

2、如果插入的数值超出了整数的范围会报out of range异常,并且插入临界值

3、如果未设置长度,会有默认的长度,长度代表显示的最大宽度(非最大位数),如果不够会用0填充,但必须搭配zerofill使用(如果对字段使用的zerofill,那么该列会变为无符号列)

例如:

create table int_table(

id int,

idno int zerofill);

小数:

定点型:

float(M,D)

double(M,D)

浮点型:

dec(M,D)

decimal(M,D)

特点:

1、M:整数部位+小数部位的长度,D:小数点后保留位数

例如:M=5,D=2

如果超过设置的长度则插入临界值999.99

如果小数点位数不足则补充0

如果小数为超出设置的小数点位,则会四舍五入

2、M、D可以省略

如果是decimal,则M默认为10,D默认为0

float和double则会根据插入的实际数值自动适配(不能超过临界值)

3、定点型的精确度较高,如果要求插入数值的精度较高则考虑decimal

例如:货币

2、字符型:

较短的文本(M表示字符数):char(M)、varchar(M)

特点:

1、char长度默认设置为1,存储字符时长度固定,耗费空间,效率高

varchar长度必须手动设置,根据实际值自动适配,相对节省空间,效率低

例如M等于10,插入3个字符,char会固定占用10个字符的空间,varchar只会占用3个字符的空间

较长的文本:text、blob(较长的二进制数据)

其他:

binary和varbinary用于保存较短的二进制

enum用于保存枚举

set用于保存集合

3、日期型:

date 只保存日期

time 只保存时间

year 只保存年

datetime 保存日期+时间

timestamp 保存日期+时间

特点:

datetime:8个字节,范围:1000-9999,不受时区影响

timestamp:4个字节,范围:1970-2038,受时区影响