您的位置:首页 > 数据库 > MySQL

MySQL从入门到精通_2数据类型

2016-07-30 23:57 316 查看
在MySQL数据库管理系统中,可以通过存储引擎来决定表的类型,即起决定了表的存储方式。同时MySQL数据库管理系统也提供了数据类型决定表存储数据的类型。查看帮助文档可以发现,MySQL数据库管理系统提供了整形、浮点类型、定点数类型和位类型、日期和时间类型、字符串类型。

整数类型

MySQL数据库管理系统除了支持标准SQL中的所有整数类型(SMALLINT 和 INT),还进行了相应的扩展。扩展后增加了TINYINT、MEDIUMINT、BIGINT这三个整数类型



其中INT和INTEGER这两个整数类型是同名称(可以相互替换)

注意:为什么要了解整数类型所占的字节数?因为根据数据类型所占的字节数可以算出该类型的取值范围

当执行INSERT语句进行插入操作。当插入的数值在INT类型的表示范围内时,INT数值可以正常插入,但如果插入的为其他数据类型(如浮点数)或者超过了INT表示的范围,此时会将插入的值截断并显示警告信息。

浮点数类型、定点数类型和位类型

MySQL数据库管理系统除了支持标准SQL中的所有浮点数类型(FLOAT和DOUBLE)、定点数类型(DEC)外,还进行相应的扩展。扩展后增加了位类型(BIT)。



在具体使用MySQL数据库管理系统时,如果需要存储小数数据,则可以选择FOLAT和DOUBLE类型,至于具体选择哪一个,则需要判断小数数据需要精确的小数位数,当需要精确到小数点后10位以上,就需要选择DOUBLE类型。



再具体使用MySQL数据库管理系统时,如果需要存储小数数据,除了可以选择FLOAT和DOUBLE类型以外,还可以选择DEC和DECIMAL类型,当要求小数精度非常高时,则可以选择DEC和DECIMAL类型,它们的精度比DOUBLE类型还要高。



FLOAT、DOUBLE数据类型存储数据时存储的是近似值,而DECIMAL存储的是字符串,因此提供了更高的精度,在需要表示金额等货币类型时优先选择DECIMAL数据类型。



BIT数据类型的穿件方法和其他数据类型相似,不同之处在于插入方法,INSERT语句插入的第一个数字的为十进制的数字“11”即(二进制位1011),INSERT,语句的第二个数字则正常插入了二进制表示的数字“11”(b“11”即0011)。使用SELECT语句可以看到插入的数据的区别。



日期和时间类型



每个日期和时间数据类型都有一个取值范围,如果插入的值超过了该类型的取值范围,则会插入默认值。

再具体应用中,各种日期和时间类型的应用场合

如果要表示年月日,一般会使用DATE类型。

如果要表示月日时分秒,一般会使用DATETIME类型

如果要使用时分秒,一般会使用TIME类型。

如果要便是年份,一般会使用YEAR类型。因为该类型比DATE类型占用更少的空间。

再具体使用MySQL数据库管理系统时,要根据时间应用来选择满足需求的最小存储的日期类型。例如,如果要存储年月日时分秒,并且年份的取值可能比较久远,最好使用DATETIME类型,而不是TIMESTAMP类型,因为前者比后者表示的日期范围要长一些。如果存储的日期需要让不同时区的用户使用,则可以使用TIMESTAMP类型,因为只用该类型日期能够与实际时区对应。

字符串类型



再具体使用MySQL数据库管理系统时,如果需要存储少量字符串,则可以选择CHAR和VARCHAR类型,至于选择这两个中的哪一个,则需要判断所存储的字符串长度是否经常变化,如果经常发生变化,则可以选择VARCHAR类型,否则选择CHAR类型。



TEXT系列中的各种字符串类型允许的长度和存储字节不同,其中TINYTEXT字符串类型允许存储字符串长度最小,LONGTEXT字符串类型允许存储字符串长度最大。

再具体使用时,如果需要存储大量字符串(存储文章内容的纯文本),则可以选择TEXT系列字符串类型。



BINARY类型与CHAT系列字符串类型中CHAR类型和VARCHAR类型非常相似,不同的是,前者可以存储二进制数据(例如图片,音乐或者视频文件),而后者只能存储字符数据。

再具体使用MySQL数据库管理系统时,如果需要存储少量二进制数据,则可以选择BINARY和VARBINARY类型。至于选择这两个类型中的哪一个,则需要判断存储二进制数据长度是佛经常变化,经常发生变化则选择VARBINARY类型,否则选择BINARY类型。



BLOB类型与TEXT系列字符串类型非常相似,不同的是,前者可以存储二进制数据(例如图片,音乐或者视频文件),而后者只能储存字符串数据。

再具体使用MySQL数据库管理系统时,如果需要存储大量二进制数据(存储电影等视频文件),则可以选择BLOB系类字符串类型,至于选择这些类型中的哪一个,则需要判断所存储的二进制数据长度。根据二进制数据长度来决定是选择允许长度最小的TINYBLOB字符串类型,还是选择允许长度最大的LONGBLO字符串类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息