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)
);
Mysql

也可以在多个列上创建组合索引。例如,下面的SQL语句创建了一个在user_nameuser_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

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

创建唯一索引

在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)
);
Mysql

同样地,也可以在多个列上创建唯一索引。例如,下面的SQL语句创建了一个在user_nameuser_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

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

创建全文索引

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

CREATE TABLE post (
  id INT NOT NULL AUTO_INCREMENT,
  title VARCHAR(100) NOT NULL,
  content TEXT,
  INDEX(content) FULLTEXT
);
Mysql

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

总结

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册