精华内容
下载资源
问答
  • 所以在商品表中增加的这列就叫“外键”,商品表就叫外键表,厂家表就叫主键表。. 销售记录表如果再引用商品表,这时,销售记录表就是“外键表”,商品表又成了“主键表” 数据冗余 占用空间多。 想修
    1,两张表中都有主键。
    商品表的主键是:商品Id,
    厂家表的主键是:厂家Id
    但是,在商品表中需要引用厂家表,所以在商品表中增加一列,这一列是用来引用厂家表中的主键(厂家Id)的。所以在商品表中增加的这列就叫“外键”,商品表就叫外键表,厂家表就叫主键表。.


    销售记录表如果再引用商品表,这时,销售记录表就是“外键表”,商品表又成了“主键表”


    数据冗余
    占用空间多。
    想修改厂家信息得修改很多行


    每次录入新的货物的话必须把厂家地址、厂家电 话等信息重新录入一次。 




    数据冗余:
    1.存储空间的浪费
    2.更新数据的时候需要将表中所有原数据都更新。


    拆成两张表。
    减少数据冗余,保证数据库的正确性
    但是查询麻烦了


    假设两张表中都有主键,A表,B表。A表中的主键为AId。B表中的主键为Bid.

    这时,A表中引用了B表中的Bid作为一列,这时,我们就叫A表位B表的外键表,而B表叫做主键表。

    外键表与主键表是相对关系。


    展开全文
  • 主键主键外键和索引A “key” is one of the most basic and important concepts of the Database Management System (DBMS); the keys helps us work easily with the records and the tables in our database by ...

    主键主键外键和索引

    A “key” is one of the most basic and important concepts of the Database Management System (DBMS); the keys helps us work easily with the records and the tables in our database by providing us with the ease of accessing and retrieving the data from the table. A primary key is the first key to be understood as it uniquely identifies the particular record of any table. The primary key and foreign key however, must not be confused with each other as they have a completely different definition as well as usage. Here are the differences between the two.

    “密钥”是数据库管理系统(DBMS)的最基本和最重要的概念之一; 这些键通过使我们能够轻松地访问和检索表中的数据,从而帮助我们轻松地处理数据库中的记录和表。 主键是第一个要理解的键,因为它唯一地标识任何表的特定记录。 但是,主键和外键不能相互混淆,因为它们的定义和用法完全不同。 这是两者之间的区别。

    Difference between Primary Key and Foreign Key

    Image Source

    图片来源

    主键和外键之间的区别 (Difference between Primary Key and Foreign Key)

    S.no. Primary key Foreign key
    1 The primary key of a particular table is the attribute which uniquely identifies every record and does not contain any null value. The foreign key of a particular table is simply the primary key of some other table which is used as a reference key in the second table.
    2 A primary key attribute in a table can never contain a null value. A foreign key attribute may have null values as well.
    3 Not more than one primary key is permitted in a table. A table can have one or more than one foreign key for referential purposes.
    4 Duplicity is strictly prohibited in the primary key; there cannot be any duplicate values. Duplicity is permitted in the foreign key attribute, hence duplicate values are permitted.
    5 Example:

    Consider the table student, which keeps record of students in a class:

    Here, Id is the primary key which uniquely identifies each record in the table “student”

    ID NAME Address
    101 ABC x
    102 DEF y
    103 GHI z
    104 JKL w
    Now, let us consider the table teacher, which records the teachers in the school:

    Here Tid or teacher id is the unique primary key, for each record in the table. This table uses the “ID” attribute which is the primary key of the “student” table as its reference key or foreign key to refer to the student the particular teacher teaches, :

    TID NAME TAddress ID
    1 Priya P 101
    2 Riya R 102
    3 Sam S 102
    4 Tom T 103

    Since one student is taught by more than one teachers, the ID attribute (which is the foreign key in this table), contains duplicate values.

    序号 首要的关键 外键
    1个 特定表的主键是可唯一标识每条记录且不包含任何空值的属性。 特定表的外键只是其他表的主键,在第二个表中用作参考键。
    2 表中的主键属性永远不能包含空值。 外键属性也可以具有空值。
    3 一个表中最多只能有一个主键。 一个表可以具有一个或多个外键以供参考。
    4 主键中严格禁止重复; 不能有任何重复的值。 外键属性中允许重复,因此允许重复值。
    5 例:

    考虑一下表格学生,该表格保留班级学生的记录:

    在此,Id是唯一标识表“ student”中每个记录的主键

    ID 名称 地址
    101 美国广播公司 X
    102 防御 ÿ
    103 GHI ž
    104 JKL w
    现在,让我们考虑表老师,它记录了学校中的老师:

    对于表中的每个记录,此处的Tid或Teacher ID是唯一的主键。 该表使用作为“学生”表主键的“ ID”属性作为其参考键或外键来引用特定老师所教的学生:

    工业贸易署 名称 地址 ID
    1个 普里亚 P 101
    2 里雅 [R 102
    3 山姆 小号 102
    4 汤姆 Ť 103

    由于一位学生由多位老师教,因此ID属性(此表中的外键)包含重复的值。

    The foreign key of one table although is derived from the primary key of the other table, holds completely different characteristics and these differences are crucial which should be taken care of to avoid any errors.

    一个表的外键虽然是从另一表的主键派生而来的,但它们具有完全不同的特征,这些差异至关重要,应注意避免任何错误。

    Comment below if you have queries related to primary key vs foreign key.

    如果您对主键和外键有疑问,请在下面评论。

    翻译自: https://www.thecrazyprogrammer.com/2019/04/difference-between-primary-key-and-foreign-key.html

    主键主键外键和索引

    展开全文
  • 主键主键外键和索引 Primary and foreign keys are a way in which to constrain related data together to ensure data in your database remains consistent and to ensure no redundant data is in the database...

    主键主键外键和索引

    Primary / Foreign Keys

    Primary and foreign keys are a way in which to constrain related data together to ensure data in your database remains consistent and to ensure no redundant data is in the database as a result of deleting a table or row in one table that affects data in other tables that may perhaps rely on that information. It can cause both data integrity problems as well as problems with your application that makes use of such database.

    主键和外键是一种将相关数据约束在一起的方式,以确保数据库中的数据保持一致,并确保由于删除一个表中的表或行而影响其他表中的数据,从而导致数据库中没有冗余数据也许依赖于这些信息。 它可能导致数据完整性问题,也可能导致使用此类数据库的应用程序出现问题。

    什么是主键? (What’s a primary key used for?)

    A primary key is used to ensure data in the specific column is unique. You can only set constraints with primary keys, by setting a foreign key to another column which creates a relationship with the column that has the primary key set. A prime use of a primary key is in the case of a users table. The id column is likely to be a primary key because is needs to be unique. You may also set this column to auto increment; but the most important component is the primary key.

    主键用于确保特定列中的数据唯一 。 您只可以设定主键约束,通过设置一个外键 ,它创建了一个具有主键设置的关系的另一列。 对于用户表,主键的主要用途。 id列可能是主键,因为它需要唯一。 您也可以将此列设置为自动递增。 但最重要的组成部分是主键。

    为什么需要使用主键? (Why do I need to use a primary key?)

    Well, even though the column set as a foreign key may have duplicate data in multiple rows, it is still relying on the unique information in the primary key. If there was non-unique rows in the primary key column, there would not be a use for a foreign key because you would be mapping one row in the foreign key to two rows in the primary key. In essence, primary to foreign keys ensure that:

    好的,即使设置为外键的列可能在多行中都有重复的数据,它仍然依赖于主键中的唯一信息。 如果主键列中存在不唯一的行,则不会使用外键,因为您会将外键中的一行映射到主键中的两行。 本质上,外键的主键确保:

    • the data that can be inserted in the table that has the foreign key can only be information thatuniquely exists in the primary key column.

      具有外键的表中可以插入的数据只能是主键列中唯一存在的信息。
    • if a DELETE or UPDATE occurs, the action you specified will be undertaken to ensure data integrity and prevent data redundancy in your database. Two primary actions are CASCADE and RESTRICT. CASCADE means any affected data will be deleted as well (hence, cascading), in the case of an UPDATE execution; in order to keep data consistent and prevent data redundancy.

      如果发生DELETE或UPDATE,则将执行您指定的操作以确保数据完整性并防止数据库中的数据冗余。 两个主要动作CASCADE和RESTRICT。 CASCADE表示在执行UPDATE的情况下,所有受影响的数据也将被删除(因此, 级联 ); 为了保持数据一致并防止数据冗余。

    什么是外键? (What’s a foreign key used for?)

    How do you actually ensure that data stays integral, consistent and updated? You make use of foreign keys. A primary key ensures that data is unique in one column, but the foreign key is what makes the data stay consistent, as that is where the important data lies that needs to stay consistent and integral. It’s inevitable that in most database-driven applications you create, you’ll need to have multiple tables that are for different areas of your application that makes a reference to an id or some unique data in another table. For example, a profile comments table – your application needs to understand what user id the profile comment is for. You can make use of a foreign key here that maps to the primary key that, as well as keeping data consistent, it also means that you can set the foreign key to CASCADE and any DELETE and UPDATE actions will be cascaded down to any affected row (such as the foreign key).

    您实际上如何确保数据保持完整,一致和更新? 您使用外键 。 主键可确保数据在一列中是唯一的,但是外键是使数据保持一致的原因,因为重要数据所在的位置需要保持一致和完整。 不可避免的是,在您创建的大多数数据库驱动的应用程序中,您将需要具有多个表,这些表用于应用程序的不同区域,这些表引用了另一个表中的ID或某些唯一数据。 例如, 配置文件注释表–您的应用程序需要了解配置文件注释的用户ID 。 您可以在此处使用映射到主键的外键,并使数据保持一致,这还意味着您可以将外键设置为CASCADE,并且任何DELETE和UPDATE操作将被级联到任何受影响的行(例如外键)。

    翻译自: https://www.eukhost.com/blog/webhosting/whats-the-purpose-use-primary-foreign-keys/

    主键主键外键和索引

    展开全文
  • 外键:是关联另外一个表主键的一个键,保证两个表之间的关联性索引:加快搜索效率 为什么主键只有一个?因为主键起始从实现角度来看是一个 唯一 非空 聚类索引, 聚类索引在一个表中只有一个,所以主键只有一个。...

    主键:保证数据完整唯一性。

    外键:是关联另外一个表主键的一个键,保证两个表之间的关联性

    索引:加快搜索效率

     

    为什么主键只有一个?

    因为主键起始从实现角度来看是一个   唯一 非空 聚类索引, 聚类索引在一个表中只有一个,所以主键只有一个。至于为什么聚类索引在一个表中只有一个是因为聚类索引表的数据物理顺序和索引排序方式一致,而物理存储方式只有一种,所以聚类索引在一个表中只有一种,详细情况请查看聚类索引。

     

    主键与索引的关系是什么?

    首先主键和索引从目的上来讲不是一个概念,主键是为了保证数据唯一性,索引是为了加快检索速度。但是,从实现方式上主键主键却达到了唯一 非空聚类索引的效果。所以

    1. 从实现目的来看(约束)

       主键约束=唯一非空 约束

    2. 从实现效果来看

       主键 = 唯一

     

    主键外键的关系?

     

       外键(Foreign Key)

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

      外键的作用:

      保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!

      例如:

      a b 两个表

      a表中存有客户号,客户名称

      b表中存有每个客户的订单

      有了外键后

      你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x

      建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。

      指定主键关键字: foreign key(列名)

      引用外键关键字: references <外键表名>(外键列名)

      事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

      例如:

      outTable表 主键 id 类型 int

      创建含有外键的表:

      create table temp(

      id int,

      name char(20),

      foreign key(id) references outTable(id) on delete cascade on update cascade);

      说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变。

      建键几个原则:

      1、 为关联字段创建外键。

      2、 所有的键都必须唯一。

      3、避免使用复合键。

      4、外键总是关联唯一的键字段。

    展开全文
  • 终于讲到了一对一的关联关系,好了,不用再讲年级和学生的“故事”了。我们来讲讲经理和部门的故事吧。 现在存在两个这样的持久化类: Manager: public class Manager { private int mgrId; private String ...
  • 主键可用于通过外键关系连接其他表 主键通常具有关联的默认索引,因此数据类型越紧凑,索引将占用的空间越少 一个简单的键比复合键的性能更好 即使在高度并发的环境中,主键分配也必须确保...
  • 外键就是参考主表中某一个字段的值,一般是一个主键记录多个外键的记录。 字段设置了外键就制约了该字段必须在外键的范围内。 说说联合主键和复合主键。 都是保证其唯一性。 联合主键是多个主键联合形成一个主键组合...
  • 主键表和外键表的关系

    千次阅读 2017-07-19 18:02:32
    如上图所示: 有message表和user两张表 user.message_id指向message表的id。 那么,这个时候,为user表建立外键fk_user_message 这个时候就说user表是外键表,message表是主键...(或者是外键表的数据添加主键表中有的
  • 外键用于在一个数据表中引入另一个表的主键 用于当两个表有联系 且一个表的某一类数据 需要用到另一个表的主键元素 则这类数据可设置为外键 例子: 左侧员工表的所属部门的数据 只能来自于右边的公司部门表的部门...
  • 关系型数据库(例如mysql)中的一条记录中有若干个属性,若其中一个属性组(注意是组)能标识唯一一条记录,该属性组就可以称为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号...
  • 只有这两张表存在关系才可以使用内链接和外连接么?要求该表的外键是另一张表的主键
  • 什么是主键外键,索引? 主键:表中用于唯一标识一条记录的信息,不能有重复,不允许为空;主 键只能有一个;主键作用是来保证数据完整性 外键:该表的外键则是另一表的主键, 外键可以有重复的, 可以是空值;一...
  • 数据库中的主键外键关系,通俗易懂

    万次阅读 多人点赞 2017-12-16 16:13:08
    一、什么是主键外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,...
  • SQL 主键外键关系

    千次阅读 2018-04-25 10:15:27
    转载:点击打开链接SQL的主键外键的作用:外键取值规则:空值或参照的主键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为...主键外键和索引的区别定义:主键--唯一标识一条记...
  • 主键外键

    2018-07-04 15:53:35
    一、什么是主键外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一...
  • 主键外键

    2016-01-28 15:37:11
    表2有主键id2,但是表2依赖于表1,所以表2中也有字段id1,这里id1就是表2的依赖于表1 的外键外键是表2的外键,约束了同表1 的关系。 学生表和学生选课表 学生表主键学生id,学生选课表中有很多学生id,这个时候学生id...
  • 稍后更新。。。 转载于:https://www.cnblogs.com/Chamberlain/p/11059307.html
  • 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键(只要有一个键唯一,再随便组其他的键,合起来叫主键) 候选键(candidatekey):不含有多余属性的超键称为候选键(最小的超键,ID,身份证号) 主键...
  • 外键+主键

    2008-09-07 00:34:24
    例如三张表。STUDENT,BOOK,NUMS ...NUMS中的STUDENTID,BOOKID 要设成外键,与STUDENT ,BOOK 联系产生关系 还要在NUMS 的ID字段设置为主键; “多”的一方要设置外键主键。 “一”的一方要设置主键;...
  • 主键约束:规定主键唯一、非空 alter table device add constraint con_test unique (device_id) --device是表名,con_...外键约束:建立两张表之间的关系,子表要引用父表的列。 foreign key references c...
  • SQL的主键外键约束  SQL的主键外键的作用:  外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时...
  • 主键关联的重点是关联的两个表共享一个主键值。例中采用,一个单位在网上的一个系统中注册会员。 1,会员数据保存在会员表company中,每个会员的登录账号保存在表login中; 2,一个会员只有一个登录账号,一个...
  • sql 主键 外键

    2019-08-07 11:58:40
    主键:一个关系表,一行数据可以唯一的标识这张表,不使用任何与业务相关的字段作为主键,基本上都是全局唯一GUID类型,自增id什么的来做主键外键外键是定义的 class表 id name 1 一班 ...
  • 主键保证了一张表数据的唯一性,外键是另一张表的主键
  • SQL关系-主键外键

    千次阅读 2013-12-18 08:56:54
    一、定义: 主键--唯一标识一条记录,不能有重复的,不允许为空 外键--表的外键是另一表的主键,外键可以有重复的,可以是空值 二、作用: 主键--用来保证数据完整性 ...四、SQL中主键外键关系及运用 1.
  • SQL中主键外键关系

    千次阅读 热门讨论 2013-07-21 20:08:06
    在学过数据库以后对于约束的概念就不是太陌生了,即:约束(Constraint)是Microsoft SQL Server 提供的自动保持... 主键外键是把多个表组织为一个有效的关系数据库的粘合剂。主键外键的设计对物理数据库的性能
  • 主键外键

    2018-09-04 22:18:03
    外键:一个表中的主键,用于另一个表中的关系字段(联系两个表)。 理解:在关系数据表中,每一行数据都有很多属性(字段),当这个属性(字段)在另一张表中作为主键,则,这个属性名(字段名)就是当前表的外键。...
  • 外键 主键 概念

    2020-11-04 09:09:17
    关于数据库主键外键(终于弄懂啦) 关系型数据库中的一条记录中有若干个属性, 若其中某一个属性组(注意是组)能唯一标识一条记录, 该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生...
  • 关系型数据库和主键外键

    千次阅读 2021-01-11 21:55:07
    一对一:既可以把表A的主键充当表B的外键,也可以把表B的主键充当表A的外键(一个人只有一把钥匙,一把钥匙只给一个人) 一对多:把表A的主键充当表B的外键(一个父亲有几个孩子,一个孩子只有一个父亲) 多对多:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,077
精华内容 37,230
关键字:

外键不是本关系的主键