![]() |
坏坏的铁板烧 · GRPC 性能最佳做法 | ...· 2 天前 · |
![]() |
一身肌肉的烈马 · c++ - What is ...· 1 年前 · |
![]() |
强健的沙发 · vba获取文件名及路径-掘金· 1 年前 · |
![]() |
大力的牛肉面 · 深入理解MySQL执行过程及执行顺序-mys ...· 1 年前 · |
![]() |
曾深爱过的大白菜 · fragmentpageradapter ...· 1 年前 · |
4.1 MySQL 数据类型介绍
4.1.1 整数类型
TINYINT1字节
SMALLINT2字节
MEDIUMINT3字节
INT4字节
INTEGER4字节
BIGINT8字节
4.1.2 浮点数类型和定点数类型
FLOAT4字节
DOUBLE8字节
DECIMAL(M,D)M+2字节
MySQL可以指定浮点数和定点数的精度,基本形式:
数据类型 (M, D)
M参数称为精度,是数据的总长度;D 参数称为标度,小数点后的长度为D。
默认精度:FLOAT、DOUBLE 型默认保留实际精度,DECIMAL 型默认整数位为10,小数位为0,即默认为整数。
4.1.3 日期与时间类型
YEAR1字节
DATE4字节
TIME3字节
DATETIME8字节
TIMESTAMP4字节
1、YEAR 类型
使用四位字符串或数字表示,MySQL 以 YYYY 的形式显示,范围从 1901 ~ 2155。
使用两位字符串表示,‘00’ ~ ‘69’ 转换为 2000~2069,‘70’ ~ ‘99’ 转换为 1970 ~ 1999。
使用两位数字表示,1 ~ 69 转换为 2001 ~ 2069,70 ~ 99 转换为 1970 ~ 1999, 0 转化为 0000。
2、TIME 类型
MySQL 中以 HH:MM:SS 的形式显示 TIME 类型的值。TIME 类型范围从 ’-838:59:59‘ ~ ’838:59:59'
使用 ‘D HH:MM;SS' 格式的字符串表示。D 表示天数,取值范围 0 ~ 34 ,保存时小时的值等于 (D*24+HH)。可以不严格,也可以是 'HH:MM:SS'、'HH:MM'、'D HH:MM'、'D HH'、'SS' 等形式。
使用 ’HHMMSS‘ 格式的字符串或者 HHMMSS 格式的数值表示。
使用 CURRENT_TIME 或者 NOW() 输入当前系统时间。
3、DATE 类型
MySQL 中以 YYYY-MM-DD 显示,范围从 '1000-01-01' ~ '9999-12-31'。
使用 ’YYYY-MM-DD' 或者 'YYYYMMDD' 格式的字符串表示。任何标点都可以用来做间隔符。
使用 ‘YY-MM-DD' 或者 'YYMMDD' 格式的字符串表示,转换方法同 TIME 类型。
使用 YYYYMMDD 或 YYMMDD 格式的数字表示。
使用 CURRENT_DATE 和 NOW() 来输入当前系统日期。
4、DATETIME 类型
MySQL 中以 ‘YYYY-MM-DD HH:MM:SS' 的形式显示 DATETIME 类型。范围为 DATE+TIME 的范围。
使用 'YYYY-MM-DD HH:MM:SS'、'YYYYMMDDHHMMSS'、'YY-MM-DD HH:MM:SS'、'YYMMDDHHMMSS'、YYYYMMDDHHMMSS、YYMMDDHHMMSS 格式的字符串、数字表示。
使用 NOW() 来输入当前系统日期和时间。
5、TIMESTAMP 类型
MySQL中也是以 ‘YYYY-MM-DD HH:MM:SS' 形式显示 TIMESTAMP 类型。范围从 1970-01-01 08:00:01 ~ 2038-01-19 11:14:07。
TIMESTAMP 类型范围较小,使用与 DATETIME 一样的赋值方式。与 DATETIME 的不同点:
(1) 使用 CURRENT_TIMESTAMP 来输入系统当前日期与时间。
(2) 输入 NULL 时,系统会输入系统当前日期与时间。
(3) 无任何输入时,系统会输入系统当前日期与时间。
TIMESTAMP 时间根据时区显示。
4.1.4 字符串类型
1、CHAR 类型和 VARCHAR 类型
CHAR 类型和 VARCHAR 类型都是在创建表时指定了最大长度,其基本形式如下:
字符串类型(M)
M 参数指定了该字符串的最大长度为 M。CHAR 类型的长度是固定的,长度范围 0~255,VARCHAR 类型的长度时可变的,最大值可以是 0~65535 之间任意值,实际占用空间为字符串的实际长度加1,可以有效地节约系统空间。
2、TEXT 类型
TEXT 类型只能保存字符数据。
TINETEXT0~255 字节
TEXT0~65535 字节
3、ENUM 类型
又称枚举类型,创建表示,ENUM 类型的取值范围就以列表的形式指定了,其基本形式如下:
属性名 ENUM('值1’, '值2', ...'值n')
ENUM 类型的值只能取列表中的一个元素。列表中最多 65535 个值,每个值都有一个顺序排列的编号,MySQL 中存入的是这个编号,而不是列表中的值。
如果 ENUM 类型加上 NOT NULL 属性,其默认值为取值列表的第一个元素;如果不加,ENUM 类型将允许插入 NULL,而且 NULL 为默认值。
4、SET 类型
在创建表时,SET 类型的取值范围就以列表的形式指定了。其基本形式如下:
属性名 SET('值1', '值2', ...'值n')
SET 类型的值可以取列表中的一个或多个元素的组合,以逗号隔开。SET 类型的值最多只能是64个元素的组合。同 ENUM 类型一样,列表中的每个值都有一个顺序排列的编号。MySQL 中存入的是这个编号。插入记录是,元素顺序无关紧要,存入 MySQL 数据库后,数据库系统会自动按照定义时的顺序显示。
4.1.5 二进制类型
BINARY(M)字节数M
VARBINARY(M)允许长度 0~M 的变长二进制字符串
BIT(M)M位二进制数据
TINYBLOB可变长二进制数据,最多255字节
BLOB可变长二进制数据,最多 2^16-1 个字节
MEDIUMBLOB可变长二进制数据,最多 2^24-1 个字节
LONGBLOB可变长二进制数据,最多 2^32-1 个字节
1、BINARY 和 VARBINARY 类型
同 CHAR 和VARCHAR 类型。
2、BIT 类型
查询 BIT 类型的数据时,要用 BIN(字段名+0) 来将值转换为二进制显示。
3、BLOB 类型
特殊的二进制类型,可以用来保存数据量很大的二进制数据。
4.2 如何选择数据类型
略
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
![]() |
强健的沙发 · vba获取文件名及路径-掘金 1 年前 |