在 SQL 中,PRIMARY KEY、UNIQUE、INDEX 和 FULLTEXT 是用于定义表中字段约束和创建索引的关键字。它们具有不同的含义和功能,下面是它们的区别以及具体的例子说明:
PRIMARY KEY(主键):
主键是用于唯一标识表中每一行记录的字段或字段组合。
主键字段的值必须是唯一的且不能为空。
每张表只能有一个主键。
主键会自动创建唯一索引。
例子:
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(100),
email VARCHAR(100)
);
UNIQUE(唯一约束):
唯一约束用于确保表中的字段值是唯一的。
可以应用于单个字段或多个字段组合。
唯一约束可以有多个,不同的唯一约束之间没有关联。
例子:
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(100) UNIQUE,
email VARCHAR(100) UNIQUE
);
INDEX(索引):
索引用于提高查询性能,加快数据检索速度。
可以应用于单个字段或多个字段组合。
索引可以有多个,不同的索引之间没有关联。
可以创建普通索引、唯一索引、全文索引等不同类型的索引。
例子:
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(100),
email VARCHAR(100),
INDEX idx_username (username),
INDEX idx_email (email)
);
FULLTEXT(全文索引):
全文索引用于在文本数据中进行全文搜索。
可以应用于包含文本内容的字段。
全文索引可以提供更高效和准确的文本搜索功能。
例子:
CREATE TABLE articles (
id INT PRIMARY KEY,
title VARCHAR(100),
content TEXT,
FULLTEXT (title, content)
);
总结:
- PRIMARY KEY 用于定义主键字段,用于唯一标识表中的每一行记录。
- UNIQUE 用于确保字段值的唯一性。
- INDEX 用于创建索引,提高查询性能。
- FULLTEXT 用于创建全文索引,支持全文搜索功能。