MySQL 建表时创建索引

MySQL 建表时创建索引

在本文中,我们将介绍MySQL中如何在建表时创建索引。

阅读更多:MySQL 教程

创建普通索引

在MySQL建表时,可以通过在列定义后面添加INDEX语句来创建普通索引。例如,下面的SQL语句创建了一个user_name列的普通索引:

CREATE TABLE user (

id INT NOT NULL AUTO_INCREMENT,

user_name VARCHAR(20) NOT NULL,

password VARCHAR(20) NOT NULL,

INDEX(name)

);

也可以在多个列上创建组合索引。例如,下面的SQL语句创建了一个在user_name和user_type列上的组合索引:

CREATE TABLE user (

id INT NOT NULL AUTO_INCREMENT,

user_name VARCHAR(20) NOT NULL,

user_type VARCHAR(10) NOT NULL,

password VARCHAR(20) NOT NULL,

INDEX(name, type)

);

需要注意的是,不能为已经存在的列添加索引。

创建唯一索引

在MySQL建表时,可以通过在列定义后面添加UNIQUE语句来创建唯一索引。例如,下面的SQL语句创建了一个user_name列的唯一索引:

CREATE TABLE user (

id INT NOT NULL AUTO_INCREMENT,

user_name VARCHAR(20) NOT NULL,

password VARCHAR(20) NOT NULL,

UNIQUE(name)

);

同样地,也可以在多个列上创建唯一索引。例如,下面的SQL语句创建了一个在user_name和user_type列上的唯一索引:

CREATE TABLE user (

id INT NOT NULL AUTO_INCREMENT,

user_name VARCHAR(20) NOT NULL,

user_type VARCHAR(10) NOT NULL,

password VARCHAR(20) NOT NULL,

UNIQUE(name, type)

);

需要注意的是,唯一索引限制了每个值只能在列中出现一次。因此,在唯一索引列上插入重复值将导致插入失败。

创建全文索引

在MySQL建表时,可以通过在列定义后面添加FULLTEXT语句来创建全文索引。例如,下面的SQL语句创建了一个content列的全文索引:

CREATE TABLE post (

id INT NOT NULL AUTO_INCREMENT,

title VARCHAR(100) NOT NULL,

content TEXT,

INDEX(content) FULLTEXT

);

全文索引可以用于对文本内容进行高效的搜索,例如在博客系统中搜索文章内容等场景。

总结

MySQL建表时创建索引是提高数据库查询效率的常用方法。可以在列定义后面添加INDEX、UNIQUE或FULLTEXT语句来创建普通索引、唯一索引或全文索引。在实际场景中,需要根据业务需求合理地创建索引,以保证数据库的高效率运行。