浅谈MySQL之数据类型

一、数据库引擎

一、InnoDB存储引擎支持事务,支持行级锁和外键, MySQL默认的存储引擎

二、MyISAM存储引擎,不支持事务,支持表锁,拥有较高的插入和查询速度

三、Memory存储引擎,会把表中的数据存储到内存中

四、如何选择存储引擎

一般情况下采用默认的InnoDB存储引擎即可,支持事务,外键。 如果数据表主要用来插入和查询记录,可以选择MyISAM; 如果只是临时存储数据,并且数据量不大可以选择Memory存储引擎。

二、数据类型

数据类型包括 数值类型,日期、时间类型和字符串类型等

一、整数类型

数据类型名称

存储需求

有符号的取值范围

无符号取值范围

TINYINT

1字节

-128~127

0~255

SMALLINT

2字节

-32768~32767

0~65535

MEDIUMINT

3字节

INT

4字节

-2147483648~2147483647

0~4294967295

BIGINT

8字节

二、小数类型号 

数据类型名称

说明

存储需求

FLOAT

单精度浮点小数,有7位有效数字

4字节

DOUBLE

双精度浮点小数,有15位有效数字

8字节

DECIMAL(M,D)

定点小数,M表示精度,D是小数的位数. DECIMAL是以字符串形式存储的,主要用于货币计算

M+2个字节

注意:在MySQL中,不管是浮点小数还是定点小数,如果数据超出了数据类型的精度范围都采用四舍五入进行处理 

三、日期与时间类型

数据类型名称

格式

范围

存储需求

YEAR

YYYY

1901~2155

1字节

TIME

HH:MM:SS

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

3字节

DATE

YYYY-MM-DD

1000-01-01~9999-12-31

3字节

DATETIME

YYYY-MM-DD HH:MM:SS

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

8字节

TIMESTAMP

YYYY-MM-DD HH:MM:SS

1970-01-01 00:00:00 ~ 2038

4字节

四、字符串类型

数据类型名称

说明

存储需求

CHAR(M)

固定长度的字符串

M字节

VARCHAR(M)

变长的字符串

L+1,L是字符的数量,L<=M

TINYTEXT

小的字符串

L+1字节, L < 28

TEXT

字符串

L+2字节, L<216

MEDIUMTEXT

字符串

L+3字节, L<224

LONGTEXT

字符串

L+4字节, L<232

ENUM

枚举

SET

集合

一、Enum详解:

定义字段时,可以这样:

字段名 ENUM( ‘值1’, ‘值2’, ‘值3’,....’值n’)

字段只能取值ENUM列表中的某个值

二、Set字段详解

 

 五、二进制类型

MySQL可以使用二进制类型存储非文本数据,如BIT(M), BINARY(M),BLOB等.虽然使用BLOB或者TEXT可以存储大容量的数据,对这些大数据的处理会降低数据库的性能.一般情况下,只存储文件的路径,而不是文件的内容.

六、如何选择数据类型

浮点数与定点数. 在长度一定的情况下,浮点小数可以表示更大的数据范围,但是有误差, 对于精度要求较高时采用定点小数DECIMAL.

日期时间类型,如果表示年使用YEAR,表示时间使用TIME,表示日期使用DATE,表示日期与时间使用TIMESTAMP或DATETIME, DATETIME表示范围大, TIMESTAMP实际存储的是UTC世界协调时. 如果使用TIMESTAMP定义字段类型时,在插入数据时如果没有这个列值,系统会把当前时间插入.

CHAR与VARCHAR,CHAR是固定长度的,处理速度比VARCHAR快,但是浪费空间. 但是在MySQL中,存储引擎会影响CHAR与VARCHAR,在InnoDB存储引擎中,不区分固定长度与可变长度,使用CHAR不一定比VARCHAR快,使用VARCHAR可以节省存储空间; 在MyISAM存储引擎中,使用CHAR类型查询速度比VARCHAR快很多.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值