MySQL从入门到精通_2数据类型
2016-07-30 23:57
316 查看
在MySQL数据库管理系统中,可以通过存储引擎来决定表的类型,即起决定了表的存储方式。同时MySQL数据库管理系统也提供了数据类型决定表存储数据的类型。查看帮助文档可以发现,MySQL数据库管理系统提供了整形、浮点类型、定点数类型和位类型、日期和时间类型、字符串类型。
其中INT和INTEGER这两个整数类型是同名称(可以相互替换)
注意:为什么要了解整数类型所占的字节数?因为根据数据类型所占的字节数可以算出该类型的取值范围
当执行INSERT语句进行插入操作。当插入的数值在INT类型的表示范围内时,INT数值可以正常插入,但如果插入的为其他数据类型(如浮点数)或者超过了INT表示的范围,此时会将插入的值截断并显示警告信息。
在具体使用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字符串类型。
整数类型
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字符串类型。
相关文章推荐
- 【转】MYSQL入门学习之四:MYSQL的数据类型
- Mysql入门到精通之数据表的操作
- MySql入门之一:DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- Redis入门到精通-Redis数据类型
- Python 3从入门到精通14-常见的数据类型字符串元组,列表,字典
- MYSQL入门学习之四:MYSQL的数据类型
- MySQL快速入门04----数据类型
- MySQL快速入门04----数据类型
- MySQL从入门到精通_7数据的操作
- python从入门到精通 第一节 数据类型
- Innodb Cluster 入门(1) Mysql的json数据类型
- MySQL入门12-数据类型
- MySql简单入门二——数据库中的数据类型
- 21分钟 MySQL 入门教程 && mysql数据类型
- java入门到精通——java数据类型
- MySQL 入门 之 数据类型表
- 【Java入门到精通】Java 4类8种数据类型
- MySQL入门--mysql字段的数据类型
- MySQL基础入门-06MySQL的数据类型及列类型
- go 从入门到精通(二)基本数据类型和操作符