MySQL中的数据类型


在这里插入图片描述

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `user_name` varchar(30) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号',
  `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码',
  `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',
  `email` varchar(50) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户邮箱',
  `phonenumber` varchar(11) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '手机号码',
  `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
  `create_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户信息表';

MySQL 支持多种数据类型,用于存储不同类型的值。根据数据的性质,数据类型可以分为数值类型、日期和时间类型、字符串类型等。以下是MySQL中常用的数据类型:

数值类型

数值类型用于存储整数、浮点数和定点数。

整数类型
  • TINYINT:一个非常小的整数,存储范围为 -128 到 127(有符号)或 0 到 255(无符号)。
  • SMALLINT:一个小整数,存储范围为 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)。
  • MEDIUMINT:一个中等大小的整数,存储范围为 -8,388,608 到 8,388,607(有符号)或 0 到 16,777,215(无符号)。
  • INT(或 INTEGER):一个标准的整数,存储范围为 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)。
  • BIGINT:一个大的整数,存储范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(有符号)或 0 到 18,446,744,073,709,551,615(无符号)。
浮点数类型
  • FLOAT:单精度浮点数。
  • DOUBLE(或 REAL):双精度浮点数。
定点数类型
  • DECIMAL(或 NUMERIC):用于存储精确的小数值。适用于财务计算。

日期和时间类型

日期和时间类型用于存储日期和时间值。

  • DATE:日期值,格式为 ‘YYYY-MM-DD’。
  • TIME:时间值,格式为 ‘HH:MM:SS’。
  • DATETIME:日期和时间值,格式为 ‘YYYY-MM-DD HH:MM:SS’。
  • TIMESTAMP:时间戳,记录从 ‘1970-01-01 00:00:01’ 到 ‘2038-01-19 03:14:07’ 之间的时间。
  • YEAR:年份值,格式为 ‘YYYY’。

字符串类型

字符串类型用于存储字符数据。

定长字符串
  • CHAR(M):固定长度的字符串,最大长度为 255 个字符。
变长字符串
  • VARCHAR(M):可变长度的字符串,最大长度为 65,535 个字符。
文本类型
  • TINYTEXT:非常小的文本,最大长度为 255 个字符。
  • TEXT:小文本,最大长度为 65,535 个字符。
  • MEDIUMTEXT:中等大小的文本,最大长度为 16,777,215 个字符。
  • LONGTEXT:大的文本,最大长度为 4,294,967,295 个字符。
二进制类型
  • BINARY(M):定长的二进制数据。
  • VARBINARY(M):可变长度的二进制数据。
  • TINYBLOB:非常小的二进制数据。
  • BLOB:小的二进制数据。
  • MEDIUMBLOB:中等大小的二进制数据。
  • LONGBLOB:大的二进制数据。

枚举和集合类型

  • ENUM:枚举类型,存储一个枚举值。
  • SET:集合类型,存储一个或多个集合成员。

选择标准

在MySQL中,选择适当的数据类型和长度是非常重要的,因为它直接影响到数据的存储效率、查询性能以及应用程序的正确性。以下是一些选择标准和常见数据类型的长度限制:

  1. 数据范围: 根据数据的范围选择合适的数据类型。例如,如果数据是年龄,那么可以选择TINYINT,因为年龄通常不会超过127(对于有符号的TINYINT)。

  2. 精度: 如果需要**存储小数点后的数字,应选择DECIMAL**或FLOAT/DOUBLE,并指定所需的精度和小数位数。

  3. 字符集: 如果你的数据包含特殊字符或非英文字符,确保选择支持这些字符的数据类型,如VARCHARTEXT

  4. 空间需求: 考虑数据的实际大小和预期的增长。例如,如果一个字段可能存储大量的文本,那么使用TEXTMEDIUMTEXT可能更合适。

  5. 索引: 某些数据类型不支持索引,因此需要考虑是否需要对这些字段进行搜索或排序。

  6. 兼容性: 确保所选数据类型与你的应用程序或其他系统兼容。

在选择数据类型时,请根据实际需求和上述准则进行权衡。

示例

CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    birth_date DATE,
    salary DECIMAL(10, 2),
    is_active BOOLEAN DEFAULT TRUE
);

通过选择合适的数据类型,可以优化存储和查询性能。了解这些数据类型及其特性,能够更好地设计数据库结构,满足不同应用场景的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rsun04551

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值