文章目录

  • 一、主键、外键:
    • 1.概念
    • 2.区别
    • 3.作用
    • 4.举例:
    • 5.总结

一、主键、外键:

1.概念

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

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

2.区别

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

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

3.作用

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

4.举例:

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

比如:

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

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

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

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

5.总结

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

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

数据库中的主键与外键的关系相关推荐

  1. 【原创】数据库中为什么不推荐使用外键约束

    引言 其实这个话题是老生常谈,很多人在工作中确实也不会使用外键.包括在阿里的JAVA规范中也有下面这一条 [强制]不得使用外键与级联,一切外键概念必须在应用层解决. 但是呢,询问他们原因,大多是这么回 ...

  2. 数据库中主键和外键的设计原则

    來源:http://www.cnblogs.com/deng02/archive/2009/02/26/1398462.html 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂.主键和外键的设 ...

  3. mysql主键和外键示例_SQL数据库中主键和外键的应用实例

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

  4. 聊聊数据库中的关键字——字段、属性、列、元组、记录、表、主键、外键

    学完数据库,我们对SQL SERVER 2008中的部分关键字有了大概的了解,下面我来总结一下几个比较重要的关键字:字段.属性.列.记录(元组).表.主键.外键. 一.字段:某一个事物的一个特征,或者 ...

  5. mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄. 身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证 ...

  6. 在数据库什么是主键与外键

    在数据库什么是主键与外键 2008-03-05 15:03 这需要理清几个概念: 1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的 ...

  7. 小知识系列:数据库的主键和外键

    文章目录 简介 创建主键 MySQL Oracle SQL Server 创建外键 mysql Oracle SQL Server 总结 简介 数据库是我们所有应用程序的基础,没有数据库的程序不是一个 ...

  8. 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量

    文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...

  9. 菜鸟学数据库(四)——超键、候选键、主键、外键

    这些年的一些经历告诉我,很多初学者搞不清超键.候选键等,被数据库中的各种键搞的一头雾水.下面就跟大家一起聊聊数据库中的那些键. 首先看看各种键的定义: 超键(super key):在关系中能唯一标识元 ...

  10. 数据库的主键和外键总结

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

最新文章

  1. python冒泡排序与常用数学计算
  2. python3 学习使用大纲梳理
  3. 动态切换父元素隐藏和显示里面的子元素的动画会再一次执行吗?
  4. logistic模型原理与推导过程分析(1)
  5. 快速下载助手1.1--添加断点下载
  6. [stl]集合相似度(PTA)
  7. C++ 用template实现的堆
  8. 什么是 DevSecOps?系列(一)
  9. linux# 解读wmctrl一览输出的项目
  10. 14.19 InnoDB and MySQL Replication InnoDB 和MySQL 复制:
  11. 解决win10桌面图标和任务栏图标一直闪烁
  12. 关于Sentaurus的日常(三)
  13. YAML语法详细总结
  14. 【Endnote】如何在参考文献前加编号 (1.2.3.等 或 [1] [2] [3]等)
  15. CST Studio Suite 2020 安装教程
  16. b站《史上最全unity3D教程》笔记1-04
  17. 【Win10 + Ubuntu 16.04/18.04双系统 + 双硬盘/单硬盘 安装】传统意义双系统
  18. IE取消或设置代理服务器脚本
  19. python字符串处理编程实例_Python字符串处理实例详解
  20. linux glibc2.12到2.14升级

热门文章

  1. 大学本科计算机专业的课程
  2. Qt OpenGL加载OBJ模型
  3. Windows环境下ODAC安装
  4. xjoi 1543 我自闭了
  5. linux拷贝文件和目录命令,Linux 命令 - cp: 拷贝文件和目录
  6. jenkins(一)------Windows环境下jenkins下载和安装
  7. 牛客网项目1.7项目调试技巧
  8. Juce之旅-第一个例子(图形窗口)
  9. 微信公众平台 使用JS-SDK实现拍照上传功能
  10. 无损音频wav音乐格式怎么转换成mp3格式