主键和外键举例_mysql 基础篇之主键和外键

主键和外键举例_mysql 基础篇之主键和外键前言前面几篇 blog 主要简单介绍了在 MySQL 数据库中如何查看某张表 以及对表做一些增删改查的操作 本篇 blog 主要介绍一张表中如何设置唯一标识 以及两张表之间如何关联 即我们日常听说的主键和外键主键含义 关系型数据库中的一条记录中有若干个属性 若其中某一个属性组 注意是组 能唯一标识一条记录 该属性组就可以成为一个主键举例说明 学生表 学号 姓名 性别 班级 其中每个学生的学号是唯一

前言

前面几篇 blog,主要简单介绍了在 MySQL 数据库中如何查看某张表,以及对表做一些增删改查的操作,本篇 blog 主要介绍一张表中如何设置唯一标识,以及两张表之间如何关联,即我们日常听说的主键和外键

主键

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

举例说明:

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

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

创建两张表,并插入数据

1 员工表emp(student)

字段如下:

员工号(sid)

姓名(sname)

年龄(sage)

工资(sal)

部门号(deptno)

2 部门表(department)

1 部门号(deptno)

2 部门地址(address)

3 部门电话(detel)

可能遇到的问题

在给部门表插入数据的时候,address 字段插入的是中文,但最后显示为?

解决方法:在创建部门表的时候指定编码

create table department

(deptno int,address varchar(100),detel char(20)

)DEFAULT CHARSET=utf8;

主键和外键举例_mysql 基础篇之主键和外键

添加主键约束

alter table emp

add constraint pk_emp

primary key(sid);

alter table department

add constraint pk_department

primary key(deptno);

主键和外键举例_mysql 基础篇之主键和外键

查看主键

语句:desc 表名;

外键

含义:外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性

举例说明

员工表emp(员工号,姓名,性别,薪水,部门号) (主键员工号,外键部门号)

部门表department(部门号,部门地址,部门电话) (主键部门号)

添加外键约束

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

添加外键约束实例

小插曲:笔者昨日搞好久都无法创建外键,当时也没百度,今天才发现原来是自己的外表 department 没有插入数据。。。。

alter table emp add constraint FK_ID foreign key(deptno) REFERENCES department(deptno);

主键和外键举例_mysql 基础篇之主键和外键

查看外键

输入命令:show create table 表名;

主键和外键举例_mysql 基础篇之主键和外键

删除主键

命令:alter table emp drop primary key;

删除外键

命令:alter table emp drop foreign key deptno;

注意:删除外键 deptno 后,才能修改主表 emp 的数据

以上,over

原创申明:以上内容都是笔者个人经验,仅供参考,如需转载,请注明出处

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232306.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月19日 下午4:01
下一篇 2025年10月19日 下午4:22


相关推荐

  • navicat15永久激活码mac[在线序列号]

    navicat15永久激活码mac[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    91
  • Pycharm安装使用TensorFlow[通俗易懂]

    Pycharm安装使用TensorFlow[通俗易懂]众多深度学习的初学者都会面临环境搭建的问题,本文根据亲身经历说明几个关键步骤:1.安装Pycharm,其中社区版免费,可以直接去pycharm官网下载安装https://www.jetbrains.com/pycharm/download/2.安装Anaconda,初学者不用急于安装最新版本的Anaconda(尤其是硬件设备并非最新的初学者,因为我注意到很多初学者的设备就是自己的笔记本或者台式机,一些并没有独立显卡,或者是NVIDIA730之类的台式机显卡,无法使用最新的深度学习包,以及一些CUD

    2022年8月29日
    4
  • 直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理

    直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理直方图均衡化的原理及实现一、直方图1.1直方图的概念在图像处理中,经常用到直方图,如颜色直方图、灰度直方图等。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的率。如下图所示1.2直方图的性质①直方图反映了图像中的灰度分布规律。它描述每个灰度级具有的像素个数,但不包含这些像素在图像中的位置信息。图像直方图不关心像

    2022年8月30日
    6
  • 关于lvm扩容的方式「建议收藏」

    关于lvm扩容的方式「建议收藏」服务器磁盘扩容在项目上很常见,这里总结下常见的几种lvm扩容的方式供大家参考。

    2022年6月20日
    75
  • 计算机win7卡顿如何解决方法,win7电脑出现卡顿怎么办_win7电脑卡顿严重解决方法…[通俗易懂]

    计算机win7卡顿如何解决方法,win7电脑出现卡顿怎么办_win7电脑卡顿严重解决方法…[通俗易懂]现在已经是网络时代了,不管我们是在工作、生活还是学习我们大家都离不开电脑。win7系统也是一款比较经典的系统,不管怎么样我们电脑使用久了,都会出现卡顿的问题,有时候打开一个文件,程序反应非常慢。那么win7电脑出现卡顿我们要怎么办呢?接下来小编就跟大家分享一下win7电脑卡顿严重解决方法。win7电脑卡顿严重解决方法:方法一:1、首先鼠标右键点击“计算机”,选择“属性”。2、在属性页面,点击“高级…

    2025年11月2日
    4
  • 多线程修改VCL控件造成的ntdll.dll错

    多线程修改VCL控件造成的ntdll.dll错 http://www.delphibbs.com/delphibbs/dispq.asp?lid=1574375问题:我调试老是提示:NTDLL.DLL出错线程中:Execute中调用一个写在线程单元的过程P,p执行完后调用Call过程,如下:procedureTDatav.Execute;begin if…..  begin    p;PP:

    2026年3月9日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号