MySQL中索引的使用语法

一。概念
MySQL的索引,是数据库管理系统中的一个排序的数据结构,用于快速协助查询,更新数据库中的数据。某个字段的一部分建立于记录位置的对应关系,也会占用数据库一定的空间。生活中也能感受到索引的好处,快速查询类似。的,你看书的时候,如果没有目录,那么你查找书中某一个具体的章节,估计要从头到尾查看一遍。这里的目录就可以理解成一种索引,它对于海量的数据检索,是非常有效的,查询的时候根据索引,这样可以避免全表扫描。
二。常用的索引类型
根据字段的个数分为单列索引和复合索引(复合索引)。即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。即一个索引包含多主题。根据索引的作用类型分为以下几种。
主键索引
要求该字段的值不能重复,同时 不能为null,以及主键约束。张表中只能有一个主键。被标志为自动增长的字段一定是主键,但主键不一定是自动增长。
唯一索引
要求该字段的值不能重复,同时增加唯一约束,一张表中可以有多个唯一索引。
普通索引
也叫做常规索引,对字段关键字没有要求,理论上任何字段都可以作为普通索引。
全文索引
只有在MyISAM数据引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引。关键字的来源不是所有字段的数据,而是从字段中提取的特 关键词.
外键索引 只有InnoDB的存储引擎的表才支持外键。外键字段如果没有指定索引名称,会自动生成。外键会自动和对应的其他表的主键关联。外键的主要作用是保证记录的一致性和完整性。
三。建立索引的语法

create table index_student1(
sid int unsigned not null auto_increment,
xing char(10)not null default’’,
ming char(10)not null default’’,
sno char(10)not null default’’,
sinfo text,
主键(sid),
唯一索引unique_sno(sno),
索引index_name(xing,ming),
全文索引full_sinfo(sinfo)
)engine = myisam charset = utf8;
primary key(主键字段名字)
unique index唯一索引名字(字段)
index普通索引名字(字段)
全文索引全文索引名字(字段)
在这里插入图片描述
索引类型索引名称(字段)其中字段是不需要加引号的,否则会报错

3.2在表创建后,可以用alter创建表索引
alter table table _ name add索引类型[索引名](列字段(length));
•ALTER TABLE tbl _ name ADD PRIMARY KEY(column _ list):•该语句添加一个主键,这意味着索引值必须是唯一的,并且不能为NULL
•ALTER TABLE tbl _ name ADD UNIQUE index _名(列_列表):•这条语句创建索引的值必须是唯一的(除了外NULL,NULL可能会出现多次)
•ALTER TABLE TBL _名称添加索引指数_名(列_列表):•添加普通索引,索引值可出现多次。
•ALTER TABLE tbl _ name ADD FULLTEXT index _ name ):
•该语句指定了索引为FULLTEXT,用于全文索引。
提示:若表中存在数据,数据符合唯一或者主键约束,才可以在该字段上建立对应的索引
[创建student2]
在这里插入图片描述
在这里插入图片描述
TIP:.AUTO_INCREMENT属性,依赖于关键,一般是建立在主键索引上,一张表中只能有一个主键被标志为自动增长的字段一定是,但主键不一定是自动增长。
在这里插入图片描述

3.3利用创建直接创建索引
创建索引类型索引名称上表名(列字段);

在这里插入图片描述
[ parimary ]
在这里插入图片描述
[ unique ]
在这里插入图片描述
[ index ]
在这里插入图片描述
[ 全文索引]
在这里插入图片描述
四。查看索引------- show index from表名称;
在这里插入图片描述
有些书上用show名称表示称; 也是可以的表表的名称。非 _ UNIQUE如果索引不能包括重复词,则为0。如果可以,则为重点开放 _ NAME索引的名称.SEQ _在 _索引索引中的列序列号,从1开始.COLUMN_NAME列名称.Collat离子列以什么方式存储在索引中。在的MySQL中,有值’A’(升序)或NULL(无分类).Cardinality索引中唯一值的数目的估计,通过运行ANALYZE TABLE或myisamchk -a可以更新,基数被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的,基数越大,当进行联合时,MySQL的使用情况索引的机会就越大。
Sub_part如果列只是被部分地编入索引,则为被编入索引的字符的数目,如果整列被编入索引,则为NULL。Packed指示关键字如何被压缩,如果没有被压缩,则为NULL。Null如果列含有NULL,则含有YES,如果没有,则该列含有NO。Index_type用过的索引方法(BTREE,FULLTEXT,HASH,RTREE)。评论更多评注。

五。删除索引--------

5.1利用改变删除表中的索引</ H4> 改变表_名称降索引索引_名称;(其他索引)改变表TABLE_NAME降主键索引比较特殊一点 删除PRIMARY KEY索引中,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。下面看一下具体操作!在这里插入图片描述
5.2利用删除删除表中的索引
drop table index_name on table_name;
在这里插入图片描述
主键的删除方法,先删除其自增长的,然后更改掉主键主键!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值