MySQL数据类型
发布人:shili8
发布时间:2025-02-14 16:14
阅读次数:0
**MySQL 数据类型**
MySQL 是一种流行的关系数据库管理系统,支持多种数据类型以存储不同类型的数据。理解 MySQL 数据类型对于设计和优化数据库至关重要。
### 整型(Integer)
整型用于存储整数值,如1、-1、0 等。
* **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 INT PRIMARY KEY, age TINYINT, salary MEDIUMINT);
### 浮点型(Floating-point)
浮点型用于存储小数值,如3.14、-0.5 等。
* **FLOAT**:占用4 个字节,精度通常为7 位数字。
* **DOUBLE**:占用8 个字节,精度通常为15 位数字。
* **DECIMAL**(或 **NUMERIC**):用于存储精确的小数值。
sqlCREATE TABLE test ( price FLOAT, salary DOUBLE, balance DECIMAL(10,2) );
### 字符型(Character)
字符型用于存储字符串,如 "hello"、'a' 等。
* **CHAR**:固定长度的字符串,例如 CHAR(10)。
* **VARCHAR**:可变长度的字符串,例如 VARCHAR(255)。
sqlCREATE TABLE test ( name CHAR(20), description VARCHAR(100) );
### 日期型(Date)
日期型用于存储日期值,如2022-01-01 等。
* **DATE**:占用3 个字节,范围是1000-01-01 到9999-12-31。
* **TIME**:占用3 个字节,范围是00:00:00 到23:59:59。
sqlCREATE TABLE test ( birthday DATE, arrival TIME);
### 枚举型(Enum)
枚举型用于存储特定值的集合,如 "male"、"female" 等。
* **ENUM**:占用1 个字节,支持多个值。
sqlCREATE TABLE test ( sex ENUM('male', 'female') );
### 位图(Bit)
位图用于存储布尔值,如 TRUE 或 FALSE 等。
* **BIT**:占用1 个字节,支持多个值。
sqlCREATE TABLE test ( is_admin BIT(1) );
### JSONJSON 是一种用于存储和交换数据的格式。
* **JSON**:支持 JSON 数据类型。
sqlCREATE TABLE test ( data JSON);
### 其他类型MySQL 还支持其他一些特殊类型,如:
* **BLOB**(Binary Large OBject):用于存储二进制数据。
* **TEXT**:用于存储长文本数据。
* **POINT**:用于存储地理位置数据。
sqlCREATE TABLE test ( image BLOB, content TEXT, location POINT);
总之,MySQL 提供了多种数据类型以适应不同类型的数据需求。选择合适的数据类型对于设计和优化数据库至关重要。