13 数据表管理之数据类型与约束
在上一节中,我们学习了如何创建、修改和删除数据表,掌握了数据表的基本管理操作。本篇将继续围绕数据表管理的主题,深入探讨 MySQL 中的数据类型和约束,以帮助大家更好地设计和构建高效、可靠的数据库结构。
数据类型
在创建数据表时,选择合适的数据类型至关重要。数据类型不仅影响存储的效率,还有助于确保数据的完整性。MySQL 支持多种数据类型,主要分为以下几类:
1. 数值型
数值型数据用于存储整数和浮点数。常见的数据类型包括:
- TINYINT:占用 1 个字节,范围 -128 到 127 或 0 到 255(无符号)。
- SMALLINT:占用 2 个字节,范围 -32,768 到 32,767 或 0 到 65,535(无符号)。
- INT:占用 4 个字节,范围 -2,147,483,648 到 2,147,483,647 或 0 到 4,294,967,295(无符号)。
- FLOAT:占用 4 个字节,适用于小数的存储。
- DOUBLE:占用 8 个字节,更精确的小数存储。
1 | CREATE TABLE example_numbers ( |
2. 字符串型
字符串型数据用于存储字符和文本。常见的数据类型包括:
- **CHAR(n)**:固定长度字符串,n 最大为 255。
- **VARCHAR(n)**:可变长度字符串,n 最大为 65,535。
- TEXT:大文本数据,最大可存储 65,535 字符。
- BLOB:二进制大对象,最大可存储 65,535 字节。
1 | CREATE TABLE example_strings ( |
3. 日期与时间型
日期与时间型数据用于存储时间信息,包括:
- DATE:存储日期,格式为 ‘YYYY-MM-DD’。
- TIME:存储时间,格式为 ‘HH:MM:SS’。
- DATETIME:同时存储日期和时间,格式为 ‘YYYY-MM-DD HH:MM:SS’。
- TIMESTAMP:存储自 1970-01-01 00:00:00 UTC 到当前时间的时间戳。
1 | CREATE TABLE example_dates ( |
约束
约束用于限制数据的输入,以确保数据的完整性和准确性。MySQL 提供了多种约束类型,常见的包括:
1. 主键约束
主键约束确保表中的每一行是唯一的,并且不能为空。一个表只能有一个主键。
1 | CREATE TABLE example_primary_key ( |
2. 外键约束
外键约束用于建立两个表之间的链接。它确保引用的完整性,即外键必须指向主键。
1 | CREATE TABLE orders ( |
3. 唯一约束
唯一约束确保字段的值在表中是唯一的,但允许NULL值。
1 | CREATE TABLE example_unique ( |
4. 检查约束
检查约束用于确保列值满足特定条件。
1 | CREATE TABLE example_check ( |
5. 非空约束
非空约束确保列的值不能为空。
1 | CREATE TABLE example_not_null ( |
小结
在本节中,我们了解了 MySQL 数据表管理中数据类型和约束的重要性,通过选择合适的数据类型和添加必要的约束,可以大幅提升数据库设计的质量和数据的完整性。正确设计数据表是优化数据库性能的重要步骤,为后续的索引和性能优化打下了坚实的基础。
在下一节中,我们将继续探讨数据库性能优化的主题,重点讲解索引的创建与使用,请继续关注!
13 数据表管理之数据类型与约束