0
点赞
收藏
分享

微信扫一扫

第四章 MySQL数据类型

MySQL提供的数据类型包括数值类型(整数类型和小数类型)、字符串类型、日期类型、复合类型(复合类型包括enum类型和set类型)以及二进制类型。

4.1 MySQL整数类型

MySQL整数类型包括:tinyint类型、smallint类型、mediumint类型、int类型、bigint类型。

整数类型的数,默认情况下既可以表示正整数又可以表示负整数(此时称为有符号数)。如果只希望表示零和正整数,可以使用无符号关键字“unsigned”对整数类型进行修饰(此时称为无符号整数)。 例如:score tinyint unsigned

第四章 MySQL数据类型_数据

4.2 MySQL小数类型

MySQL小数类型包括:精确小数类型和浮点数类型。

精确小数类型包括:decimal精确类型

浮点数类型包括:float单精度类型、double双精度类型

decimal(length, precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定了该小数的最大位数,precision用于设置精度(小数点后数字的位数)。

例如:decimal(5,2)表示小数取值范围:-999.99~999.99

decimal (5,0)表示: -99999~99999的整数。


4.3 MySQL字符串类型

MySQL字符串类型

第四章 MySQL数据类型_字符串_02

字符串类型的数据外观上使用单引号括起来,例如学生姓名'张三'、课程名'java程序设计'等。

char类型与varchar类型比较:

1、都是字符串类型;

2、varchar比较智能,可以根据实际的数据长度分配空间,比较节省空间;但在分配的时候需要相关判断,效率低;

3、char不需要动态分配空间,所以执行效率高,但是可能会导致空间浪费;

4、若字段中的数据不具备伸缩性,建议采用char类型存储;

5、若字段中的数据具备很强的伸缩性,建议采用varchar类型存储。

4.4 MySQL日期类型

MySQL日期类型包括:date类型、time类型、year类型、datetime类型、timestamp类型。

date表示日期,默认格式为‘YYYY-MM-DD’;

time表示时间,格式为‘HH:ii:ss’;

year表示年份;

datetime与timestamp是日期和时间的混合类型,格式为

'YYYY-MM-DD HH:ii:ss'

datetime与timestamp都是日期和时间的混合类型,区别在于:表示的取值范围不同,datetime的取值范围远远大于timestamp的取值范围。将NULL插入timestamp字段后,该字段的值实际上是MySQL服务器当前的日期和时间。同一个timestamp类型的日期或时间,不同的时区,显示结果不同。

4.5 MySQL复合类型

MySQL支持两种复合数据类型:enum枚举类型和set集合类型。

enum类型的字段类似于单选按钮的功能,一个enum类型的数据最多可以包含65535个元素。

set类型的字段类似于复选框的功能,一个set类型的数据最多可以包含64个元素。

4.6 MySQL二进制类型

MySQL二进制类型的字段主要用于存储由‘0’和‘1’组成的字符串,因此从某种意义上将,二进制类型的数据是一种特殊格式的字符串。

MySQL二进制类型与字符串类型的区别在于:字符串类型的数据按字符为单位进行存储,因此存在多种字符集、多种字符序;而二进制类型的数据按字节为单位进行存储,仅存在二进制字符集binary。

第四章 MySQL数据类型_字符串_03

4.7 选择合适的数据类型

选择合适的数据类型,不仅可以节省储存空间,还可以有效地提升数据的计算性能。建议:

1、在符合应用要求(取值范围、精度)的前提下,尽量使用“短”数据类型;

2、数据类型越简单越好;

3、在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间;

4、尽量采用精确小数类型(例如decimal),而不采用浮点数类型。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可;

5、尽量避免NULL字段,建议将字段指定为NOT NULL约束。


举报

相关推荐

0 条评论