SQL索引的创建、删除

以下方user表为例:
SQL索引的创建、删除

  1. 普通索引
  • 创建索引:CREATE INDEX indexName ON table_name (column_name)
    如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。
    eg:
    CREATE INDEX index_uname on user(name(10));

  • 修改表结构(添加索引)
    ALTER table tableName ADD INDEX indexName(columnName)
    eg:
    ALTER TABLE user ADD INDEX index_uname(name);

  • 创建表的时候直接指定
    CREATE TABLE mytable(
    ID INT NOT NULL,
    username VARCHAR(16) NOT NULL,
    INDEX [indexName] (username(length))
    );
    eg:

点击查看代码
CREATE TABLE `user`  (
  `id` int(0) NOT NULL,
  `name` varchar(255) NOT NULL,
  `age` int(0) NOT NULL,
  `sex` varchar(255) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `index_uname`(`name`) USING BTREE
);

2. 唯一索引
概念:它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

  • 创建索引:CREATE UNIQUE INDEX indexName ON mytable(username(length))
    eg:
    CREATE UNIQUE INDEX index_uname on user(name(10));

  • 修改表结构(添加索引)
    ALTER table mytable ADD UNIQUE [indexName] (username(length))
    eg:
    ALTER TABLE user ADD UNIQUE index_uname(name(5));

  • 创建表的时候直接指定
    CREATE TABLE mytable(
    ID INT NOT NULL,
    username VARCHAR(16) NOT NULL,
    UNIQUE [indexName] (username(length))
    );
    eg:

点击查看代码
CREATE TABLE `user`  (
  `id` int(0) NOT NULL,
  `name` varchar(255) NOT NULL,
  `age` int(0) NOT NULL,
  `sex` varchar(255) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE `index_uname`(`name`(10)) USING BTREE
);
  • 删除索引:
    DROP INDEX [indexName] ON mytable;

  • 使用alter命令删除索引

ALTER TABLE user DROP INDEX index_uname;
ALTER TABLE user ADD INDEX index_uname(name);

上一篇:阿里高级技术专家方法论:如何写复杂业务代码? | 开发者必读(042期)


下一篇:React-进阶