精华内容
下载资源
问答
  • 稍后更新。。。 转载于:https://www.cnblogs.com/Chamberlain/p/11059307.html

    稍后更新。。。

    转载于:https://www.cnblogs.com/Chamberlain/p/11059307.html

    展开全文
  • 文章目录一、主键外键:1.概念2.区别3.作用4.举例:5....一、主键外键: 1.概念 SQL的主键表示唯一标识一条记录,...外键与主键相对,作用就是通过主外键之间关系使对张表中的数据更好的关联。 2.区别 主键——一个

    一、主键、外键:

    1.概念

    SQL的主键表示唯一标识一条记录,不能有重复的,不允许为空。例如:一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

    SQL的外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。外键与主键相对,作用就是通过主外键的之间关系使对张表中的数据更好的关联。

    2.区别

    主键——一个表主键只能有一个。

    外键——一个表可以有多个外键。

    3.作用

    主键——用来保证数据完整性。
    外键——用来和其他表建立联系用的。

    4.举例:

    关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。

    比如:

    学生表(学号,姓名,性别,班级),其中每个学生的学号是唯一的,学号就是一个主键;

    课程表(课程编号,课程名,学分),其中课程编号是唯一的,课程编号就是一个主键;

    成绩表(学号,课程号,成绩),成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以,学号和课程号的属性组是一个主键。(必须是属性组,一个表只能有一个主键)

    成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键;同理,成绩表中的课程号是课程表的外键。

    5.总结

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
    1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。

    身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
    2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

    在这里插入图片描述

    展开全文
  • 关系型数据库(例如mysql)中的一条记录中有若干个属性,若其中一个属性组(注意是组)能标识唯一一条记录,该属性组就可以称为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号...

    关系型数据库(例如mysql)中的一条记录中有若干个属性,若其中一个属性组(注意是组)能标识唯一一条记录,该属性组就可以称为一个主键
    比如
    学生表(学号,姓名,性别,班级)
    其中每个学生的学号是唯一的,学号就是一个主键
    课程表(课程编号,课程名,学分)
    其中课程编号是唯一的,课程编号就是一个主键
    成绩表(学号,课程号,成绩)
    成绩表中的单一一个属性无法标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键
    成绩表中的学号不是成绩表的主键,但是它和学生表中的学号相对应,并且学生表中的学号是学生表中的主键,则称成绩表中的学号是学生表的外键
    同理成绩表中的课程号是课程表的外键
    总结:
    1,主键是能确定一条记录的唯一标识,比如,一条记录包括身份证号,姓名,年龄。身份证号是唯一能确定你这个人的,其他的都有可能重复,所以身份证号是主键。
    2,外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那它就可以是A表的外键
    文章取自:https://blog.csdn.net/fengzongfu/article/details/78820485

    展开全文
  • 主键&表之间关系外键

    千次阅读 2020-06-19 19:52:14
    Primary key:(pk)主键 直接代表字段为not null,不许重复,且一个表只有一个主键。 primary key 相当于在各个组成主键的字段上加上not null约束,再以所有主键字段组合在一起加unique约束。 并且建立主键将自动添加...

    Primary key:(pk)主键
    直接代表字段为not null,不许重复,且一个表只有一个主键。
    primary key 相当于在各个组成主键的字段上加上not null约束,再以所有主键字段组合在一起加unique约束。
    并且建立主键将自动添加一个Bi_tree索引。(因为i主键分离度非常高)

    插入信息必须符合主键约束。

    主键的创建:
    1.create table table_name(
    字段名 类型 primary key
    );
    2.create table table_name(
    字段名 类型
    primary key(字段名)  --可以明确主键的名字
    );
    3.(推荐:可以设定主键名字[前两种不知道主键的名字],主键也是一种constraint,并且可以开启关闭)
    create table 表名(
    ......
    ,constraint 主键(PK)名 primary key(字段名)
    );

    create table sm_student
    (
    name varchar2(10) primary key,
    depart varchar2(10),
    birthday DATE,
    dome varchar2(10)
    );
    国外一般用'姓名+出生日期'作为主键
    

    添加主键:
    alter table table_name
    add primary key(字段名);

    create table banji(
    bno char(5) primary key,
    bname varchar2(40)
    );
    drop table banji;
    create table banji(
    bno char(5),
    bname varchar2(40),
    constraint b_pk primary key(bno)--推荐使用:可以明确主键名称
    );
    
    insert into banji values('97001','97001Bn');
    insert into banji values('97002','97002Bn');
    insert into banji values('97003','97003Bn');
    insert into banji values('97001','97002Bn');--重复插入会报错

    外键

    添加外键:

    创建外键:
    create table table_name
    (字段列表,
    constraint 外键约束名
    foreign key(子表组成外键的字段)
    references 父表名称(父表组成外键的字段)
    );
    
    alter table table_name
    add constraint 外键约束名
    foreing key(子表组成外键的字段)
    references 父表名称(父表组成外键的字段);
    
    
    练:
    drop table student;
    create table student(
    sno char(5),
    sname varchar(20),
    sage number(2),
    sclass char(5),
    constraint sclass_fk foreign key(sclass) --此表中的sclass 参考到父表(班级表)中的bno
    references banji(bno)
    );
    
    insert into student values('10001','Tom',21,'97001');
    insert into student values('10002','Jerry',24,'97002');
    insert into student values('10003','Lili',23,'97003');
    
    insert into student values('10004','Tim',25,'97004');--出错

     

    有外键的字段修改:要先参照父表(如在子表插入数据时,父表中没有时,插不进去)。
    删表必须先删父表,再删子表。对上例:先删除班级表会出错。

    delete from banji where bno='97001';
    drop table banji;

     

    展开全文
  • 数据库中的主键与外键关系,通俗易懂

    万次阅读 多人点赞 2017-12-16 16:13:08
    一、什么是主键外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,...
  • 什么是主键外键,索引? 主键:表中用于唯一标识一条记录的信息,不能有重复,不允许为空;主 键只能有一个;主键作用是来保证数据完整性 外键:该表的外键则是另一表的主键, 外键可以有重复的, 可以是空值;一...
  • (百度百科):数据库是以一定方式储存在一起、能多个用户共享、具有尽可能小的冗余度、应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新...
  • SQL的主键外键约束  SQL的主键外键的作用:  外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时...
  • postgresql 约束、主键外键

    千次阅读 2020-05-28 15:34:44
    注意在最后一个表中主键外键之间有重叠。 我们知道外键不允许创建任何产品都不相关的订单。但如果一个产品在一个引用它的订单创建之后被移除会发生什么?SQL允许我们处理这种情况。直观上,我们有几种选项: 不...
  • 一、什么是主键外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如  学生表(学号,姓名,性别,班级)  其中每个学生的...
  • 如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。 4.对于有效成绩,系统将其保存在课程成绩文件中。...
  • 外键

    2021-03-03 20:16:08
    由此可见,外键表示了两个关系之间的相关联系。以另一个关系外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。中文名外键外文名foreign key别名外码、外关键字应用学科数据库...
  • 主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。 索引:  是用来快速地寻找那些具有...
  • 主键(PRIMARY KEY) # 主键又叫主键约束,是MySQL中使用最为频繁的约束。一般为了便于DBMS更快的查找到表中的记录,都会在表中设置一个主键。 # 主键分为单字段主键和多字段联合主键 * 使用主键应该注意一下几点...
  • 主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。2、外键(foreign key)是用于建立和加强两个表...
  • MySQL外键约束

    2021-07-28 10:06:10
    关系键是一个表中的一个或几个属性,用来标识该表的每一行或另一个表产生联系。 其中就包括外键 1 主键(primary key或unique key) 又称主码,数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合...
  • MySQL添加主键外键

    千次阅读 2021-02-02 09:02:41
    删除表中已有的主键约束 (1… 目录 part1:数据类型 part2:约束 part3:主键索引 PRI &唯一索引 UNI &普通索引 MUL part4:外键:foreign key part5:在外键中设置联级删除和联级更新 part6:表和表之间关系 part7:存储...
  • E-R 图 (实体关系模型)E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型...用“椭圆图框”表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;用”菱形框“表示实体型之...
  • SQL的主键外键约束

    千次阅读 2016-05-09 15:04:05
    SQL的主键外键的作用:  外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定...
  • Sql server中的主键与外键

    千次阅读 2014-03-13 17:01:23
    Sql server中的主键与外键 分类: sql server 2012-08-04 09:37 601人阅读 评论(26) 收藏 举报 sql servernulldeletetabledatabase数据库  主键是用来强制一个字段或多个字段组合值的唯一性,且...
  • 实体之间的联系 联系(Relationship) 现实世界中事物内部以及事物之间的联系在信息世界中 ...如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体之联系,反之亦然,则称实...
  • 数据库外键的使用

    2019-09-27 13:12:39
    外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中...建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。 指定主键关键字: fo...
  • 许多时候实现目标功能都会遇到一张表里两个外键指向同一个表的主键,即为用一个表1关联另一个表2,表1里却使用了两个相同的外键去关联表2的主键,但是指向表2的事物是不同的,若不懂,直接看下列例子。
  • mysql _外键、实体关系与ER图

    万次阅读 2018-01-16 22:04:23
    概念: A实体的某个字段指向 B实体的主键, 则称A实体的那个字段为该实体的外键, 一个表里可以有多个外键 drop table if exists class; create table class( class_no int(2) unsigned zerofill primary key auto...
  • 就是讲两个表的数据产生关联,就比如个人信息表和部门表之间,部门表的部门id就可以作为一个外键存放于个人信息表中,除此之外设定外键在父子表中的维护关系,可以达到一个类似于级联的操作,就是当父级表(主键作为...
  • 主键外键

    2018-06-24 17:31:23
    1.定义1.1 什么是主键外键1.2 主键外键的作用1.3 主键外键和索引的区别2.主键(primary key)2.1 通过SSMS设置主键2.2 通过SQL语句设置主键3....定义1.1 什么是主键外键关系型数据库...
  • 一、查看表基本结构(describe、desc) describe 表名;... Key:是否为主键约束 Default:默认值 Extra:附加信息(auto_increment等) 二、查看表的创建信息(show create table) show create ...
  • Mysql命令添加外键前提是有这么几个表 以mall_product 和 mall_category为例ALTER TABLE mall_productADD CONSTRAINT fore_pro_cateFOREIGN KEY ( pro_category_id )REFERENCES mall_category ( category_id );外键...
  • 数据库中主键外键的设计原则

    千次阅读 2012-03-07 03:12:14
    主键外键是把多个表组织为一个有效的关系数据库的粘合剂。主键外键的设计对物理数据库的性能和可用性都有着决定性的影响。 必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键外键的结构是这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,743
精华内容 10,697
关键字:

外键与相应的主键之间的关系