- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章索引与数据完整性约束
第5章 索引与数据完整性约束
索引的用途与概念
MySQL中访问表中的行,最常用的是顺序访问和索引访问。
索引的概念:根据表中一列或若干列按照一定顺序建立的列值与记录之间的对应关系表。(存储在索引文件中)像不像图书的目录?
索引的用途:在表的某些列上创建了索引之后查找数据时可以直接根据该列上的索引找到对应行的位置,从而加快了查找速度。
一个表中可以创建多个索引,基于一个字段也可以创建多个索引。
索引的分类
B树索引:最常用
普通索引
只包含索引关键字 index
对建立索引的列没有唯一性要求
唯一性索引
关键字unique
创建索引的列,或列的组合值必须唯一
主键索引
关键字 primary key
只能在创建主键约束时自动创建
全文索引
关键字 fulltext
只能在varchar或text类型的列上创建
对于大规模的数据集,通过alter table或create table命令创建全文索引要比把记录插入带有全文索引的空表更快。
HASH(哈希)索引:速度较快
不需要建立树结构,但是所有的值都保存在一个列表中,这个列表指向相关页和行。
创建索引
create index语句创建索引
格式:create [unique|fulltext|spatial] index 索引名
[using btree|hash]
on table_name(索引列[(length)] [asc|desc] )
其中:using子句表示索引的类型,默认为btree; length表示使用索引列的前多少个字符创建索引,这在索引列值较长的情况下比较有用。如在blob或text列上创建索引。
例题:
例5.1 create index st on student(stuname(4) asc);
查看索引的命令: show index from 表名
例如:show index from student;
例 5.2 创建复合索引。
create index xskc on studentcourse(id,cno);
删除索引的命令:drop index 索引名 on 表名
例如:drop index xskc on studentcourse;
create index xskc on studentcourse(id asc ,cno desc);
alter table语句创建索引
格式:
alter table 表名 add index [索引名] [索引类型](索引字段) //普通索引
|add [constraint 约束名] primary key [索引类型](主键字段) //主键索引
|add [constraint 约束名] unique [索引名] [索引类型](唯一键字段) //唯一性索引
|add [constraint 约束名] foreign key [索引名] (外键字段) reference//外键索引
|add [fulltext|spatial][索引名] (索引字段) //全文索引或空间索引
|disable keys
|enable keys
说明:因为表中只能有一个主键,所以主键索引的名字就是primary,不需要人为命名;disable keys表示更新表时停止更新表中的非唯一性索引;enable keys重新创建丢失的索引。
例题:
例5.3 alter table student add index in_name using btree(stuname);
例 5.4 alter table student add primary key(id),add index mark(birthday,性sex);
create table 语句创建索引
格式:
create table 表名(字段的定义|约束的定义|索引的定义);
例题:
例 5.5
create table xskc
(
stuid char(6) not null,
cno char(3) not null,
result tinyint(1),
credit tinyint(1),
primary key(stuid,cno), //创建主键约束时自动生成的索引
index cj(result) //普通索引
);
删除索引
drop 命令删除索引:drop index 索引名 on 表名
例5.6 drop index st on student;
alter table 命令删除索引:
格式:alter table 表名 |drop primary key |drop index 索引名
|drop forei
您可能关注的文档
最近下载
- 计算机操作系统(慕课版)期末考试卷及评分标准(共5套).docx VIP
- 第十讲中外会通与中华民族巩固壮大(明朝时期)-中华民族共同体概论专家大讲堂课件.pptx VIP
- 痛风的药物治疗.pptx
- 中华民族共同体概论课件专家版10第十讲 中外会通与中华民族巩固壮大(明朝时期).pdf VIP
- HX108-2_七管半导体收音机_实习报告.doc VIP
- 新外研版高二英语选择性必修三developing ideas课件(巴黎圣母院).pptx
- 民谣介绍PPT教程文件.ppt
- 青岛版六年级数学下册《总复习二 图形的位置与运动》教学课件PPT小学公开课.pptx
- 银行信用卡行业发展前景与机遇展望报告.docx
- 毕业论文:《小车倒立摆系统进行专家控制的Matlab仿真》.doc
文档评论(0)