)
前言数据类型是数据库设计的基础直接影响数据存储和查询性能。合理选择数据类型可以提高效率节省空间并确保数据准确性。本文将介绍SQL中常见的数据类型及其使用方法并通过实例代码帮助开发者理解如何在实际项目中选择合适的数据类型。* * 这里是的BLOG 想要了解更多内容可以访问我的主页-CSDN博客在正式开始讲解之前先让我们看一下本文大致的讲解内容目录1.数据类型在数据库中的作用及分类???1数据类型在数据库中的作用? ? ? ? 2数据类型的分类2.数据值类型3.字符串类型4.日期类型*1.数据类型在数据库中的作用及分类-----------------### 1数据类型在数据库中的作用数据类型是数据库定义字段属性的核心概念它决定了一个字段所能存储的数据形式比如整数、字符串、日期等在实际开发中合适的数据类型选择可以解决以下几个问题 1.存储效率合理分配字段的存储大小避免浪费。 2.数据准确性确保字段只能存储符合业务逻辑的数据例如用户年龄为正整数。 3.查询性能优化查询速度减少不必要的计算和转换。例如在构建用户表时用户ID一般使用大范围的整数类型而描述信息则适合大文本类型。### 2数据类型的分类在Mysql中我们根据字段的存储需求通常可以将数据类型可以分为以下三类 1.数据值类型适用于存储整数和浮点数。 2.字符串类型用于存储文本数据。 3.日期类型专门用于处理时间和日期数据。通过上述的三类数据类型我们就可以描述所以我们所需信息的内容了2.数据值类型-------通过上述的学习我们就已经了解了数据类型在数据库中的作用及分类了那么现在让我们正式的开始学习以下Mysql中的数据类型吧首先先让我们看一下数据值类型。数据值类型是用于存储数值的字段类型包括整数、小数和浮点数等。选择具体类型时需要综合考虑数值范围和精度需求。例如 *整数类型用于存储不带小数的数值如用户ID、订单号等。 *小数类型用于需要精确存储的场景如金融计算以下是常见的数据值类型及其特点数据类型字节大小有符号范围无符号范围TINYINT1 byte-128 ~ 1270 ~ 255SMALLINT2 bytes-32,768 ~ 32,7670 ~ 65,535MEDIUMINT3 bytes-8,388,608 ~ 8,388,6070 ~ 16,777,215INT4 bytes-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295BIGINT8 bytes-2^63 ~ 2^63-10 ~ 2^64-1FLOAT4 bytes单精度浮点数约7位有效数字DOUBLE8 bytes双精度浮点数约15位有效数字DECIMAL动态精确存储小数无精度损失我们在使用每个数据类型的时候可以在其后面添加一个参数表明其开辟的大小例如INT10表明目标变量的大小为10个INT及40个字节大小。当然这里我们特别的对FLOAT、DOUBLE、DECIMAL进行说明1. FLOATMD单精度浮点型其有两个指定的参数M是总位数D是小数点后面的位数大约可以精确到小数点后7位。 2. DOUBLEMD双精度浮点型其有两个指定的参数M是总位数D是小数点后面的位数大约可以精确到小数点后15位。 3. DECIMALMD不存在精度损失M是总位数D是小数点后的位数DECIMAL的最大位数(M)为65最大小数位数(D)为30,如果省略M则默认为10如果省略D则默认为0M中不计算小数点和负数的-号如果D为0则值没有小数点和小数部分.初步了解了上述的数据值类型之后现在让我们看一个在创建表时定义数据值类型的案例 CREATE TABLE 数值类型示例 ( 用户ID TINYINT UNSIGNED COMMENT ‘用户的唯一标识’, 年龄 SMALLINT COMMENT ‘用户年龄范围为0到65,535’, 工资 DECIMAL(10, 2) COMMENT ‘用户的薪资保留两位小数’ );代码解释 1.TINYINT UNSIGNED用于存储用户ID值范围为0到255。 2.SMALLINT表示年龄字段能够容纳较大范围的整数。 3.DECIMAL(10, 2)适用于存储金额等需要精确到小数点的数值。至此我们就大致的了解了MySQL中的数据值类型了3.字符串类型-------在了解完了数据值类型之后在让我们看一下字符串类型字符串类型是用于存储文本数据的字段类型它包括固定长度和可变长度两种主要形式此外还支持存储大文本数据和枚举类型。****以下是常见字符串类型数据类型特点使用场景CHAR(M)固定长度字符串存储效率高身份证号、MD5值等固定长度数据VARCHAR(M)可变长度字符串节省存储空间用户名、地址等长度不固定的数据TEXT大文本类型适合存储长字符串博客内容、评论等大文本ENUM枚举类型用于存储有限值性别、状态等固定选项SET集合类型支持存储多个选项的组合用户权限、兴趣标签等当然从上面的讲解中读者可能会对CHAR 和 VARCHAR 产生一些混淆这里我们对其进行详细讲解一下CHAR 和 VARCHAR 的区别特性CHARVARCHAR存储效率固定长度存储效率高根据数据长度动态调整存储效率空间占用固定空间占用更多磁盘更节省磁盘空间使用场景身份证号、MD5值等定长数据名字、地址等长度不固定的数据当然为了使读者能更好的进行理解这里我们给出一个案例 CREATE TABLE 字符串类型示例 ( 用户名 VARCHAR(50) COMMENT ‘用户的登录名’, 密码 CHAR(32) COMMENT ‘用户密码的加密值’, 描述 TEXT COMMENT ‘用户的详细描述’ );代码解释 1.VARCHAR(50)表示用户名字段最大长度为50个字符。 2.CHAR(32)用于存储加密后的密码长度固定为32个字符。 3.TEXT适用于存储用户的详细描述支持较长文本。这样我们就大致的了解了字符串类型了4.日期类型------了解完了数据值类型和字符串类型之后在让我们了解一下日期类型日期类型主要用于存储时间和日期相关的数据它不仅可以节省存储空间还能通过内置的时间函数简化日期计算。****以下为常见的日期类型数据类型字节大小格式使用场景DATE3 bytesYYYY-MM-DD出生日期、节假日等日期信息TIME3 bytesHH:MM:SS打卡时间、时长等时间信息DATETIME8 bytesYYYY-MM-DD HH:MM:SS订单时间、事件时间等综合数据TIMESTAMP4 bytes时间戳数据创建时间或修改时间当然我们也去使用一个案例来进行加深对上述讲解的理解 CREATE TABLE 日期类型示例 ( 创建日期 DATE COMMENT ‘记录数据的创建日期’, 更新时间 DATETIME COMMENT ‘记录数据的最近更新时间’, 时间戳 TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT ‘自动记录数据修改时间’ );代码解释 1.DATE适合记录仅包含日期的字段如数据创建时间。 2.DATETIME可以同时存储日期和时间用于更精确的时间记录。 3.TIMESTAMP自动记录数据的创建或修改时间便于审计。通过上述的讲解我们就了解日期类型了* *以上就是本篇文章的全部内容了~~~