数据类型介绍
-
数据类型定义了数据的结构和属性,决定了数据如何在数据库中存储、处理和检索
-
⚠️在表中增加字段时,必须指定类型
- 从而保证写入数据信息合理性/有效性
- 保证存储数据占用磁盘空间合理性
- 保证索引结构合理性(更快调取数据)
数据类型分类
整数型
整数类型 | 占用大小 | 范围 |
---|---|---|
tinyint | 1字节 | -128~127 |
smallint | 2字节 | 32768~32767 |
mediumint | 3字节 | -8388608~8388607 |
int | 4字节 | -2147483648~2147483647 |
bigint | 8字节 | ±9.22*10的18次方 |
浮点型
说明 | 存储范围 | |
---|---|---|
FLOAT(m,d) | 8位精度(4字节) | |
DOUBLE(m,d) | 双精度浮点数,大约15位十进制数,8字节 | |
DECIMAL | 以指定精度(总位数)和小数位数 | 存储范围:取决于定义的精度和小数位数 |
CREATE TABLE products (price DECIMAL(10, 2)
);
字符类型
字符类型 | |
---|---|
char(X) | 定长字符,最多255个。长度不足则自动用空格补全,X 为自定义长度 |
varchar(X) | 可变字符类型,最多65535个 |
时间/日期类型
时间类型 | |
---|---|
DATE | 2024-06-12 |
time | 时分秒,08:56:31 |
datetime | 记录时间信息的年月日 小时分钟秒 2008-12-2 22:06:44 |
timestamp | timestamp 记录时间戳信息,自动存储记录修改时间 |
CREATE TABLE birthday (birth DATE
);
日期类型
枚举类型
只能从预留的词选 | |
---|---|
enum |
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,gender ENUM('男', '女') NOT NULL
);
布尔类型
类型 | 说明 |
---|---|
BOOLEAN | 值为0 或 1 |
建表时指定数据类型
1.在xaioQ库创建test5的表
create table xiaoQ.test5 (id char(1), name char(10), age int);
2.插入2条数据
insert into xiaoQ.test5 values (1,'wzy',20),(2,'李1',996);
3.查看次表的创建过程
mysql> show create table xiaoQ.test5;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test5 | CREATE TABLE `test5` (`id` char(1) DEFAULT NULL,`name` char(10) DEFAULT NULL,`age` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_cichar(10) DEFAULT NULL,`age` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci