MySQL 表约束超详细
warning:
这篇文章距离上次修改已过189天,其中的内容可能已经有所变动。
MySQL表约束是一种规则,用于限制数据库表中的数据以保持其完整性、准确性和相关性。以下是MySQL中常见的几种表约束:
- PRIMARY KEY (PK):表中的一个列或列的组合,其值能唯一地标识表中的每一行。
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
- UNIQUE:确保列中的所有值都是唯一的。
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
- NOT NULL:确保列中不包含NULL值。
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
- FOREIGN KEY (FK):一个表中的列引用了另一个表的主键。
CREATE TABLE orders (
order_id INT AUTO_INCREMENT,
user_id INT,
product_name VARCHAR(100) NOT NULL,
PRIMARY KEY (order_id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
- CHECK:确保列中的值满足指定的条件。(MySQL不支持CHECK约束,但可以使用ENUM或者SET代替)
- DEFAULT:为列中的值定义默认值。
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
signup_date DATE DEFAULT CURRENT_DATE,
PRIMARY KEY (id)
);
- INDEX:为表中的列创建索引,可以加快查询速度。
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id),
INDEX (username)
);
以上是MySQL中常见的几种表约束,每种约束都有其特定的用途和限制。在创建表时,可以根据需要结合使用这些约束以确保数据的完整性和一致性。
评论已关闭