一,MySQL的表的组成,
看下面这幅图,创建表的额基本组成都有了。嘻嘻,还有没有的,用到再了解吧。下面我主要从键做深层次的理论方面 的理解以及实践。其他的只说一下概念及用法即可。
二,键(超键,候选键,主键,外键)下面我从这几个方面一一解答。
- 什么是键?
- 为什么要有键这个东西?
- 键是是用来做什么的?
- 怎么用键?
- 怎么用好键?
1.什么是键?为什么要有键这个东西?键是用来做什么的?
数据库中称之为关键码,简称键。好了,我们看到两个字关键,百度百科是这样解释的:对事物最紧要的重要组成成分。那我们知道了这个关键码是一个表的重要组成成分,那如果不要这个关键码,有什么影响呢?这个关键码好比我们的名字,如果我们没有名字,那别人都不知道叫你什么,所以为了方便,就给我们人加了名字这样的属性。 键也一样为了能够标识每一行。键可以有一个或者多个属性组成。
2.键的分类
- 超键:在关系数据库中能够唯一的标识元祖的属性集。
- 候选键:能够唯一的标识元祖,并且不含有多余属性的超键。
- 主键:用户选作元祖标识的候选键。
- 外键:在两个关系模式中,一个模式的主键在另一个模式中。
(有相同名字的学生)举个列子:学生(学号,姓名,课程号,) 课程(课程号,课程名,课程老师)
学生表的超键有:(学号)(学号,姓名)(学号,课程号)(学号,姓名,课程号);
候选键有:(学号)
主键:(学号)
外键:(课程号)课程号在课程表中是主键,但是在学生表中是外键。
主键,超键,候选键的作用:
①保证实体的完整性
②加快数据库的操作速度
③在表中添加新记录时,表会自动检查新纪录的主键值,不允许该值与其他记录主键值重复
④表自动按主键值的顺序显示表中的记录,如果没有定义主键,则按输入记录的顺序显示表中的记录
3.索引:是对表中的一列或者多列做进行排序的结构。目的就是加快表的检索速度。
例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可见,索引是用来定位的。
从数据搜索实现的角度来看,索引也是另外一类文件/记录,它包含着可以指示出相关数据记录的各种记录。其中,每一索引都有一个相对应的搜索码,字符段的任意一个子集都能够形成一个搜索码。这样,索引就相当于所有数据目录项的一个集合,它能为 既定的搜索码值的所有数据目录项提供定位所需的各种有效支持