mysql数据库的数据类型 -- 4


数据类型

4.1:数据类型的分类

数值类型 描述 TINYINT [UNSIGNED] 整数,占用1字节 SMALLINT [UNSIGNED] 整数,占用2字节 INT [UNSIGNED] 整数,占用4字节 BIGINT [UNSIGNED] 整数,占用8字节 FLOAT [(M, D)] [UNSIGNED] 单精度浮点数,占4字节,m表示长度,d为小数点位数 DOUBLE [(M, D)] [UNSIGNED] 双精度浮点数,占8字节,m表示长度,d为小数点位数 DECIMAL [(M, D)] [UNSIGNED] 固定精度浮点数,m表示长度,d为小数点位数
字符串类型 描述 CHAR(n) 定长字符串,最大长度为 n,最大为255 VARCHAR(n) 可变长度字符串,最大长度为 n,最大为65535 TEXT 长文本字符串
日期和时间类型 描述 DATE 日期值,格式为 YYYY-MM-DD TIME 时间值,格式为 HH:MM:SS YEAR 年,格式 YYYY DATETIME 日期和时间值,格式为 YYYY-MM-DD HH:MM:SS TIMESTAMP 时间戳,记录的是从 1970 年 1 月 1 日起经过的秒数
布尔类型 描述 BOOLEAN 布尔值,存储 TRUE 或 FALSE
其他类型 描述 ENUM 枚举值,存储一个预定义的字符串列表中的一个值 SET 集合值,存储一个预定义的字符串列表中的多个值 BINARY 二进制数据 VARBINARY(n) 可变长度的二进制数据,最大长度为 n BLOB 二进制大对象,用于存储大量的二进制数据 JSON 存储和处理 JSON 格式的数据

4.2:数值类型

4.2.1:整数类型

说明:

1、在mysql中,当我们插入的值超过类型值时候,不会像有些语言一样会发送截断,而会直接插入失败 2、在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 3、可以通过UNSIGNED来说明某个字段是无符号的

4.2.2:小数类型

说明:

1、在小数类型中,假如长度溢出,不会报错,而是会进行四舍五入(在不同的数据库版本中表现形式可能会不一样)

4.3:字符类型

说明:

1、char(n)中的n表示的是字符数,不是字节数,所以字母和汉字都可以放n个

2、varchar(n)中的n表示的是字节数,不同的编码格式字节数是不一样的(varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532)

4.4:日期和时间类型

常用的日期有如下三个:

date :日期 yyyy-mm-dd ,占用三字节

datetime 时间日期格式 yyyy-mm-dd HH:ii:ss 表示范围从 1000 到 9999 ,占用八字节

timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用 四字节

4.5:enum和set类型

在 MySQL 中,ENUM 和 SET 是用于存储一组预定义值的特殊数据类型。

1. ENUM 类型:

描述:ENUM 类型用于存储从预定义选项中选择的单个值。

示例:

CREATE TABLE colors ( id INT AUTO_INCREMENT PRIMARY KEY, color ENUM(Red, Green, Blue, Yellow) );

用途:适用于存储具有固定选项的数据,如颜色选项、状态选项等。

2. SET 类型: 描述:SET 类型用于存储从预定义选项中选择的多个值。

示例:

CREATE TABLE hobbies ( id INT AUTO_INCREMENT PRIMARY KEY, hobby SET(Reading, Sports, Travel, Music) );

用途:适用于存储具有多个可能选项的数据,如兴趣爱好、权限设置等。

经验分享 程序员 微信小程序 职场和发展