中级第 4 / 13 节30 分钟 · 实操
数据类型
MySQL 课程的一部分
回头看看上一课里的 products 表,你会注意到每一列都带着类型:INT、VARCHAR(120)、DECIMAL(10, 2)。这些不是摆设。给一列选定的类型决定了 MySQL 会接受什么值、这一列在磁盘上占多少空间、怎么排序,有时候甚至决定你的数字算得对不对。选错了,出的错往往是不声不响的那种:价格差了不到一分钱,日期悄悄丢掉了时间,一列白白占掉四倍于所需的空间。这一课把你会反复用到的类型过一遍,让选对类型变成习惯,而不是每次靠猜。
MySQL 给了你五种大小的整数:TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT。每一种占用固定的字节数,能存的取值范围也是固定的,从 TINYINT(1 个字节,先不算无符号的情况,大致是 -128 到 127)一直到 BIGINT(8 个字节,大到足以放下比全世界人口还多的标识符)。真正写表的时候,不必每次都把五种都掂量一遍。你写的绝大多数列用 INT 就够了:年龄、数量、大部分主键。只有两种情况才特意换成 BIGINT:预计这张表会长到二十亿行以上,或者你存的是从别处拿来的标识符,比如一条推文的 ID,它本身就已经超出 INT 装得下的范围。 ...
你将学到什么
- INT and BIGINT
- DECIMAL vs FLOAT
- VARCHAR vs TEXT
- BOOLEAN as TINYINT
- DATE vs DATETIME vs TIMESTAMP
- ENUM
- JSON column
用你的语言阅读本课
本课程的所有课时
13 节探索其他课程
Python
19 节 · 9.3小时
Go
20 节 · 12.3小时
React
17 节 · 10.2小时
Linux
17 节 · 8.5小时
Docker
13 节 · 6.6小时
Git
13 节 · 5.9小时
Kubernetes
14 节 · 8小时
Ansible
12 节 · 6.1小时
Bash
12 节 · 5.7小时
Helm
10 节 · 5.4小时
GitLab CI
11 节 · 5.8小时
Jenkins
11 节 · 5.3小时
PostgreSQL
14 节 · 7.6小时
Web
14 节 · 5.9小时
TypeScript
18 节 · 7.7小时
Vibe Coding
12 节 · 5.8小时
Prompt Engineering
11 节 · 6.2小时
Vibe 编程:基础
12 节 · 4.5小时
Vibe 编程:从原型到生产
12 节 · 5.5小时
Vibe 编程:多智能体工程
12 节 · 5.3小时
Vibe 编程:高级工程
12 节 · 7.3小时
