了解 MySQL 数据类型及其在表中的应用(mysql数据类型表)
了解 MySQL 数据类型及其在表中的应用
MySQL 是一种流行的关系型数据库管理系统,由于其可靠性和性能而备受欢迎。在使用 MySQL 时,数据类型是非常重要的一个方面。MySQL 支持多种数据类型,包括整数、浮点数、日期、字符串等。以下是常见的 MySQL 数据类型及其在表中的应用。
1. 整数类型(INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT)
整数类型用于存储整数值,MySQL 同时支持有符号和无符号整数类型。不同的整数类型有着不同的范围和存储空间。例如,TINYINT 只有 1 个字节的存储,范围是 -128 到 127 或 0 到 255。INT 和 BIGINT 分别占用 4 个字节和 8 个字节的存储空间,范围分别是 -2^31 到 2^31-1 和 -2^63 到 2^63-1。
示例代码:
CREATE TABLE students (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age TINYINT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);
2. 浮点数类型(FLOAT、DOUBLE、DECIMAL)
浮点数类型用于存储实数值,包括常见的小数和科学计数法表示的数字。FLOAT 和 DOUBLE 分别占用 4 个字节和 8 个字节的存储空间,精度和范围也不同。DECIMAL 类型用于存储高精度的数字,可以指定精度和小数位数。
示例代码:
CREATE TABLE products (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
);
3. 日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)
日期和时间类型用于存储日期和时间信息。DATE 类型用于存储年月日,格式为 YYYY-MM-DD。TIME 类型用于存储时分秒,格式为 HH:MM:SS。DATETIME 类型包含日期和时间,格式为 YYYY-MM-DD HH:MM:SS。TIMESTAMP 类型也包含日期和时间,但其范围和存储空间与 DATETIME 不同,同时 TIMESTAMP 也有自动更新功能。
示例代码:
CREATE TABLE orders (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
customer_id INT(11) UNSIGNED NOT NULL,
total_price DECIMAL(10,2) NOT NULL,
order_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
4. 字符串类型(CHAR、VARCHAR、TEXT)
字符串类型用于存储字符数据,不同的字符串类型有着不同的存储方式和限制。CHAR 类型用于固定长度的字符串,长度不超过 255 个字符。VARCHAR 类型用于可变长度的字符串,长度不超过指定的最大长度。TEXT 类型用于存储较长的字符串,长度上限为 65,535 个字符。
示例代码:
CREATE TABLE users (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password CHAR(64) NOT NULL,
email VARCHAR(255) NOT NULL,
bio TEXT NOT NULL,
PRIMARY KEY (id)
);
在创建表时,选择合适的数据类型非常重要。根据实际的数据情况来选择合适的数据类型,可以提升数据库性能,减少存储空间的浪费,并避免数据类型转换带来的问题。