【MySQL系列】深入学习数据类型
发布人:shili8
发布时间:2025-01-04 08:48
阅读次数:0
**MySQL系列:深入学习数据类型**
在 MySQL 中,数据类型是用来定义表中列的数据类型和长度的。不同的数据类型可以存储不同类型的数据,如整数、浮点数、字符串等。在本文中,我们将深入学习 MySQL 的各种数据类型。
###1. 整数类型MySQL 支持以下几种整数类型:
* **TINYINT**:占用1 个字节,范围是 -128 到127。
* **SMALLINT**:占用2 个字节,范围是 -32768 到32767。
* **MEDIUMINT**:占用3 个字节,范围是 -8388608 到8388607。
* **INT**(或 **INTEGER**):占用4 个字节,范围是 -2147483648 到2147483647。
* **BIGINT**:占用8 个字节,范围是 -9223372036854775808 到9223372036854775807。
sqlCREATE TABLE test ( id TINYINT, age SMALLINT, height MEDIUMINT, salary INT, balance BIGINT);
###2. 浮点数类型MySQL 支持以下几种浮点数类型:
* **FLOAT**:占用4 个字节,精度是7 位小数。
* **DOUBLE**:占用8 个字节,精度是15 位小数。
* **DECIMAL**(或 **NUMERIC**):占用1 到65 个字节,精度可以自定义。
sqlCREATE TABLE test ( price FLOAT, salary DOUBLE, balance DECIMAL(10,2) );
###3. 字符串类型MySQL 支持以下几种字符串类型:
* **CHAR**:固定长度的字符串。
* **VARCHAR**:可变长度的字符串。
* **TINYTEXT**:最多255 个字符的字符串。
* **TEXT**:最多65535 个字符的字符串。
* **MEDIUMTEXT**:最多16777215 个字符的字符串。
* **LONGTEXT**:最多4294967295 个字符的字符串。
sqlCREATE TABLE test ( name CHAR(10), description VARCHAR(255), content TINYTEXT, detail TEXT, info MEDIUMTEXT, data LONGTEXT);
###4. 日期和时间类型MySQL 支持以下几种日期和时间类型:
* **DATE**:日期类型,格式是 YYYY-MM-DD。
* **TIME**:时间类型,格式是 HH:MM:SS。
* **DATETIME**:日期和时间类型,格式是 YYYY-MM-DD HH:MM:SS。
* **TIMESTAMP**:时间戳类型,格式是 YYYY-MM-DD HH:MM:SS。
sqlCREATE TABLE test ( birthday DATE, time TIME, date DATETIME, timestamp TIMESTAMP);
###5. 枚举类型MySQL 支持以下几种枚举类型:
* **ENUM**:枚举类型,允许列中存储特定的值。
sqlCREATE TABLE test ( sex ENUM('male', 'female') );
###6. 位图类型MySQL 支持以下几种位图类型:
* **BIT**:位图类型,允许列中存储二进制数据。
sqlCREATE TABLE test ( flag BIT(1) );
在本文中,我们深入学习了 MySQL 的各种数据类型。这些数据类型可以帮助我们更好地设计和管理数据库表结构。