1、主键:
若某一个属性组(注意是组)能唯一标识一条记录,sql数据库如何设置外键,该属性组就是一个主键。主键不能重复,且只能有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。
2、外键:
外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。
1、首先新建一张表,设置主键字段,这个等下要关联另外表的外键,如图。2、然后在新建一张表,添加一个外键的字段,如图。3、点击外键功能,切换页面如图,这里就可以设置外键了。4、然后在弹出的对话框中,先取个外键的名。
3、索引:
索引是对表中一个或多个列的值进行排序的结构。
1) 应该创建索引的列的特点:
①在经常需要搜索的列上创建索引,可以加快搜索的速度;
1、以具有 DBA 权限的用户身份连接到数据库,执行 ALTER TABLE 语句,将表定义更新为包括外键定义。创建一个名为 Skills 的表,其中包含潜在技能列表,然后创建一个与 Skills 表具有外键关系、名为 EmployeeSkills 的表。2。
②在作为主键的列上创建索引,强制该列的唯一性;
③在经常用在连接的列上创建索引,主要是一些外键,可以加快连接的速度;
④在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,可以利用索引的排序加快查询;
⑤在经常使用在WHERE子句中的列上创建索引,加快条件的判断速度。
2) 不应该创建索引的列的特点:
②在只有很少数据值的列上不应该创建索引,很少数据值的列如性别等,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大,增加索引,并不能明显加快检索速度;
③当修改性能远远大于检索性能时,不应该创建索引,因为改性能和检索性能是互相矛盾的,当增加索引时,会提高检索性能,但会降低修改性能,当减少索引时,会提高修改性能,但会降低检索性能。因此,当修改性能远大于检索性能时,不应该创建索引。
3) 可以在数据库设计器中创建三种索引:
①唯一索引:
不允许其中任何两行具有相同索引值的索引。
②主键索引:
③聚集索引:
聚集索引:聚集索引表示表中存储的数据按照索引的顺序存储。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。
聚集索引实例:字典默认按字母顺序排序,如知道某个字的读音可根据字母顺序快速定位。
1、登录phpmyadmin,找到要删除外键的数据库的表。如果是本地的话一般是localhost/phpmyadmin。2、使用 SHOW CREATE TABLE at_article 查出表的结构,其中at_article是你要删除外键的表名。3、查来之后,是一个简单的显。
非聚集索引实例:如需查询某个生僻字,则需按字典前面的索引,如按偏旁进行定位,找到该字对应的页数,再打开对应页数找到该字。
与非聚集索引相比,聚集索引通常提供更快的数据访问速度,但对数据更新影响较大。
4)索引的优点:
加快对数据的检索。
5)索引的缺点:
①减慢数据录入的速度;
②增加了数据库的尺寸大小。
4、主键和外键的关系:
先取个外键的名称,在选择外键字段,如图 请点击输入图片描述 选择你外键表所在的数据库,如图 请点击输入图片描述 选择外键表,如图 请点击输入图片描述 再选择外键表主键字段即外键,如图,这样点击保存外键就创建成功了,请。
外键是另一个表的主键,主键是可以被外键有效引用的对象。若A表中的一个字段,是B表的主键,则它可以是A表的外键。
5、主键和外键以及索引的区别:
下面是一个简单的比较表
总结
换一个角度,我们从数据的角度来讲的,我们会把数据分为:数据计算、数据价值和数据管理。我们很多是以数据价值为导向地来做数据计算,但是往往会忽略数据管理,而数据仓库的理念恰恰是数据管理。因此可以在适当的业务阶段来重视数据管理。