MySQL常用数据类型及其示例

MySQL是一种常用的关系型数据库管理系统,它支持多种数据类型,用于存储和处理不同类型的数据。本文将介绍MySQL中常用的数据类型,并提供相应的代码示例。

数据类型分类

MySQL中的数据类型可以分为数值型、日期和时间型、字符串型、二进制型和其他类型等。下面是常用数据类型的一些示例:

数值型:

数据类型 说明
INT 整数类型,用于存储整数数据
BIGINT 大整数类型,用于存储更大范围的整数数据
FLOAT 单精度浮点数类型,用于存储小数数据
DOUBLE 双精度浮点数类型,用于存储更大范围的小数数据

日期和时间型:

数据类型 说明
DATE 日期类型,用于存储年、月、日数据
TIME 时间类型,用于存储小时、分钟、秒数据
DATETIME 日期时间类型,用于存储年、月、日、小时、分钟、秒数据
TIMESTAMP 时间戳类型,用于存储时间戳数据

字符串型:

数据类型 说明
CHAR 字符串类型,定长字符串,长度固定
VARCHAR 字符串类型,变长字符串,长度可变
TEXT 文本类型,用于存储较长的字符串数据
ENUM 枚举类型,用于存储预定义的字符串值

二进制型:

数据类型 说明
BINARY 二进制类型,存储定长的二进制数据
VARBINARY 二进制类型,存储变长的二进制数据
BLOB 二进制大对象类型,存储较长的二进制数据

其他类型:

数据类型 说明
BOOLEAN 布尔类型,用于存储真或假值
JSON JSON类型,用于存储JSON格式的数据
AUTO_INCREMENT 自增类型,用于自动生成唯一标识符

示例代码

下面是一些常见数据类型的示例代码:

-- 创建表,定义数据类型为整数
CREATE TABLE students (
  id INT,
  name VARCHAR(50)
);

-- 创建表,定义数据类型为日期
CREATE TABLE orders (
  id INT,
  order_date DATE
);

-- 创建表,定义数据类型为字符串
CREATE TABLE products (
  id INT,
  name VARCHAR(100),
  description TEXT
);

-- 创建表,定义数据类型为布尔值
CREATE TABLE users (
  id INT,
  username VARCHAR(50),
  is_admin BOOLEAN
);

以上代码演示了如何使用不同的数据类型在MySQL中创建表。

类图

下面是一个使用mermaid语法绘制的MySQL数据类型类图:

classDiagram
    class Number {
        -value: Number
    }

    class Integer {
        -value: Integer
    }

    class BigInt {
        -value: BigInt
    }

    class Float {
        -value: Float
    }

    class Double {
        -value: Double
    }

    class DateTime {
        -value: DateTime
    }

    class Date {
        -value: Date
    }

    class Time {
        -value: Time
    }

    class String {
        -value: String
    }

    class Char {
        -value: Char
    }

    class Varchar {
        -value: Varchar
    }

    class Text {
        -value: Text
    }

    class Enum {
        -value: Enum
    }

    class Binary {
        -value: Binary
    }

    class Varbinary {
        -value: Varbinary
    }

    class Blob {
        -value: Blob
    }
    
    class Boolean {
        -value: Boolean
    }

    class JSON {
        -value: JSON
    }

    class AutoIncrement {
        -value: AutoIncrement
    }

    Number <|-- Integer
    Number <|-- BigInt
    Number <|-- Float
    Number <|-- Double
    DateTime <-- Date
    DateTime <-- Time
    DateTime <|-- Timestamp
    String <|-- Char
    String <|--