为已经存在的表上创建索引

1、使用 ALTER TABLE 语句创建索引

#在book表中的bookname字段上建立名为BkNameIdx的普通索引
MariaDB [vincen]> ALTER TABLE book add index BkNameIdx(bookname(30));
#格式:ALTER TABLE 数据表名 add 索引类型 索引名称(字段);

查看表中的索引信息

MariaDB [vincen]> show index from book \G
*************************** 1. row ***************************
        Table: book              #表示创建索引的表,book表
   Non_unique: 1                 #索引是否唯一,1代表非唯一,0代表唯一
     Key_name: BkNameIdx         #索引的名称是BkNameIdx
 Seq_in_index: 1                 #表示这个字段在索引中的位置
  Column_name: bookname          #表示定义索引的列字段
    Collation: A
  Cardinality: 0
     Sub_part: 30                #表示索引的长度
       Packed: NULL
         Null:                   #表示该字段是否能为空值
   Index_type: BTREE             #表示索引的类型
      Comment: 
Index_comment: 

 2、使用 CREATE INDEX 创建索引

创建一张新表

MariaDB [vincen]> CREATE TABLE books
    -> (
    -> bookid          INT NOT NULL,
    -> bookname        VARCHAR(255) NOT NULL,
    -> authors           VARCHAR(255) NOT NULL,
    -> info              VARCHAR(255) NULL,
    -> comment          VARCHAR(255) NULL,
    -> year_publication   YEAR NOT NULL
    -> );

使用 CREATE INDEX 创建索引

#在books表中的bookname字段上建立名为BkNameIdx的普通索引
MariaDB [vincen]> CREATE INDEX BkNameIdx ON books(bookname);
#格式:CREATE 索引类型 索引名称 ON 数据表名(字段);

 查看索引信息

MariaDB [vincen]> show index from books \G
*************************** 1. row ***************************
        Table: books
   Non_unique: 1
     Key_name: BkNameIdx
 Seq_in_index: 1
  Column_name: bookname
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 

可以看到 CREATE INDEX 语句和 ALTER INDEX 语句的语法基本一样,只是关键字不同

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值