精华内容
下载资源
问答
  • 数据库-主键和外键及其约束
    千次阅读
    2021-01-16 23:24:36

    1:什么是主键

    在一张表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(或主码),这里说"字段集"是因为主键可能用一个字段或者多个字段来表示。举例来看:

    学生表(学号, 姓名, 性别,专业编号),这里学号是主键,一个学号id就可以唯一标识一个学生的信息。另一个表:学生选课表(学号, 课程号, 成绩),这里(学号, 课程号)是主键,因为一个学号(即一个学生)可以选择多门课程,一个课程号(即一个课程)可以被多个学生选择,无法用一个字段来标识一条学生选课的信息记录,而使用(学号, 课程号)这两个字段作为关键字就可以唯一标识学生的选课信息。

    2:什么是外键?

    一张表的非主属性是另一个表的主属性就是这个表的外键。这里有两个分别为: 学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。学生表中主键是学号,专业信息表中主键是专业编号。学生表中的非主属性专业编号恰好是专业信息表中的主键。我们就称这个专业编号是学生表的外键。像这样,一个表的非主属性是另一个表的主属性,该非主属性就是外键。

    概念定义:什么是父表和子表?

    有两张表A表和B表,表A中的一个字段id是外键,表B中的一个字段id是主键,那么称B为父表,A为子表。就是说一个表中外键字段(相当于这里的A表)是另一个表中(相当于这里的B表)的主键。 还是上面的两个表来举例理解:学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。这里学生表是子表,专业信息表是父表。

    设置表的外键的作用在于建立与父表的联系,比如在专业信息表中某个专业编号的id为'1001',删除这个id后,则学生表中的专业编号id为'1001'的记录也随着删除,这样做的目的在于保证表的完整性。

    数据库的三种约束

    1.实体完整性约束指的是主键不能为空,如果主键为空了还怎么唯一标识一条记录。

    2.参照完整性约束,即外键的约束,某一外键的值必须在它引用的主键字段中存在。如,学生表中专业编号属性的值,必须都存于专业信息表中的专业编号属性中。想一想也就明白了,一个学生(大学生)怎么可能属于一个不存在的专业。

    3.用户自定义完整性约束,指的是一些用户自己设定的约束,例如字段是否可以为空,字段值的取值范围(如:人的性别只能取男、女)。

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

    千次阅读 2021-02-08 16:30:59
    1、成绩表主键:学号课程号的属性组是一个主键主键是能确定一条记录的唯一标识。 2、外键:用于与另一张的关联。是能确定另一张记录的字段,用于保持数据的一致性。比如,A中的一个字段,是B主键,...

    学生表(学号,姓名,性别,班级)
    课程表(课程编号,课程名,学分)
    成绩表(学号,课程号,成绩)

    1、成绩表主键:学号和课程号的属性组是一个主键 。
    主键是能确定一条记录的唯一标识。

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

    在这里插入图片描述

    展开全文
  • [导读 ] 使用 MySQL 开发过数据库驱动的小型 web 应用程序的人都知道对关系数据库进行创建 检索更新删除等操作都是些比较简单的过程 理论上 只要掌握了最常 见的 SQL 语句的用法并熟悉您选择使用的服务器端...
  • 创建外键语法 ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子列] REFERENCES news_type[主表名] (id)[主列] ; 3.使用组合主键 如果一列不能唯一区分一...
  • 数据库主键和外键设计方法

    千次阅读 2020-04-27 19:20:47
    关于数据库主键和外键 https://blog.csdn.net/bingqingsuimeng/article/details/51595560 外键设计 https://blog.csdn.net/xianyu_0418/article/details/4469072

    目录

    一 外键概念

    二 外键作用

    三 实战

    四 说明

    五 最佳实践

    六 参考


    一 外键概念

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

    在实际操作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。

    二 外键作用

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

    三 实战

    1 创建外键的方式一 : 创建子表同时创建外键

    -- 年级表 (id\年级名称)
    CREATE TABLE `grade` (
    `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级ID',
    `gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
    PRIMARY KEY (`gradeid`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8
    
    
    -- 学生信息表 (学号,姓名,性别,年级,手机,地址,出生日期,邮箱,身份证号)
    CREATE TABLE `student` (
    `studentno` INT(4) NOT NULL COMMENT '学号',
    `studentname` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    `sex` TINYINT(1) DEFAULT '1' COMMENT '性别',
    `gradeid` INT(10) DEFAULT NULL COMMENT '年级',
    `phoneNum` VARCHAR(50) NOT NULL COMMENT '手机',
    `address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
    `borndate` DATETIME DEFAULT NULL COMMENT '生日',
    `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    `idCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
    PRIMARY KEY (`studentno`),
    KEY `FK_gradeid` (`gradeid`),
    CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8

    2 创建外键方式二 : 创建子表完毕后,修改子表添加外键

    ALTER TABLE `student`
    ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`);

    3 删除外键

    操作:删除 grade 表,发现报错

    注意: 删除具有主外键关系的表时 , 要先删子表 , 后删主表

    -- 删除外键
    ALTER TABLE student DROP FOREIGN KEY FK_gradeid;
    -- 发现执行完上面的,索引还在,所以还要删除索引
    -- 注:这个索引是建立外键的时候默认生成的
    ALTER TABLE student DROP INDEX FK_gradeid;

    四 说明

    以上操作的都是物理外键,数据库级别的外键,我们不建议使用,避免数据库过多造成困扰。

    五 最佳实践

    数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)

    我们要想使用多表的数据,想使用外键(程序去实现)

    六 参考

    1 关于数据库主键和外键

    https://blog.csdn.net/bingqingsuimeng/article/details/51595560

    2 外键设计

    https://blog.csdn.net/xianyu_0418/article/details/4469072

    3 sql中一个表设置两个主键是将两个字段联合起来设置为主键,一个表只能有一个主键

    https://blog.csdn.net/qq_42664961/article/details/83271026

     

    展开全文
  • 数据库主键(Primary Key):指的是一个列或多列的属性组合,其属性值能唯一标识一条记录,通过它可强制的实体完整性。例如:(tb_Book:BookName、Author、Publishing、ISBN、BookClass、Count......)其中每本图书...

    145220934_1_20180925115106645

    数据库

    什么是数据库主键(Primary Key)?

    数据库主键(Primary Key):指的是一个列或多列的属性组合,其属性值能唯一标识一条记录,通过它可强制表的实体完整性。

    145220934_2_20180925115106724例如:

    (tb_Book表:BookName、Author、Publishing、ISBN、BookClass、Count......)

    其中每本图书的ISBN号是唯一的,ISBN即可为一个主键。 (key-ISBN)

    145220934_3_20180925115106802

    主键的类型:单一主键(Single Key): 唯一的键做主键

    145220934_4_20180925115106895属性组合主键(Property Group Keys):一个属性组合标识一条记录。

    145220934_5_201809251151075

    主键的设置方法:要设置的主键列属性-右键-设置主键。

    145220934_6_2018092511510767

    主键的功能:1、保证数据库实体的完整性;

    主键是能确定一条记录的唯一标识,不能重复。2、 加快数据库的操作速度;

    提供标识,方便索引。3、DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

    主键的设置sql语句:

    新建SQL Query1.sql 查询:然后添加如下语句---F5(运行)--执行即可得到一个带有主键的表格,STUDENT,主键为:StudentNo。

    代码如下:

    --这是SQL中的注释信息,使用两个减号来注释。drop table STUDENT --删除表STUDENTcreate table STUDEN --创建表STUDENT(StudentNo char(4) primary key, --设置StudentNo为主键StudentName char(8),Age int(4),Dept char(20))

    145220934_7_20180925115107161

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

    145220934_8_20180925115107270

    SC表中的StudentNo不是SC表的主键,但它和S表中的StudentNo相对应,并且S表中的StudentNo是S表的主键,则称SC表中的StudentNo是S表的外键。

    145220934_9_20180925115107458

    主键和外键所起约束作用:外键取值规则:空值或参照的主键值。

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

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

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

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

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

    145220934_10_20180925115107661

    展开全文
  • 数据库主键外键

    2021-03-05 17:14:58
    主键保证了数据的唯一性,外键保证了数据的一致性、完整性,具有约束性。 1.主键 主键是能确定一条记录的唯一标识,比如,一条记录包括身份证号,姓名,年龄。 身份证号 是唯一能确定你这个人的,其他都可能有重复...
  • MySQL数据库主键和外键详解

    千次阅读 2020-03-20 20:15:42
    MySQL数据库主键和外键详解 主键 主键的定义 主键中经常有一个列或多列的组合,其值能唯一地标识中的每一行。这样的一列或多列称为主键,通过它可强制的实体完整性。当创建或更改时可通过定义 ...
  • 简单演示Oracle数据库针对表主键列并发导致行级锁 电脑资料 简单演示Oracle数据库针对表主键列并发导致行级锁 本文内容 软件环境 简单演示 Oracle 数据库并发导致行级锁 本文简单演示针对表主键并发导致的行级锁 ...
  • 数据库入门-主键和外键设置

    千次阅读 2022-03-28 00:20:18
    一:)在所想要设置为主键的列上单击右键,点击设置为...二:)设置外键单击右键选择 点击添加 点击设计器 点击表和列规范 后面的框中点一下,就会出现后面的三个点的按钮,点击三个点图标的那个按钮。 ...
  • 主键中经常有一个列或多列的组合,其值能唯一地标识中的每一行。这样的一列或多列称为主键,通过它可强制的实体完整性。当创建或更改时可通过定义 PRIMARY KEY 约束来创建主键。一个只能有一个 ...
  • 数据库中的主键和外键的关系

    千次阅读 2019-09-23 11:28:15
    什么是数据库? (百度百科):数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行...
  • 理解数据库主键外键以及索引是什么发布时间:2020-...数据库中的主键指的是能够唯一标识一条记录的属性或属性组,外键指的是另一张中的主键起到与其他建立联系的作用,索引是用来快速查找具有特定值的记录数...
  • 数据库主键外键的区别

    千次阅读 2019-05-30 01:13:44
    数据库主键外键 我们知道,好的数据结构会影响速度,当然,好的数据库设计会影响数据库操作效率。 特别是数据特别多的时候如果的结构不好的话,操作将会变得特别复杂。其中,主键和外键值得我们去了解。 在...
  • 怎么分辨数据库主键和外键

    千次阅读 2018-05-10 17:35:00
    二、 主键外键和索引的区别  主键外键和索引的区别?   主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 的外键是另一的...
  • 关于数据库主键和外键(终于弄懂啦)

    万次阅读 多人点赞 2019-06-18 15:59:59
    转 关于数据库主键和外键(终于弄懂啦) 2018年07月16日 19:44:24 f45056231p 阅读数 19385 ...
  • 1、主键: 若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。...外键是另一个主键,可以重复,可以有多个,也可以是空值。定义外键...
  • 数据库表中的主键和外键

    千次阅读 2020-04-01 20:36:53
    那么设计数据库的时候就应该在学生内存放班级的ID作为外键,为什么不在班级内放学生呢? 因为,你想一想班级内如果放学生那么记录可能就是这样: 1班ID 1班 xx同学id 1班ID 1班 xx同学id .. 这是不允许的,...
  • 主键和外键 主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位)。主键...
  • MySQL数据库主键和外键详解主键主键的定义主键中经常有一个列或多列的组合,其值能唯一地标识中的每一行。这样的一列或多列称为主键,通过它可强制的实体完整性。当创建或更改时可通过定义 PRIMARY ...
  • 数据库中的主键外键的关系

    千次阅读 2021-09-25 10:56:58
    文章目录一、主键外键:1.概念2....比如,A中的一个字段,是B主键,那他就可以是A外键外键主键相对,作用就是通过主外键的之间关系使对张表中的数据更好的关联。 2.区别 主键——一个
  • 数据库主键外键和唯一键的区别

    千次阅读 2019-10-24 17:37:29
    数据库主键外键和唯一键的区别 现在我们想建立学生,用来存储,一个系统的登陆信息。建表如下: create table student4 ( stu_id int primary key identity,--identity表示自增 stu_name nvarchar(10) unique ...
  • 关系型数据库和主键外键

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,589
精华内容 61,435
关键字:

数据库表的主键和外键

友情链接: Bank-IVS.rar