学习书《数据库系统教程》第三版 做者:施伯乐数据库
一、什么是索引?数据库设计
a、在关系数据库中,索引是表或视图在数据库中的一种结构,他可使对应的表的SQL语句执行更快。索引的做用至关于图书的目录,能够根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将全部记录一一取出,和查询条件进行一一对比,而后返回知足条件的记录,这样作会消耗大量数据库系统时间,并形成大量磁盘I/O操做;第二种就是在表中创建索引,而后在索引中找到符合查询条件的索引值,最后经过保存在索引中的ROWID(至关于页码)快速找到表中对应的记录。性能
b、 根据数据库的功能,能够在数据库设计器中建立四种索引:普通索引、惟一索引、主键索引和汇集索引;学习
普通索引:设计
这是最基本的索引类型,并且它没有惟一性之类的限制。普通索引能够经过如下几种方式建立:教程
建立索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);索引
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);table
建立表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) )搜索
惟一索引:数据
惟一索引是不容许其中任何两行具备相同索引值的索引。
当现有数据中存在重复的键值时,大多数数据库不容许将新建立的惟一索引与表一块儿保存。数据库还可能防止添加将在表中建立重复键值的新数据。例如,若是在 employee 表中职员的姓 (lname) 上建立了惟一索引,则任何两个员工都不能同姓。
建立惟一索引的几种方式:
建立索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;
建立表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );
主键索引:
数据库表常常有一列或列组合,其值惟一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动建立主键索引,主键索引是惟一索引的特定类型。该索引要求主键中的每一个值都惟一。当在查询中使用主键索引时,它还容许对数据的快速访问。有关主键的更多信息,请参见定义主键。
提示尽管惟一索引有助于定位信息,但为得到最佳性能结果,建议改用主键索引。
二、数据库中的几种键。
a、超键:在关系中能惟一标识元组(行)的属性或属性集称为关系模式的超键。
b、候选键:不含有多余属性的超键称为候选键,也就是在候选键中,若再删除属性,就不是键了。(是候选键就是超键,是超键不必定是候选键)。
c、主键:用户选做元组标识的候选键称为主键。
d、外键:若是模式R中的属性K是其余模式的主键,那么K在模式R中称为外键。值的取值为null或者他的主键值。