MySQL--数据类型

视频链接

一.整型:

tinyint:一个字节由于增加了负数,实际范围为:-128~127

smallint:系统采用两个字节来保存的整型,-2^15-2^15-1

meiumint:系统采用三个字节来保存的整型

int:系统采用四个字节来保存的整型

bigint:系统采用八个字节来保存的整型

如果只需要正数,就使用无符号正数 加入unsigned关键字

alter table my_int add int_6 tinyint unsigned first;

此时,tinyint表示范围是:0-255/2^16-1

zerofill 使得数据按照规定的位数来显示,不够的位数用0填充

alter table my_int add int_6 tinyint unsigned zerofile first;

此时,如果是1 会显示为001

alter table my_int add int_6 tinyint unsigned zerofile first;(这个为4位)

此时,1会显示为0001

二.小数类型

浮点型

存储时用指数的方式来储存,所以表示数据量大,但是数据精度不是很高

如果丢失,会按照四舍五入方式来保存

float:单精度类型,可以表示10^38,系统提供4个字节来存储数据,只能保证大概7左右的精度

使用方法:

Float,表示不指定小数位数

Float(M,D),表示整数8位,小数2位共10位

浮点数可以用科学计数法表示:10e5 表示100000

double:双精度类型,可以表示10^308,系统提供,精度也只有15位左右,使用方式同上

定点数 

视频例子

能够保证数据精确的小数(小数部分超出长度会四舍五入,整数部分会精确)

decimal,系统会自动个根据存储数据来分配存储空间,大概每9个数就会分配4个字节来保存,同时小数和整数部分会分开存储

Decimal(M,D),M表示总长度最大值不能超过65,D表示小数的长度最大不能超过30

三.时间

date                    YYYY-mm-dd

time                    HH:ii:ss 本质是用来表示时间区间,能表示的范围比较大,也可以是负数

【数字 HH:ii:ss-->数字*24+HH:ii:ss】eg:'5 12:12:12'->'132:12:12'

datetime            YYYY-mm-dd HH:ii:ss 0值为0000-00-00 00:00:00

timestamp         YYYY-mm-dd HH:ii:ss  默认不能为空,默认值为当前时间,当对应记录数据被更新时,会自动更新为当前时间

Years                   YYYY 1900-2155 有两种插入方式:0-99 【69以下对应20xx,70以上包括70会变成19xx】  和四位数年份

四.字符串类型

char:定长,系统会分配空间,char(L),L字符数,0-255【查询效率比varchar高 】

varchar:变长,根据实际存储的数据来确定长度 varchar(L)L:0-65535,每个数据生成后,会在之后,增加1-2个字节【0-127,一个字节,>127用两个字节来保存长度】

text:文本类型,存储字符文本【blob存储二进制文本,但是一般不会用来存储文本本身而是存储文本链接】 

是加上系统中有四种text

tinytext:2^8+1

text:2^16+2

mediumtext:2^24+3

longtext:四个字节,字符数2^32+4

注意:

1.选择储存文本的时候,系统会自动根据存储长度选择合适的文本

2.超过255个字符是,用text不要用varchar

enum:枚举类型,选定确定的几个字段

语法:

enum(数值1,数值2……)

系统提供1-2个字节保存枚举数据0-255用一个字节,255-65535用两个字节,所以最多有65535个,字段上所存的值是每个元素的下标,从1开始。【mysql会自动进行 类型转换,=-*/会自动判断,字符串为0】所以可以用数字来进行插入

插入数据必须是设定范围

set:将多个数据选项同时保存的数据类型,将制定发项按照对应的二进制位进行控制:1表示被选中,0表示未被选中

语法:set(值1,值2……)

1个字节,set只能有8个选项

2个字节,set只能有16个选项

……以此类推

set可以同时插入多个:

        insert into 表名 values(‘值1,值2’)这样就插入多个

set和enum一样存储到数据库中仍然是数字

数据如果被选中,对应的数据就为1,否则为0

你可能感兴趣的:(MySQL--数据类型)