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

  • 相关阅读:
    基于Python的数据分析(1):配置安装环境
    Learn flask in the hard way:配置环境的安装
    网络云盘的存储机制
    读书笔记:云计算概念、技术和架构
    小型开发团队中项目管理的方法及原则
    华为专家谈CMDB建设
    2018软件工程第二次作业——个人项目
    福大软工1816 · 第一次作业
    python学习摘要(3)--字符串处理函数
    python学习摘要(4)--列表简单处理
  • 原文地址:https://www.cnblogs.com/eternityz/p/12243326.html
Copyright © 2011-2022 走看看