博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库系统学习一
阅读量:6408 次
发布时间:2019-06-23

本文共 1318 字,大约阅读时间需要 4 分钟。

hot3.png

学习书《数据库系统教程》第三版 作者:施伯乐

1、什么是索引?

       a、在关系数据库中,索引是表或视图在数据库中的一种结构,他可以使对应的表的SQL语句执行更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。

       b、 根据数据库的功能,可以在数据库设计器中创建四种索引:普通索引、唯一索引、主键索引和聚集索引;

         普通索引:

            这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

            创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);

            修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);

            创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) )

        唯一索引:

            唯一索引是不允许其中任何两行具有相同索引值的索引。

            当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。

            创建唯一索引的几种方式:

            创建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);

            修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;

            创建表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

      主键索引:

        数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

        在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。有关主键的更多信息,请参见定义主键。

        提示尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键索引。

2、数据库中的几种键。

     a、超键:在关系中能唯一标识元组(行)的属性或属性集称为关系模式的超键。

     b、候选键:不含有多余属性的超键称为候选键,也就是在候选键中,若再删除属性,就不是键了。(是候选键就是超键,是超键不一定是候选键)。

    c、主键:用户选作元组标识的候选键称为主键。

    d、外键:如果模式R中的属性K是其他模式的主键,那么K在模式R中称为外键。值的取值为null或者他的主键值。

                    

转载于:https://my.oschina.net/u/2367628/blog/520944

你可能感兴趣的文章
框架和语言的作用
查看>>
unidac连接ORACLE免装客户端驱动
查看>>
Cygwin + OpenSSH FOR Windows的安装配置
查看>>
咏南中间件支持手机客户端
查看>>
fastscript增加三方控件之二
查看>>
Windows Vista RTM 你准备好了么?
查看>>
Tensorflow Serving 模型部署和服务
查看>>
Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet 3.0+JSP 2.2深入剖析与实例应用
查看>>
topcoder srm 680 div1 -3
查看>>
topcoder srm 430 div1
查看>>
具体数学第二版第四章习题(1)
查看>>
高效前端优化工具--Fiddler入门教程
查看>>
【翻译】我钟爱的HTML5和CSS3在线工具
查看>>
Java多线程学习(吐血超详细总结)
查看>>
css3 变形
查看>>
Win7 64bit 安装Mysql5 出错 无法启动服务。
查看>>
嵌入式 H264参数语法文档: SPS、PPS、IDR以及NALU编码规律
查看>>
初识Opserver,StackExchange的监控解决方案
查看>>
给大家讲解一下JavaScript与后台Java天衣无缝相结合
查看>>
探索HTML5之本地文件系统API - File System API
查看>>