zoukankan      html  css  js  c++  java
  • mysql在建表语句中添加索引

    普通索引创建

    创建普通索引,即不添加 UNIQUE、FULLTEXT 等任何参数。

    【例】创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下:

    CREATE table score(
        id  int(11)  AUTO_INCREMENT  primary  key  not  null,
        name  varchar(50)  not null,
        math  int(5)  not null,
        English  int (5)  not null,
        Chinese  int (5) not  null,
        index(id)
    );
    

    此时在id字段上建立的普通索引名字为id,在id字段建立的,索引方法为BTREE,索引类型为normal

    创建唯一索引

    创建唯一索引时,使用 UNIQUE 参数进行约束。

    【例】创建表名为 address 的数据表,并在该表的 id 字段上建立唯一索引,SQL 语句如下:

    CREATE  table address(
        id  int(11)  auto_increment  primary  key  not  null,
        name  varchar(50),
        address  varchar(200),
        UNIQUE  INDEX  address(id  ASC)
    );
    

    此时在id字段上建立的唯一索引,索引名字为address,索引方法BTREE为,索引类型为Unique

    创建前缀索引(某字段前*个字节)

    创建单列索引,即在数据表的单个字段上创建索引。创建该类型索引不需要引入约束参数,用户在建立时只需要指定单列字段名,即可创建单列索引。

    【例】创建名称为  telephone  的数据表,并指定在  tel  字段上建立名称为  tel_num  的单列索引,SQL  语句如下:

    create  table  telephone(
        id  int(11)  primary key auto_increment  not  null,
        name  varchar(50)  not  null,
        tel  varchar(50)  not null,
        index  tel_num(tel(20))
    );
    

    此时在tel字段上建立的普通索引,索引名字为tel_num,索引方法为BTREE,索引类型为normal,索引取的是tel字段前20为字节建立索引

    前缀索引无法使用覆盖索引

    创建全文索引

    全文索引只能作用在 CHAR、VARCHAR、TEXT、类型的字段上。创建全文索引需要使用 FULLTEXT 参数进行约束。

    【例】创建表名为 cards 的数据表,并在该表的 name 字段上建立全文索引,SQL 语句如下:

    create  table cards(
        id int(11)  auto_increment  primary key  not  null,
        name  varchar(50),
        number  bigint(11),
        info  varchar(50),
        FULLTEXT  KEY  cards_number(name)
    );
    

    此时在name字段上建立的全文索引,索引名字为cards_number,索引方法为空(没有),索引类型为FULL TEXT

    创建多列索引

    创建多列索引即指定表的多个字段即可实现。

    【例】创建名称为 information 的数据表,并指定 name 和 sex 为 多列索引,SQL 语句如下:

    create table  information(
        inf_id  int(11)  auto_increment  primary  key  not  null,
        name  varchar(50)  not  null,
        sex  varchar(5)  not null,
        birthday  varchar(50)  not  null,
        index  info(name,sex)
    );
    

    此时在name,sex字段上建立的普通联合索引,索引名字为info,索引方法为BTREE,索引类型为normal

    创建空间索引(在MyISAM上)

    创建空间索引时,需要设置 SPATIAL 参数。同样,必须说明的是,只有 MyISAM 类型表支持该类型索引。而且,索引字段必须有非空约束。

    【例】创建一个名称为 list 的数据表,并创建一个名为 listinfo 的空间索引,SQL语句如下:

    create  table  list(
        id  int(11)  primary  key  auto_increment  not null,
        goods  geometry  not  null,
        SPATIAL  INDEX  listinfo(goods)
    )engine=MyISAM;
    

    goods  字段上已经建立名称为  listinfo 的空间索引,其中  goods  字段必须不能为空,且数据类型是  GEOMETRY,该类型是空间数据类型。空间类型不能用其他类型代替,否则在生成空间素引时会产生错误且不能正常创建该类型索引。

    空间类型除了上述示例中提到的 GEOMETRY 类型外,还包括如  POINT、LINESTRING、POLYGON  等类型,这些空间教据类型在平常的操作中很少被用到。

    参考

    原文链接:https://blog.csdn.net/qq_41573234/article/details/80250279

  • 相关阅读:
    VOA 2009/11/02 DEVELOPMENT REPORT In Kenya, a Better Life Through Mobile Money
    2009.11.26教育报道在美留学生数量创历史新高
    Java中如何实现Tree的数据结构算法
    The Python Tutorial
    VOA HEALTH REPORT Debate Over New Guidelines for Breast Cancer Screening
    VOA ECONOMICS REPORT Nearly Half of US Jobs Now Held by Women
    VOA ECONOMICS REPORT Junior Achievement Marks 90 Years of Business Education
    VOA 2009/11/07 IN THE NEWS A Second Term for Karzai; US Jobless Rate at 10.2%
    Ant入门
    Python 与系统管理
  • 原文地址:https://www.cnblogs.com/eternityz/p/12243326.html
Copyright © 2011-2022 走看看