MySQL 数据类型详解
MySQL 是一种关系型数据库管理系统,数据存储需要定义列的数据类型。MySQL 提供了多种数据类型,每种类型都有其特定用途及所占用的存储空间。本文将对 MySQL 的数据类型进行详细阐述。
数值类型
MySQL 中常用的数值类型包括整型和浮点型。
整型
MySQL 提供了几种不同大小的整数类型,可以根据需要选取合适的类型。下面是 MySQL 中整型数据类型及其范围:
数据类型 | 存储空间 | 范围 (有符号) | 范围 (无符号) |
---|---|---|---|
TINYINT | 1 字节 | -128 到 127 | 0 到 255 |
SMALLINT | 2 字节 | -32,768 到 32,767 | 0 到 65,535 |
MEDIUMINT | 3 字节 | -8,388,608 到 8,388,607 | 0 到 16,777,215 |
INT | 4 字节 | -2,147,483,648 到 2,147,483,647 | 0 到 4,294,967,295 |
BIGINT | 8 字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0 到 18,446,744,073,709,551,615 |
示例:
CREATE TABLE student (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age TINYINT UNSIGNED NOT NULL,
score BIGINT
);
浮点型
MySQL 中的浮点型包括 FLOAT 和 DOUBLE,用于存储带有小数的数字。浮点型可以指定精度(即小数点后的位数),默认精度为 0。
数据类型 | 存储空间 | 范围 | 精度 |
---|---|---|---|
FLOAT | 4 字节 | -3.402823466E+38 到 -1.175494351E-38,0 和 1.175494351E-38 到 3.402823466E+38 | 精度与存储空间有关 |
DOUBLE | 8 字节 | -1.7976931348623157E+308 到 -2.2250738585072014E-308,0 和 2.2250738585072014E-308 到 1.7976931348623157E+308 | 精度与存储空间有关 |
示例:
CREATE TABLE product (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
price DECIMAL(10,2)
);
字符类型
MySQL 中的字符类型包括固定长度的 CHAR 和可变长度的 VARCHAR。
数据类型 | 存储空间 | 特性 |
---|---|---|
CHAR | 0-255 字节 | 定长,存储空间固定 |
VARCHAR | 0-65,535 字节 | 变长,存储空间可变,适合存储较短的字符串 |
示例:
CREATE TABLE user (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email CHAR(30) NOT NULL
);
日期和时间类型
MySQL 中的日期和时间类型包括 DATE、TIME、DATETIME、TIMESTAMP 和 YEAR。
数据类型 | 存储空间 | 特性 |
---|---|---|
DATE | 3 字节 | 存储日期,格式为 YYYY-MM-DD |
TIME | 3 字节 | 存储时间,格式为 HH:MM:SS |
DATETIME | 8 字节 | 存储日期和时间,格式为 YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 字节 | 存储时间戳,从 1970 年 1 月 1 日 00:00:00 到当前时间的秒数 |
YEAR | 1 字节 | 存储年份,格式为 YYYY |
示例:
CREATE TABLE event (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
date DATE NOT NULL,
time TIME
);
其他类型
MySQL 中的其他数据类型包括 BLOB、TEXT 等。
数据类型 | 存储空间 | 特性 |
---|---|---|
BLOB | 0-65,535 字节 | 二进制大对象,用于存储大量的二进制数据 |
TEXT | 0-65,535 字节 | 用于存储长文本数据,适合存储较长的字符串 |
示例:
CREATE TABLE blog (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
content TEXT NOT NULL
);
以上为 MySQL 的常用数据类型以及其特性和用法。根据具体的需求,可以合理选取合适的数据类型来存储数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL 数据类型 详解 - Python技术站