【MySQL】MySQL数据类型详解及代码示例

目录

数值类型

整数类型

浮点数和定点数类型

字符串类型

定长字符串(CHAR)

可变长度字符串(VARCHAR)

文本类型(TEXT)

日期和时间类型

二进制类型

特殊类型


        在数据库设计中,选择合适的数据类型对于数据库的性能和存储效率至关重要。MySQL作为最流行的关系型数据库管理系统之一,提供了丰富的数据类型供开发者选择。本文将详细介绍MySQL中常见的数据类型,并附上相应的代码示例,帮助读者更好地理解和应用这些数据类型。

数值类型

整数类型

整数类型用于存储整数值,MySQL提供了多种整数类型,包括TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT等。这些类型根据存储的位数不同,有各自的取值范围和存储需求。

示例代码

CREATE TABLE students (  
    id INT PRIMARY KEY,  
    age TINYINT UNSIGNED  -- 假设年龄不会超过255  
);

浮点数和定点数类型

浮点数类型(FLOAT、DOUBLE)用于存储近似数值,而定点数类型(DECIMAL)用于存储精确数值。FLOAT是单精度浮点数,占用4个字节;DOUBLE是双精度浮点数,占用8个字节;DECIMAL则需要指定精度和小数位数。

示例代码

CREATE TABLE products (  
    id INT PRIMARY KEY,  
    price DECIMAL(10, 2)  -- 假设价格最多有10位数字,其中2位是小数  
);  
  
CREATE TABLE measurements (  
    id INT PRIMARY KEY,  
    temperature DOUBLE  -- 适用于需要高精度的科学计算  
);

字符串类型

定长字符串(CHAR)

CHAR类型用于存储固定长度的字符串,最大长度为255个字符。如果存储的字符串长度小于指定的长度,MySQL会在右侧填充空格以达到指定的长度。

示例代码

CREATE TABLE countries (  
    id INT PRIMARY KEY,  
    country_code CHAR(2)  -- 国家代码,如US、CN  
);

可变长度字符串(VARCHAR)

VARCHAR类型用于存储可变长度的字符串,最大长度为65535个字符(实际限制可能受字符集和行大小影响)。VARCHAR类型根据实际存储的字符串长度来分配存储空间,因此更加节省空间。

示例代码

CREATE TABLE users (  
    id INT PRIMARY KEY,  
    username VARCHAR(50)  -- 用户名,长度可变  
);

文本类型(TEXT)

TEXT类型用于存储长文本数据,MySQL提供了TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT四种类型,分别对应不同的存储长度。

示例代码

CREATE TABLE articles (  
    id INT PRIMARY KEY,  
    content TEXT  -- 文章内容,可能很长  
);

日期和时间类型

MySQL提供了多种日期和时间类型,包括DATE、TIME、DATETIME、TIMESTAMP和YEAR等。

示例代码

CREATE TABLE events (  
    id INT PRIMARY KEY,  
    event_date DATE,  -- 事件日期  
    start_time TIME,  -- 开始时间  
    registration_time DATETIME  -- 注册时间,包含日期和时间  
);

二进制类型

二进制类型用于存储二进制数据,如图片、文件等。MySQL提供了BIT、BINARY、VARBINARY和BLOB等类型。

示例代码

CREATE TABLE images (  
    id INT PRIMARY KEY,  
    image_data BLOB  -- 存储图片数据  
);

特殊类型

MySQL还支持一些特殊类型,如ENUM(枚举类型)、SET(集合类型)和JSON等。

ENUM类型示例

CREATE TABLE shirts (  
    id INT PRIMARY KEY,  
    size ENUM('S', 'M', 'L', 'XL')  -- 衬衫尺码  
);

JSON类型示例

CREATE TABLE users_info (  
    id INT PRIMARY KEY,  
    profile JSON  -- 存储用户配置文件,如{"name": "John", "age": 30}  
);

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值