Java教程

SQL索引的创建、删除

本文主要是介绍SQL索引的创建、删除,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

以下方user表为例:

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

这篇关于SQL索引的创建、删除的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!