《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型

上传人:sat****105 文档编号:290121301 上传时间:2022-05-09 格式:PPT 页数:47 大小:931KB
返回 下载 相关 举报
《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型_第1页
第1页 / 共47页
《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型_第2页
第2页 / 共47页
《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型_第3页
第3页 / 共47页
《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型_第4页
第4页 / 共47页
《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型》由会员分享,可在线阅读,更多相关《《MySQL数据库任务驱动式教程》教学课件—06MySQL数据类型(47页珍藏版)》请在金锄头文库上搜索。

1、任务任务 6 MySQL数据类型数据类型【任务背景任务背景】 表是存放数据的地方,一个数据库需要多表是存放数据的地方,一个数据库需要多少张表,一个表中应包含几列(字段),各个少张表,一个表中应包含几列(字段),各个列(字段)要选择什么样的数据类型,这是建列(字段)要选择什么样的数据类型,这是建表时必须考虑的问题。表时必须考虑的问题。 数据类型的选择是否合理对数据库数据类型的选择是否合理对数据库性能也会产生一定的影响。性能也会产生一定的影响。 在实际应用中,例如姓名、专业名、商在实际应用中,例如姓名、专业名、商品名和电话号码等字段可以选择品名和电话号码等字段可以选择VARCHAR类型;学分、年龄

2、等字段是小整数,可以选类型;学分、年龄等字段是小整数,可以选择择TINYINT类型;成绩、温度和测量等数据类型;成绩、温度和测量等数据要求保留一定的小数位,可以选择要求保留一定的小数位,可以选择FLOAT数数据类型;而出生日期、工作时间等字段可以据类型;而出生日期、工作时间等字段可以选择选择DATE或或DATETIME类型。类型。【任务要求任务要求】 本任务将学习本任务将学习MySQL的主要的数据的主要的数据类型的含义、特点、取值范围和存储空类型的含义、特点、取值范围和存储空间,并对相关数据类型进行比较;学习间,并对相关数据类型进行比较;学习掌握如何根据字段存储的数据不同选择掌握如何根据字段存

3、储的数据不同选择合适的数据类型,以及怎样附加说明数合适的数据类型,以及怎样附加说明数据类型的相关属性。据类型的相关属性。【任务分解任务分解】 数据类型是数据的一种属性,其可以数据类型是数据的一种属性,其可以决定数据的存储格式、有效范围和相应的决定数据的存储格式、有效范围和相应的限制。限制。 MySQL包括整数类型、浮点数类型、定包括整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型、二点数类型、日期和时间类型、字符串类型、二进制、进制、ENUM类型和类型和SET类型等数据类型。类型等数据类型。6.1 6.1 整数类型整数类型 整数类型是数据库中最基本的数据类型。标整数类型是数据库中最

4、基本的数据类型。标准准SQL中支持中支持INTEGER和和SMALLINT两类整数两类整数类型。类型。 MySQL数据库除了支持这两种类型以数据库除了支持这两种类型以外,还扩展支持了外,还扩展支持了TINYINT、MEDIUMINT和和BIGINT。见表。见表6.1。表表6.1 6.1 整数类型与取值范围整数类型与取值范围6.2 6.2 浮点数类型和定点数类型浮点数类型和定点数类型 MySQL中使用浮点数类型和定点数中使用浮点数类型和定点数类型来表示小数。浮点数类型包括单精类型来表示小数。浮点数类型包括单精度浮点数(度浮点数(FLOAT型)和双精度浮点数型)和双精度浮点数(DOUBLE型)。定

5、点数类型就是型)。定点数类型就是DECIMAL型见表型见表6.2。表表6.2 6.2 浮点数类型和定点数类型浮点数类型和定点数类型 浮点数型在数据库中存放的是近似浮点数型在数据库中存放的是近似值,而定点数类型在数据库中存放的是值,而定点数类型在数据库中存放的是精确值。精确值。6.3 CHAR6.3 CHAR类型和类型和VARCHARVARCHAR类型类型 两种类型比较见表两种类型比较见表6.3。表表6.3 CHAR6.3 CHAR类型和类型和VARCHARVARCHAR类型类型 CHAR和和VARCHAR的区别如下。的区别如下。(1)都可以通过指定)都可以通过指定n来限制存储的最大来限制存储的

6、最大字符数长度,字符数长度,CHAR(20)和和VARCHAR(20)将最多只能存储将最多只能存储20个字符,超过的字符将个字符,超过的字符将会被截掉。会被截掉。n必须小于该类型允许的最大字必须小于该类型允许的最大字符数。符数。(2)CHAR类型指定了类型指定了n之后,如果存入的之后,如果存入的字符数小于字符数小于n,后面将会以空格补齐,查询,后面将会以空格补齐,查询的时候再将末尾的空格去掉,所以的时候再将末尾的空格去掉,所以CHAR类类型存储的字符串末尾不能有空格,型存储的字符串末尾不能有空格,VARCHAR不受此限制。不受此限制。(3)内部存储的机制不同。)内部存储的机制不同。CHAR是固

7、定是固定长度,长度,CHAR(4)不管是存入)不管是存入1个字符,个字符,2个字符或者个字符或者4个字符(英文的),都将占用个字符(英文的),都将占用4个字节。个字节。 VARCHAR是存入的实际字符数是存入的实际字符数+1个个字节(字节(n255),所以,所以VARCHAR (4),存入一个字符将占用),存入一个字符将占用2个字节,个字节,2个字符占用个字符占用3个字节,个字节,4个字符个字符占用占用5个字节。个字节。(4)CHAR类型的字符串检索速度要比类型的字符串检索速度要比VARCHAR类型的快。类型的快。6.4 TEXT6.4 TEXT类型和类型和BLOBBLOB类型类型 BLOB和

8、和TEXT是对应的,不过存储方是对应的,不过存储方式不同,式不同,TEXT是以文本方式存储的,而是以文本方式存储的,而BLOB是以二进制方式存储的。如果存储英是以二进制方式存储的。如果存储英文的话,文的话,TEXT区分大小写,而区分大小写,而BLOB不区不区分大小写。分大小写。TEXT可以指定字符集,可以指定字符集,BLOB不用指定字符集见表不用指定字符集见表6.4。表表6.4 TEXT6.4 TEXT类型和类型和BLOBBLOB类型类型 二进制类型是在数据库中存储二进制数二进制类型是在数据库中存储二进制数据的数据类型,如数码照片、视频和扫描据的数据类型,如数码照片、视频和扫描的文档等数据。在

9、的文档等数据。在MySQL是用是用BLOB数据数据类型存储这数据的。类型存储这数据的。 BLOB有有4种类型:种类型:TINYBLOB、BLOB、MEDIUMBLOB和和LONGBLOB,其最大长度对,其最大长度对应于应于4种种TEXT数据类型见表数据类型见表6.5。表表6.5 BLOB6.5 BLOB类型类型6.5 BINARY6.5 BINARY和和VARBINARYVARBINARY BINARY和和VARBINARY数据类型类数据类型类似于似于CHAR和和VARCHAR。不同之处在于。不同之处在于BINARY与与VARBINARY使用字节为存储使用字节为存储单位,而单位,而CHAR与与

10、VARCHAR使用字符为使用字符为存储单位。存储单位。 例如,例如,BINARY(5)表示存储)表示存储5字节字节的二进制数据,的二进制数据,CHAR(5)表示存储)表示存储5个字符的数据。个字符的数据。 BINARY(n):固定:固定n个字节二进制数据。个字节二进制数据。n的取值范围为的取值范围为1255,默认为,默认为1。若输出的字长。若输出的字长度小于度小于n,则不足部分以,则不足部分以0填充。填充。BINARY(n)数数据存储的长度为据存储的长度为n+4个字节。个字节。 VARBINARY(n):n个字节变长二个字节变长二进制数据。进制数据。n的取值范围为的取值范围为165535,默,

11、默认为认为1。VARBINARY(n) 数据存储的长数据存储的长度为实际长度度为实际长度+4个字节。个字节。6.6 6.6 时间和日期类型时间和日期类型 日期与时间类型是为了方便在数据库中日期与时间类型是为了方便在数据库中存储日期和时间而设计的。存储日期和时间而设计的。MySQL中有多种中有多种表示日期和时间的数据类型。其中,表示日期和时间的数据类型。其中,YEAR类类型表示年份,型表示年份,DATE类型表示日期,类型表示日期,TIME类类型表示时间,型表示时间,DATETIME和和TIMESTAMP表表示日期和时间。示日期和时间。表表6.6 6.6 时间时间日期日期类类型型 TIMESTAM

12、P类型比较特殊,如果定类型比较特殊,如果定义一个字段的类型为义一个字段的类型为TIMESTAMP,这个,这个字段的时间会在其他字段修改的时候自动字段的时间会在其他字段修改的时候自动刷新。所以这个数据类型的字段可以存放刷新。所以这个数据类型的字段可以存放这条记录最后被修改的时间,而不是真正这条记录最后被修改的时间,而不是真正的存放时间。的存放时间。6.7 ENUM6.7 ENUM类型和类型和SETSET类型类型 ENUM(枚举)类型,最多可以定义(枚举)类型,最多可以定义65535种不同的字符串,从中做出选择,只种不同的字符串,从中做出选择,只能并且必须选择其中一种,占用存储空间是能并且必须选择

13、其中一种,占用存储空间是一个或两个字节,由枚举值的数目决定。一个或两个字节,由枚举值的数目决定。 例如,要表示性别字段,可用例如,要表示性别字段,可用ENUM数据数据类型,类型, ENUM(男男,女女)只有两种选择,只有两种选择,要么是要么是“男男”要么是要么是“女女”,而且只需一个字,而且只需一个字节。节。 SET(集合)类型,其值同样来自于(集合)类型,其值同样来自于一个用逗号分隔的列表,最多可以有一个用逗号分隔的列表,最多可以有64个个成员,可以选择其中的个到不限定的多成员,可以选择其中的个到不限定的多个,占用存储空间是个,占用存储空间是18字节,由集合可字节,由集合可能的成员数目决定。

14、能的成员数目决定。 例如,某个表示业余爱好字段,要求提例如,某个表示业余爱好字段,要求提供多选项选择,这时该字段可以使用供多选项选择,这时该字段可以使用SET数数据类型,如据类型,如SET(篮球篮球,足球足球,音音乐乐,电影电影,看书看书,画画画画,摄影摄影),表示可以选择,表示可以选择“篮球篮球”、 “足足球球”、“音乐音乐”、“电影电影”、“看书看书”、“画画画画”和和“摄影摄影”中的中的0项或多项。项或多项。6.8 6.8 如何选择数据类型如何选择数据类型 在在MySQL中创建表时,需要考虑为中创建表时,需要考虑为字段选择哪种数据类型是最合适的。选字段选择哪种数据类型是最合适的。选择了合

15、适的数据类型,会提高数据库的择了合适的数据类型,会提高数据库的效率。效率。 SMALLINT:存储相对比较小的整:存储相对比较小的整数。如,年纪、数量、工龄和学分等。数。如,年纪、数量、工龄和学分等。 INT:存储中等整数。如,距离。:存储中等整数。如,距离。 BIGINT:存储超大整数。如,科学:存储超大整数。如,科学/科学数据。科学数据。 FLOAT:存储小的数据。如,成绩、温度:存储小的数据。如,成绩、温度和测量。和测量。 DOUBLE:存储双精度的小数据。如,科:存储双精度的小数据。如,科学数据。学数据。 DECIMAL:以特别高的精度存储小数:以特别高的精度存储小数数据。如,货币数额

16、、单价和科学数据。数据。如,货币数额、单价和科学数据。 CHAR:存储通常包含预定义字符串的:存储通常包含预定义字符串的变量。如,国家、邮编和身份证号。变量。如,国家、邮编和身份证号。 VARCHAR:存储不同长度的字符:存储不同长度的字符串值。如,名字、商品名称和密码。串值。如,名字、商品名称和密码。 TEXT:存储大型文本数据。如,新:存储大型文本数据。如,新闻事件、产品描述和备注。闻事件、产品描述和备注。 BLOB:存储二进制数据,如,图:存储二进制数据,如,图片、声音、附件和二进制文档。片、声音、附件和二进制文档。 DATE:存储日期,如,生日和进货:存储日期,如,生日和进货日期。日期。 TIME:存储时间或时间间隔。如,开:存储时间或时间间隔。如,开始始/结束时间、两时间之间的间隔。结束时间、两时间之间的间隔。 DATETIME:存储包含日期和时间的:存储包含日期和时间的数据。如,事件提醒。数据。如,事件提醒。 TIMESTAMP:存储即时时间。如,当:存储即时时间。如,当前时间、事件提醒器。前时间、事件提醒器。 YEAR:存储年份。如,毕业年、工作:存储年份。如,毕业年、工

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号