mysql的数据类型包括整数类型,浮点数类型,定点数类型,日期和时间类型,字符串类型和二进制数据类型。

1.整数类型:

整数类型是数据库中最基本的数据类型,mysql共支持6种整数类型,分别是:

 

整数类型 字节数(byte)
tinyint 1
smallint 2
mediumint 3
int 4
integer 4
bigint 8

其中1byte=8bit,由此可以算出每个整数类型的取值范围,例如int,共有4byte=32bit,那么无符号的取值范围为2^8-1

mysql 支持数据类型的名称后面跟上指定该类型的显示宽度。形势如下:

数据类型(显示宽度)

在整数类型中,可以使用zerofill参数,来补全数字显示不足的空间

2.浮点数类型,定点数类型

浮点数类型用来表示小数,包括float型和double型。定点数类型就是decimal型。

 

数据类型 byte
float 4
double 8
decimal(m,d) m+2

m是精度,表示数据类型的总长度,小数点不占位

d是标度,表示小数点后面的长度。

如果插入值的精度高于实际定义的精度,系统会自动进行四舍五入处理,float和double四舍五入时不会报错,而decimal则会有警告。

3.日期与时间型

 

数据类型 字节数  
year 1  
date 4  
time 3  
datetime 8  
timesamp 4  
     

每种日期和时间都有一个有效的范围,其中

year :1901~2155

year还可以用两位数表示,‘00’~69’转换为2000~2069,‘70’~‘99’转换成1970~1999,‘0’和‘00’的效果是一样的。但是,2位数字跟2位字符串的效果是不一样的,如果输入数字0则转换为0000,如果输入字符串‘0’则会转换成2000

time:-838:59:59~838:59:59

time显示类型hh:mm:ss。 也支持 ‘d  hh:mm:ss ’,d表示天数,取值范围是0~34。例如 ‘2 10:00:00’会被转换成 58:00:00;同样支持hhmmss格式的字符串或者数字来表示。
time支持用current_time 或者now()来输入当前系统时间

date:1000-01-01 ~ 9999-12-31

date用四个字节表示日期,yyyy-mm-dd 或者yyyymmdd,mysql还支持不严格的语法格式,任何标点都可以用来做间隔符。同样支持用current_time 或者now()来输入当前系统时间。

datetime:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

timestamp:1970-01-01 00:00:00 ~ 2038-12-31 23:59:59

timestamp表示的时间范围比较小,有一些特殊的形式1)使用current_timestmap 输入系统当前日期与时间;2)输入NULL,无任何输入时都会输入系统当前日期与时间。

4.字符串类型:

char varchar blob text enum set

char与varchar,都在类型创建的时候就指定最大长度形式为:
字符串类型(M)
char 的长度是固定的,指定了长度,就占指定的bit
varchar的长度是可变的,创建表时定义的是最大长度,实际占用的空间为字符串的实际长度+1

text

text类型包含tinytext text mediumtext longtext 存储空间都是值的长度+2个字节

enum 枚举类型,其基本形式如下:

属性名 emun(‘值1’,‘值2’,……)
属性指的是字段的名称。如果列表中只能选取一个值,就可以选用emun类型,如果要选取列表中的多个值,则可以选择set类型。

set

属性名 set(‘值1’,‘值2’,……)
取多个元素时,可以用逗号隔开,set最多只能是64个元素的组合,列表中每个值都有一个顺序排列的编号。mysql存入是的这个编号,而不是列表中的值。

5.二进制类型

暂时省略,写不下去啦!