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
2
3
4
5
CREATE TABLE example_numbers (
id INT AUTO_INCREMENT PRIMARY KEY,
age TINYINT UNSIGNED,
salary FLOAT
);

2. 字符串型

字符串型数据用于存储字符和文本。常见的数据类型包括:

  • **CHAR(n)**:固定长度字符串,n 最大为 255。
  • **VARCHAR(n)**:可变长度字符串,n 最大为 65,535。
  • TEXT:大文本数据,最大可存储 65,535 字符。
  • BLOB:二进制大对象,最大可存储 65,535 字节。
1
2
3
4
5
CREATE TABLE example_strings (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
description TEXT
);

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
2
3
4
5
CREATE TABLE example_dates (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
birthday DATE
);

约束

约束用于限制数据的输入,以确保数据的完整性和准确性。MySQL 提供了多种约束类型,常见的包括:

1. 主键约束

主键约束确保表中的每一行是唯一的,并且不能为空。一个表只能有一个主键。

1
2
3
4
CREATE TABLE example_primary_key (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL
);

2. 外键约束

外键约束用于建立两个表之间的链接。它确保引用的完整性,即外键必须指向主键。

1
2
3
4
5
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES example_primary_key(id)
);

3. 唯一约束

唯一约束确保字段的值在表中是唯一的,但允许NULL值。

1
2
3
4
CREATE TABLE example_unique (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);

4. 检查约束

检查约束用于确保列值满足特定条件。

1
2
3
4
5
CREATE TABLE example_check (
id INT AUTO_INCREMENT PRIMARY KEY,
age INT,
CHECK (age >= 18)
);

5. 非空约束

非空约束确保列的值不能为空。

1
2
3
4
CREATE TABLE example_not_null (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);

小结

在本节中,我们了解了 MySQL 数据表管理中数据类型和约束的重要性,通过选择合适的数据类型和添加必要的约束,可以大幅提升数据库设计的质量和数据的完整性。正确设计数据表是优化数据库性能的重要步骤,为后续的索引和性能优化打下了坚实的基础。

在下一节中,我们将继续探讨数据库性能优化的主题,重点讲解索引的创建与使用,请继续关注!

13 数据表管理之数据类型与约束

https://zglg.work/mysql-database-zero/13/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论