最全mysql数据类型梳理汇总

yizhihongxing

最全MySQL数据类型梳理汇总

MySQL是目前最流行的关系型数据库之一,MySQL支持的数据类型非常丰富,本篇攻略将从以下几个方面详细讲解MySQL的数据类型:

  • 数据类型分类
  • 整数类型
  • 小数类型
  • 日期和时间类型
  • 字符串类型
  • 二进制数据类型
  • 枚举类型和集合类型

在本篇攻略中,我们将对每一种数据类型进行详细的讲解并提供示例说明,以帮助读者更好地了解MySQL的数据类型。

数据类型分类

MySQL的数据类型可以分为以下几类:

  • 整数类型
  • 小数类型
  • 日期和时间类型
  • 字符串类型
  • 二进制数据类型
  • 枚举类型和集合类型

每一种数据类型都有其特定的存储方式、取值范围、默认值等属性,下面将对每一种数据类型进行详细讲解。

整数类型

MySQL支持的整数类型有以下几种:

  • TINYINT: 占用1字节,取值范围为-128~127或0~255。
  • SMALLINT: 占用2字节,取值范围为-32768~32767或0~65535。
  • MEDIUMINT: 占用3字节,取值范围为-8388608~8388607或0~16777215。
  • INT或INTEGER: 占用4字节,取值范围为-2147483648~2147483647或0~4294967295。
  • BIGINT: 占用8字节,取值范围为-9223372036854775808~9223372036854775807或0~18446744073709551615。

下面是一条创建表格时使用整数类型的示例SQL语句:

CREATE TABLE user (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  age TINYINT(3) UNSIGNED DEFAULT 0,
  salary BIGINT(20) NOT NULL DEFAULT 0
);

小数类型

MySQL支持的小数类型有以下几种:

  • FLOAT: 单精度浮点数,占用4字节,取值范围为-3.402823466E+38~3.402823466E+38。
  • DOUBLE或REAL: 双精度浮点数,占用8字节,取值范围为-1.7976931348623157E+308~1.7976931348623157E+308。
  • DECIMAL或NUMERIC: 定点数,可指定精度,例如DECIMAL(5,2)表示占用5字节,小数点后有2位。

下面是一条创建表格时使用小数类型的示例SQL语句:

CREATE TABLE product (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  price FLOAT(6, 2) DEFAULT 0.00,
  discount DECIMAL(10, 2) NOT NULL DEFAULT 1.00
);

日期和时间类型

MySQL支持的日期和时间类型有以下几种:

  • DATE: 格式为YYYY-MM-DD,范围为'1000-01-01'~'9999-12-31'。
  • TIME: 格式为HH:MM:SS,范围为'-838:59:59'~'838:59:59'。
  • DATETIME: 格式为YYYY-MM-DD HH:MM:SS,范围为'1000-01-01 00:00:00'~'9999-12-31 23:59:59'。
  • TIMESTAMP: 格式与DATETIME相同,范围为'1970-01-01 00:00:01'~'2038-01-19 03:14:07'。
  • YEAR: 格式为YYYY或YY,范围为1901~2155或70~69。

下面是一条创建表格时使用日期和时间类型的示例SQL语句:

CREATE TABLE order (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  order_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

字符串类型

MySQL支持的字符串类型有以下几种:

  • CHAR: 定长字符串,占用固定字节数,最大长度为255个字符。
  • VARCHAR: 变长字符串,占用实际长度+1字节,最大长度为65535个字符。
  • TINYTEXT: 占用1字节,最大长度为255个字符。
  • TEXT: 占用2字节,最大长度为65535个字符。
  • MEDIUMTEXT: 占用3字节,最大长度为16777215个字符。
  • LONGTEXT: 占用4字节,最大长度为4294967295个字符。

下面是一条创建表格时使用字符串类型的示例SQL语句:

CREATE TABLE message (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(100) DEFAULT '',
  content TEXT not null
);

二进制数据类型

MySQL支持的二进制数据类型有以下几种:

  • BINARY: 定长二进制数据,占用固定字节数,最大长度为255字节。
  • VARBINARY: 变长二进制数据,占用实际长度+1字节,最大长度为65535字节。
  • TINYBLOB: 占用1字节,最大长度为255字节。
  • BLOB: 占用2字节,最大长度为65535字节。
  • MEDIUMBLOB: 占用3字节,最大长度为16777215字节。
  • LONGBLOB: 占用4字节,最大长度为4294967295字节。

下面是一条创建表格时使用二进制数据类型的示例SQL语句:

CREATE TABLE image (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100) DEFAULT '',
  data LONGBLOB not null
);

枚举类型和集合类型

MySQL支持的枚举类型和集合类型有以下几种:

  • ENUM: 枚举类型,可存储多个值,每个值用单引号括起来,值之间用逗号分隔,最大长度为65535字节。
  • SET: 集合类型,可存储多个值,每个值用单引号括起来,值之间用逗号分隔,最大长度为64字节。

下面是一条创建表格时使用枚举类型和集合类型的示例SQL语句:

CREATE TABLE info (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  sex ENUM('male', 'female') not null,
  interest SET('sports', 'reading', 'music') not null
);

总结

通过本篇攻略,我们详细讲解了MySQL的各种数据类型以及其使用方法和示例。不同的数据类型适用于不同的业务场景,希望读者能在实际开发中选择合适的数据类型,提高数据库的性能和稳定性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:最全mysql数据类型梳理汇总 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • DBMS 中的函数依赖

    DBMS中的函数依赖(Functional Dependence)是数据库设计中的一个非常重要的概念。实际上,在数据库设计的各个阶段中,函数依赖都有着很重要的作用。下面就详细讲解一下函数依赖的概念、分类、表示方法以及实例说明。 概念 函数依赖是数据库设计中的一个概念,是指在一个关系中,某些属性的值能够确定另外一些属性的值。 举个例子,我们有一张员工表(Emp…

    database 2023年3月27日
    00
  • 文件系统和 DBMS 的区别

    文件系统和DBMS都是用来存储数据的技术,但它们有着显著的区别。 文件系统和DBMS的概述 文件系统 文件系统是操作系统用来管理文件的一种机制。文件系统将文件组合成目录,并提供了一种管理文件的方法。文件系统中使用的一些主要技术是: 文件组织:这通常是一个层次结构,其中最高层是根目录,下面是子目录和文件。 文件访问方式:文件可以被读取、写入、创建和删除。每个文…

    database 2023年3月27日
    00
  • Mybatis批量修改联合主键数据的两种方法

    Mybatis批量修改联合主键数据的两种方法 如果我们要批量修改Mybatis中的联合主键数据,那么我们需要采用一些特殊的方法,本文将介绍两种方法。 方法一:使用foreach标签 我们可以使用Mybatis的foreach标签来批量修改联合主键数据。 <update id="updateBatch" parameterType=&…

    database 2023年5月22日
    00
  • Ubuntu Server 16.04 LTS 上安装 LAMP图解教程

    下面是完整的Ubuntu Server 16.04 LTS 上安装 LAMP图解教程。 1. 更新软件包列表 在终端执行以下命令: sudo apt-get update 2. 安装 Apache 服务器 在终端执行以下命令: sudo apt-get install apache2 安装完成后,你可以通过以下命令检查是否成功启动 Apache 服务器: s…

    database 2023年5月22日
    00
  • PHP中全面阻止SQL注入式攻击分析小结

    下面我将为您详细讲解“PHP中全面阻止SQL注入式攻击分析小结”的完整攻略。 什么是SQL注入? SQL注入(SQL Injection)指的是攻击者通过在Web应用程序中的输入窗体等输入区域输入SQL语句的一种攻击方式,从而使SQL语句执行,进而访问、修改或删除数据。 PHP中如何全面阻止SQL注入? 使用预处理语句 预处理语句是一种在数据库中预先定义好S…

    database 2023年5月22日
    00
  • Linux内核启动参数详解

    Linux内核启动参数详解 作为Linux操作系统最为基础的核心,内核启动参数是我们深入系统了解与优化的必要途径。本篇文章将对Linux内核启动参数进行详细分析,力图让读者对内核启动参数有更全面的了解。 什么是内核启动参数 内核启动参数是在Linux操作系统启动时由bootloader(例如Grub)传递给内核的一组参数。这些参数用于控制内核启动过程中的各种…

    database 2023年5月22日
    00
  • RedisClient 连接redis 提示 ERR Client sent AUTH, but no password is set

    使用redisclient连接redis出现上图的错误 在配置中已经找到requirepass修改了密码,但是还是出现上图错误。在网上找了资料在dos设置 出现上图红框中的错误,研究了半天也没有解决。后来将配置中的requirepass重新注释掉,在重新配置就可以了。     参考文章 http://www.cnblogs.com/robinli/p/926…

    Redis 2023年4月13日
    00
  • 如何使用Python实现数据库中数据的批量删除?

    以下是使用Python实现数据库中数据的批量删除的完整攻略。 数据库中数据的批量删除简介 在数据库中,批量删除是一次性删除多条记录。在Python中,可以使用pymysql连接MySQL数据库,并使用DELETE语句实现批量删除。 步骤1:连接数据库 在Python中,可以使用pymysql连接MySQL数据库。以下是连接到MySQL的基本语法: impor…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部