文章目录

  • MySQL——索引的创建与删除
    • 1、创建索引的三种方式
      • 1.1、建表时创建索引
      • 1.2、修改表时创建索引
      • 1.3、使用 CREATE INDEX 语句创建索引
    • 2、删除索引

MySQL——索引的创建与删除

1、创建索引的三种方式

1.1、建表时创建索引

使用CREATE TABLE创建表时,除了可以定义列的数据类型外,还可以定义主键约束、外键约束或者唯一性约束,而不论创建哪种约束,在定义约束的同时相当于在指定列上创建了一个索引。

隐式创建:

在声明有主键约束、唯一性约束、外健约束的字段上,会自动添加相关的索引。

create table dept(dept_id int primary key auto_increment, -- 通过定义主键约束创建主键索引dept_name varchar(20)
);create table emp(emp_id int primary key auto_increment,emp_name varchar(20) unique , -- 唯一性约束dept_id int,constraint emp_dept_id_fk foreign key(dept_id) references dept(dept_id) -- 外健约束
);

显式创建:

显式创建基本语法:

CREATE TABLE table_name [col_name data_type ]
[ UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY] [index_name] (col_name [length])[ASC | DESc]
  • UNIQUE、FULLTEXT和SPATIAL为可选参数,分别表示唯一索引、全文索引和空间索引,若不选则表示创建的是普通索引。
  • INDEX与KEY为同义词,两者的作用相同,用来指定创建索引;
  • index_name指定索引的名称,为可选参数,如果不指定,那么MySQL默认col_name为索引名;
  • col_name为需要创建索引的字段列,该列必须从数据表中定义的多个列中选择;
  • length为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度;
  • ASC 或 DESC 指定升序或者降序的索引值存储。
-- 创建普通索引
create table book(book_id int,book_name varchar(50),authors varchar(50),info varchar(50),comment varchar(50),year_publication year,index idx_bname(book_name) -- 声明索引,字段为book_name
);
-- 创建全文索引,全文索引在MySQL5.5及之前 MyISAM支持,InnoDB不支持
create table book1(book_id int,book_name varchar(50),authors varchar(50),info varchar(50),comment varchar(50),year_publication year,fulltext index fk_idx_cmt(comment(20)) -- 声明索引,字段为comment,长度取20,避免索引长度过长
);

1.2、修改表时创建索引

ALTER TABLE 语句创建索引语法:

ALTER TABLE table_name ADD [UNIQUE | FULLTEXT | SPATIAL][INDEX | KEY]
[index_name] (col_name [length] ,...)[ASC | DESC]

使用实例:

-- 创建普通索引
alter table book2 add index idx_cmt(comment);-- 创建唯一索引
alter table book2 add unique uk_idx_bname(book_name);-- 创建联合索引
alter table book2 add index mul_bid_bname_info(book_id,book_name,info);

1.3、使用 CREATE INDEX 语句创建索引

create index idx_cmt on book3(comment);-- 创建普通索引create unique index uk_idx_bname on book3(book_name);-- 创建唯一索引create index mul_bid_bname_info on book3(book_id,book_name,info);-- 创建联合索引

2、删除索引

使用 ALTER TABLE 删除索引

语法格式:

ALTER TABLE table_name DROP INDEX index_name;

使用实例:

alter table book3 drop index idx_cmt;alter table book3 drop index mul_bid_bname_info;

注意:添加 auto_increment 自增 约束字段的唯一索引不能被删除。

使用 DROP INDEX 删除索引

语法格式:

DROP INDEX index_name on table_name;

使用实例:

drop index idx_cmt on book2;drop index mul_bid_bname_info on book2;

注意:删除表中的列时,如果要删除的列为联合索引的组成部分,则该列也会从索引中删除。如果组成联合索引的所有列都被删除,整个索引也被删除。

MySQL——索引的创建与删除相关推荐

  1. MySQL索引的创建、删除和查看

    此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 0.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的 ...

  2. mysql索引的创建和删除吗_MySQL索引的创建、删除和查看

    此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的 ...

  3. MySQL 索引的创建、删除和查看操作

    ybm(使用部门)一般只有几条记录,除了主关键字外对任何一个字段建索引都不会产生性能优化,实际上如果对这个表进行了统计分析后ORACLE也不会用你建的索引,而是自动执行全表访问 1.索引作用 在索引列 ...

  4. MySQL 索引的创建、删除

    MySQL中索引的创建有三种方法,索引的删除有两种方法. 一.创建索引 (1)使用create index # 1.创建普通索引 create index 索引名 on 表名 (列名[(限制索引长度) ...

  5. mysql索引的创建及删除

    mysql8 索引 创建索引 创建主键索引 创建唯一键索引 创建普通索引 创建全文索引 删除索引 索引创建原则 创建索引 创建主键索引 create table [表名](列1 数据类型1, 列2 数 ...

  6. MySQL索引的创建与删除

    创建索引: 创建索引主要有几种形式,主要区分是在建表的前后进行创建索引. 建表的时候创建索引: CREATE TABLE table_name(column1 类型,column2 类型,...key ...

  7. MySQL查看、创建和删除索引的方法

    本文实例讲述了MySQL查看.创建和删除索引的方法.分享给大家供大家参考.具体如下: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别 ...

  8. mysql索引 删除和创建_mysql索引和唯一索引的创建和删除

    一.本机环境 二.索引的创建删除 三.唯一索引的创建和删除 一.本机环境 系统环境:linux centos 7.2 mysql版本:mysql-5.7.9 安装目录:/application/mys ...

  9. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

最新文章

  1. 深度学习机器臂控制_深度学习新进展:可自建任务解决模型的机器人问世
  2. 渐变显示渐变消失的BackgroundView
  3. Ubuntu 12.04(64位)下载并编译 Android 4.1 源码[只有2条命令]
  4. 微信hash ajax,基于vue hash模式微信分享#号的解决
  5. java 解析p12_java读取*.p12证书的信息 | 学步园
  6. Pandas 读取 csv 得 DataFrame 转换成 List
  7. MCS:连续随机变量——Erlang分布
  8. 计算机安全韩亮,韩亮
  9. 什么是电子商务——百科
  10. java hl7_java-发送HL7消息后何时关闭并重新打开套接...
  11. 堂食扫码点餐的小程序设计开发
  12. 理解单调栈与单调队列
  13. 赊了两串冰糖葫芦才写出来的小结
  14. 项目排期工具OmniPlan实用指南
  15. 【Fragment】FragmentManager和FragmentTransaction使用
  16. 韩国多佑集团软件和服务外包基地纳米大厦大连揭幕
  17. stm32培训视频,欢迎大家入门学习。
  18. 中国成人血脂异常防治指南(2016 年修订版)-学习笔记
  19. [高通SDM450][Android9.0]默认取消dm-verity以及解决OTA校验vbmeta失败问题
  20. Easy3DCGAL 凸包算法(三维)

热门文章

  1. 考研捡.漏指南这几所985院校专业去年一志愿没招满
  2. Javaweb-初识(Tomcat服务部署、创建Javaweb项目、Servlet Post请求案例)
  3. stm32hal库红外激光雷达测距
  4. Android TextView局部下划线及点击弹出popu
  5. Bootstrap Table表格分页的使用及分页数据(Excel)导出
  6. HarmonyOS设备开发:HarmonyOS烧录出现“internal/modules/cjs/loader.js:883 throw err;”的解决办法
  7. 刘韧专访陈一舟:回顾ChinaRen时代 (ZT)
  8. Java2 —— Java基础语法
  9. 【转】word排版宏的使用
  10. java2实用教程实验指导与习题解答第四版答案_java2实用教程实验指导与习题解答...