MySQL的数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL的数据类型
每种列类型都有几个特性如下: • 其中可以存放什么类型的值。 • 值要占据多少空间,以及该值是否是定长的 (所有值占相同数量的空间)或可变长的(所 占空间量依赖于所存储的值)。 • 该类型的值怎样比较和存储。 • 此类型是否允许 NULL 值。 • 此类型是否可以索引。
MySQL的数据类型
1.数字
• 数字类型用于存储数字,可分为整数类型和浮 点数(小数)类型。如果仅从数学的角度上分 析,整数和小数都可以统一为小数,整数只是 小数位为零的小数,但在 MySQL 中这两数据 类型的保存方式却有很大的不同。 • 一般而言,能使用整数保存的数据,就尽量选 择使用整数类型。比如,要保存商品的价格时, 可能会因为一个笔记本的价格是3.20元而为这 个数据选择浮点数类型,但更好的选择却是将 3.20元变换成320分后以整数方式保存。
课程目标
ห้องสมุดไป่ตู้
数字类型
字符串类型 日期时间类型 选择正确的数据类型
MySQL的数据类型
• MySQL 的数据类型是一种手段,通过这 种手段可以描述一个表列包含什么类型 的值,这又决定了 MySQL 怎样处理这 些值。 • 例如,数值值既可用数值也可用串的数 据类型来存放,但是根据存放这些值的 类型, MySQL 对它们的处理将会有些 不同。
1.1 整数
• 默认情况下MySQL会用空格作为填充符 进行填充,但“显示长度”通常会与 ZEROFILL属性连用,表示MySQL使用 “0”作为填充符。 • 我们应该尽量避免数字的实际长度超过 其显示长度,出现这种情况时不仅仅是 使表中的记录看起来不协调,还会在进 行某些复杂的表联结操作时出错。
1.2 浮点数
• FLOAT(二进制位数) • 这是一个混合了FLOAT和DOUBLE两种 类型的数据类型,其中“二进制位数” 代表表示该浮点数所占用的二进制位数, 这个参数唯一的作用就是使MySQL确定 该使用FLOAT型还是DOUBLE型来作为 实际的数据类型。
1.2 浮点数
FLOAT型
FLOAT类型有两种使用方法: • FLOAT(有效位数,小数位数) • FLOAT(二进制位数)。
1.2 浮点数
• FLOAT(有效位数,小数位数) • 此类型又称为单精度浮点数类型,占用4 字节长度,取值范围是: -3.402823466E+38到3.402823466E+38,最 小正数是1.175494351E-38,最大负数是1.175494351E-38。 • 以上列出的只是理论值,不同计算机的 硬件可能会使这一范围有所不同。
2.数字12345保存方法
不同数据类型的保存方法
MySQL的数据类型
数据保存的格式不同,读取这些数据时进行的操 作当然也就不同,因此数据库在存储数据之前 都必须要明确数据的格式,也就是数据的数据 类型。 如果不知道某一个数据存储时所使用的数据类型, 就无法正确的读出该数据来,因为使用不同的 数据格式去读去同一个数据时,得到的结果也 是截然不同的。
1.2 浮点数
• 浮点数可以理解为我们通常所说的小数, MySQL提供三种浮点类型:FLOAT、 DOUBLE和DECIMAL。 • 浮点数类型的取值范围与整型不同,除 了有最大值和最小值外,浮点数类型还 有最小正数和最大负数,这两个值的绝 对值相等,用于衡量浮点数的精度,这 对于记录科学数据来说是非常重要的。
1.数字
• 数 字 类 型 可 以 结 合 UNSIGNED 及 ZEROFILL 符号使用, UNSIGNED 表示 无符号数字, ZEROFILL 表示使用“ 0” 作为填充符进行填充。
1.1 整数
• 整数在MySQL中保存时,MySQL会将其转换 成二进制编码的形式直接保存。 • 整数可以直接以十六进制表示,方法为在整数 对应的十六进制编码(“0”到“9”及“a”到 “f”)前加上“0x”。例如,0x0a为十进制的10, 而0xffff为十进制的65535。十六进制数字不区 分大小写,但其前缀“0x”不能为“0X”。即 0x0a和0x0A都是合法的,但0X0a和0X0A不是 合法的。
0 ┈ 28-1 0 ┈ 216-1 0 ┈ 224-1 0 ┈ 232-1 0 ┈ 264-1
1.1 整数
• 在指定整数类型时,可以采用“类型名[显示长 度]”的写法,如int[3],其中“显示长度”用于 指定数字在显示时的长度,“显示长度”对数 据的大小范围没有影响。当数字的实际长度比 显示长度要小时, MySQL 显示该数字时会自 动使用填充符补足指定的“显示长度”;当数 字的实际长度比显示长度大时, MySQL 会突 破显示长度的限制而显示数字的实际值。
1.数字
• MySQL 支持科学表示法,由整数或浮点 数后跟“ e”或“E”、一个符号(“+”或 “-”)和一个整数指数来表示。1.34E+12 和 43.27e-1 都是合法的科学表示法表示 的数。而1.34E12 不是合法的,因为指数 前的符号未给出。指数前的“ e”也是一 个合法的十六进制数字,因此有可能会 弄错。数值前可放一个负号“ -” 以表示 负值。
1.1 整数
取值范围
类型名
字节数
无符号(unsigned) 有符号(signed) -27 ┈ 27-1 -215 ┈ 215-1 -223 ┈ 223-1 -231 ┈ 231-1 -263 ┈ 263-1
TINYINT SMALLINT MEDIUMINT INT BIGINT
1 2 3 4 8
字符“1”编 码 00110001
共计 占用 5个 字节 存储 空间
字符“2”编 码
字符“3”编 码 字符“4”编 码
00110010
00110011 00110100
共计 占用 2个 字节 存储 空间
00110000 数字12345 的二进制 编码 00111001
字符“5”编 00110101 码 1.字符串“12345”保存方法
1.2 浮点数
• 其中,“有效位数”表示有效数字的最大位数; “小数位数”表示小数点后的最大位数。如果 “有效位数”和“小数位数”都省略,其默认 值会因硬件不同而有所不同,单精度浮点数可 精确到小数点后第7位。 • FLOAT类型表示小数部分时,由于二进制的 原因只能准确的表示1/2n(n不大于表示小数 位的二进制位数),或它们的组合,因此在表 示小数时会有不精确的现象。