精华内容
下载资源
问答
  • 外键和主键之间的关系
    千次阅读
    2019-09-23 11:28:15
    什么是数据库?
    

    (百度百科):数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
    数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。

    数据库中的主键是什么,外键是什么呢?
    

    主键:表中用于唯一标识一条记录的信息,不能有重复,不允许为空;主 键只能有一个
    外键:该表的外键则是另一表的主键, 外键可以有重复的, 可以是空值;一个表可以有多个外键

    主键与外键的关系,聚个简单的例子:

    1学生表
    (学号,姓名,性别,班级) ;
    其中每个学生的学号是唯一的,学号就是一个主键 
    2课程表
    (课程编号,课程名,学分) ;
    其中课程编号是唯一的,课程编号就是一个主键 
    3成绩表(学号,课程号,成绩) ;
    在成绩表中,学号和课程号的组合可以唯一标识一条记录,即学号和课程号的属性组是一个主键 
    成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键 
    同理 成绩表中的课程号是课程表的外键 
    
    更多相关内容
  • 数据库SQL的主键和外键之间关系

    千次阅读 2021-03-25 16:50:16
    什么是主键和外键,索引? 主键:表中用于唯一标识一条记录的信息,不能有重复,不允许为空;主 键只能有一个;主键作用是来保证数据完整性 外键:该表的外键则是另一表的主键, 外键可以有重复的, 可以是空值;一...

    什么是主键和外键, 索引

    主键:表中用于唯一标识一条记录的信息,不能有重复,不允许为空;主 键只能有一个;主键作用是来保证数据完整性

    外键:该表的外键则是另一表的主键, 外键可以有重复的, 可以是空值;一个表可以有多个外键;外键作用是用来和其他表建立联系用的

    索引:该字段没有重复值,但可以有一个空值;一个表可以有多个唯一索引; 索引作用是提高查询排序的速度

     

    外键取值规则:空值或参照的主键值。

    (1)插入非空值时,如果主键表中没有这个值,则不能插入。

    (2)更新时,不能改为主键表中没有的值。

    (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

    (4)更新主键记录时,同样有级联更新和拒绝执行的选择。

    简而言之,SQL的主键和外键就是起约束作用。

     

    什么值可以成为主键:

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

    比如:

    学生表(学号,姓名,性别,班级)

        其中每个学生的学号是唯一的,学号就是一个主键;

    课程表(课程编号,课程名,学分)

        其中课程编号是唯一的,课程编号就是一个主键;

    成绩表(学号,课程号,成绩)

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

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

     

    总结

    定义主键和外键主要是为了维护关系数据库的完整性

    一、主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

    外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

     

    创建SQL的主键和外键约束的方法:

    create table Student --建表格式:create table 自定义的表名

    ( --字段名一般为有一定意义的英文
    
    StudentName nvarchar(15), -- 格式:字段名类型()括号里面的是允许输入的长度
    StudentAge int, --int型的后面不需要接长度
    StudentSex nvarchar(2) --最后一个字段后面不要逗号
    )
    
    --在创建表时就可以对字段加上约束:
    create table Student
    (
    
    StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)
    
    StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空
    
    StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)
    
    StudentAge int DEFAULT ((0)), --加默认值约束
    
    StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加检查约束,格式:check (条件表达式)
    
    )
    
    
    --如果在表创建好了以后再加约束,则格式分别为:
    
    
    -- 主键:
    alter table 表名
    add constraint PK_字段名--"PK"为主键的缩写,字段名为要在其上创建主键的字段名,'PK_字段名'就为约束名
    primary key (字段名) --字段名同上
    
    
    
    --唯一约束:
    alter table 表名
    add constraint UQ_字段名
    unique (字段名)
    
    
    --外键约束:
    alter table 表名
    
    add constraint FK_字段名--"FK"为外键的缩写
    
    foreign key (字段名) references 关联的表名(关联的字段名) --注意'关联的表名'和'关联的字段名'
    
    alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
    
    alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)
    
    alter table 成绩表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo) 
    
    ON UPDATE CASCADE ON DELETE CASCADE
    级联更新,级联删除,这样在删除主表Student时,成绩表中该学生的所有成绩都会删除。
    
    
    
    
    
    --检查约束:
    alter table 表名
    add constraint CK_字段名
    check (条件表达式) --条件表达式中的条件用关系运算符连接
    
    
    --默认值约束:
    alter table 表名
    add constraint DF_字段名
    default '默认值' for 字段名--其中的'默认值'为你想要默认的值,注意'for' 
    
    
    --删除创建的约束:
    alter table 表名
    drop constraint 约束名--约束名为你前面创建的如:PK_字段这样的约束名
    
    --注意:如果约束是在创建表的时候创建的,则不能用命令删除
    --只能在'企业管理器'里面删除

     

    展开全文
  • 数据库中的主键外键关系

    千次阅读 2021-09-25 10:56:58
    文章目录一、主键外键:1.概念2.区别3.作用4.举例:5....一、主键外键: 1.概念 SQL的主键表示唯一标识一条记录,...外键主键相对,作用就是通过主外键之间关系使对张表中的数据更好的关联。 2.区别 主键——一个

    一、主键、外键:

    1.概念

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

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

    2.区别

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

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

    3.作用

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

    4.举例:

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

    比如:

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

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

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

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

    5.总结

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

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

    在这里插入图片描述

    展开全文
  • 数据库主键和外键关系

    千次阅读 2019-05-09 14:13:23
    关系型数据库(例如mysql)中的一条记录中有若干个属性,若其中一个属性组(注意是组)能标识唯一一条记录,该属性组就可以称为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号...

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

    展开全文
  • 数据冗余:关系型数据库的数据冗余主要是指关系数据库中同一信息数据的重复存储 数据冗余分类: 1.表的重复 2.属性的重复:不同表的属性重复,常用来建立表之间的联系只需一个公共属性,是必须的;同一表内属性...
  • 主要介绍了MySQL中主键外键的区别联系,是MySQL入门学习中的基础知识,需要的朋友可以参考下
  • mysql数据库外键主键详解

    千次阅读 2021-01-18 18:41:25
    一、什么是主键外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,...
  • 稍后更新。。。 转载于:https://www.cnblogs.com/Chamberlain/p/11059307.html
  • 主要介绍了如何分清SQL数据库中的主键外键,这里简单介绍下,方便需要的朋友
  • 主键 设置在 数据表中不能重复且不能为空的数据类型 比如学生表中的学号,职工表中的职工编号 ...注:实体之间的一对一 一对多 多对多都是通过主外键的设置来实现的 依赖关系: 主外键设置的一对多中 多的那一方
  • 数据库中的主键外键关系,通俗易懂

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

    千次阅读 2021-06-26 22:16:46
    1.定义主键和外键主要是为了维护关系数据库的完整性。 总结一下: (1)主键是能确定一条记录的唯一标识。...3.数据库的主键外键之间关系 主键:一般情况下,满足第一范式的表都有一个主键Primary key,用于唯
  • 外键主键,索引

    2017-08-16 16:49:56
    SQL的主键和外键的作用:  外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键...
  • 关于数据库主键和外键(终于弄懂啦)

    万次阅读 多人点赞 2019-06-18 15:59:59
    转 关于数据库主键和外键(终于弄懂啦) 2018年07月16日 19:44:24 f45056231p 阅读数 19385 ...
  • 超 键 候选键都是唯一标识元祖 候选键 超 键 的区别,当超键消除冗余之后可以成为候选键。...外键就是其他表的主键 例如 学生表 (学号,姓名,性别,课程号) 课程表 (课程号,课程名) 这时学号
  • 关系型数据库和主键外键

    千次阅读 2021-01-11 21:55:07
    多对多:必须通过单独的一张表来实现(一个老师多个学生,一个学生多个老师)班级一张表,老师一张表,班级老师的关系一张表 主键: 定义:能够唯一标示一个事物的一个字段或者多个字段的组合 含有主键的叫做主键表...
  • 主键和外键的区别

    万次阅读 多人点赞 2018-11-30 09:41:00
    一、什么是主键外键 主键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 。 比如 1.学生表(学号,姓名,性别,班级) 其中每个学生的...
  • 主要介绍了Django中ORM外键和表的关系详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主键和外键

    2020-10-14 19:14:44
    关系型数据库中的每一个表都具备这样的特点, 在同一个表中没有完全一致的两行数据, 当一行数据可以有少数几个属性确定的话,这几个属性就可以成为主键, 设立了表的主键之后,数据库系统会为主键的列建立索引制约, ...
  • blog,主要简单介绍了在 MySQL 数据库中如何查看某张表,以及对表做一些增删改查的操作,本篇 blog 主要介绍一张表中如何设置唯一标识,以及两张表之间如何关联,即我们日常听说的主键和外键主键含义:关系型数据库...
  • 数据库主键外键和唯一键的区别

    千次阅读 2019-10-24 17:37:29
    数据库主键外键和唯一键的区别 现在我们想建立学生表,用来存储,一个系统的登陆信息。建表如下: create table student4 ( stu_id int primary key identity,--identity表示自增 stu_name nvarchar(10) unique ...
  • MySQL主键和外键使用及说明一、外键约束MySQL通过外键约束来保证表与表之间的数据的完整性准确性。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持)...
  • 需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引。 一、SQL...
  • 外键外键是相对于数据库设计中的参考完整性而言,它与主键之间是彼此依赖的关系。 主表:在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。 从表:以...
  • 关于主键和外键关系

    千次阅读 2013-09-10 20:31:14
    SQL的主键和外键约束  SQL的主键和外键的作用:  外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时...
  • 关系模型——主键外键、索引

    千次阅读 2020-12-16 17:54:08
    3 王老师 4 李老师 class id name 1 一班 2 二班 teacher_class中间表 id teacher_id class_id 1 1 1 2 1 2 3 2 1 4 2 2 5 3 1 6 4 2 通过中间表teacher_class,可知班级表class与老师表teachers之间关系 ...
  • MySQL数据库的主键和外键详解主键主键的定义主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,546
精华内容 30,218
关键字:

外键和主键之间的关系