当前位置:首页 » 数据仓库 » 数据库外键索引吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库外键索引吗

发布时间: 2022-05-17 10:33:15

数据库中主键和外键是干吗的

1、主键:若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。主键不能重复,且只能有有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。

2、外键: 外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。

3、简单来说就是把两个表关联起来。同样的一个名字在两个表中:如stu(name,sex)和表grade(name,cou),如果name是表stu中的主键,并且name也是表grade中的主键,那么表stu中的name就是表grade的外键了。

4、外键取值规则:空值或参照的主键值。插入非空值时,如果主键表中没有这个值,则不能插入。更新时,不能改为主键表中没有的值。删除主键表记录时,可以在建外键时选定外键记录一起级联删除还是拒绝删除。更新主键记录时,同样有级联更新和拒绝执行的选择。sql的主键和外键就是起约束作用。

5、索引的主要作用为了提高查询速度。主键就是唯一索引。外键是两张表之间做连接关系时用的。一般是某一张表的一个外键字段引用另一张表的主键。

㈡ mysql的建立外键必须是索引吗

只要是外键 就一定得有索引 因为你要用它关联 你应该站在数据库的角度来看问题 如果你开发一个数据库 对于有关联的表 存储方式肯定不能像单一表一样 key一定也要有一个BTree去存 这个树 就是索引。所以当你没有的时候,就会自动创建一个索引。

㈢ SQL2005外键带有索引吗我还需要在外键上面建索引吗

object_id('TableB'))/*name-------------------------- PK_TableA_ID PK_TableB_ID IX_TableB_A_ID*/外键除了为了实体完整性意外,它一般还是另一个表的主键,主键是索引。 所以含有外键的表连接的时候会用到索引(外键的主表的)比较快 外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。当创建或修改表时可通过定义 FOREIGN KEY 约束来创建外键。 在外键引用中,当一个表的列被引用作为另一个表的主键值的列时,就在两表之间创建了链接。这个列就成为第二个表的外键

㈣ 数据库的主键和外键,与索引的区别。

主键就是:表中经常有一个列或列的组合,其值能唯一地标识表中的每一行,不允许重复外键就是其他表的主键,引用了外键,也就是说这两张表通过主外键进行了关联
唯一索引:添加索引是为了提高查询的速度,查询的时候根据索引来查询,主键可以看成是唯一的索引。主键和唯一索引的最大区别就是主键不可以为空,唯一索引可以为空

㈤ 数据库中的索引和外键是什么意思有什么用途

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

通俗讲,一个数据库中的某一个元素,引用另一个数据库的内容。引用外面的那个元素称为外键

使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(lname)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。

㈥ 主键、外键和索引的区别

你说主键和索引有什么区别,个人认为没区别,因为主键是索引的一种,而且是最严格的一种索引,所以个人认为主键和索引没什么区别。
唯一让人感觉有区别的就是主键有约束性(也就是非空和唯一),一般的索引没有约束性。但是也有唯一索引,这些索引也有约束性,所以个人感觉如果非要说主键和索引的区别那么可能就是非空了,不过因为数据库的不同,有些数据库产品在唯一索引上也不允许为空,所以这样二者就没什么区别了。
当然,如果非要说主键和一般索引的区别,那么个人认为就在于主键的约束性上。
外键,外键是依存于主键存在的,没有主键也就没有外键。外键是两张表建立的一种约束与联系,是“强制约束”,类似于“A表有B表才能有,A表没有B表不能有”。外键更多的偏向于约束,并不是索引(个人理解)
至于索引的概念那就多了,有约束(比如非空就是一种约束,但是在某些数据库上将这类约束也作为一个索引单独保存),有一般索引(也就是查询索引),也有索引+约束(比如主键),还有位图索引(oracle有,其他数据库不知道),分区(其实oracle的分区也是一种索引),还有合并索引(这个名字忘记了,类似两张表何用一个字段的那种,好像叫这个)以及反索引等等,这些都叫做索引。
综上个人认为,主键和索引的区别一般来说是体现在约束上,当然索引不能被引用为外键,主键可以,这个是在应用上的一个区别。而外键则不是索引,仅仅是依存于主键的一种便捷检查(约束)方式。

㈦ 数据库中什么是主键,什么是外键

主键(Primary key): 也称为主码或主关键字,用于惟一地确定一个元组的属性或属性组(复合主码)。每个关系都有一个并且只有一个主码。

外键(Foreign Key):也称为外码或外部关键字。如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。

在关系数据库中可以通过外键使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系,从(子)关系(n方)称为参照关系。

(7)数据库外键索引吗扩展阅读:

数据库主键作用:

1、保证实体的完整性

2、加快数据库的操作速度

3、在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

4、DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键。它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。

㈧ 数据库索引是什么,有什么优点和缺点

数据库中索引的优缺点
为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显着减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。第三,对于那些定义为text,
image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

㈨ 什么是关系型数据库,主键,外键,索引分别是什么

1、关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。

2、主关键字(primary key)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录

3、外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字

4、在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单