主键和外键举例_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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 中图分类法—-T-0

    中图分类法—-T-0 T工业技术   T-0工业技术理论     T-01方针、政策及其阐述       T-012中国       T-013/-017各国     T-09工业技术发展史   T-1工业技术现状与发展     T-18专利     T-19先进经验、创造发明   T-2机构、团体、会议     

    2022年5月15日
    94
  • qpython3安装pygame_详解Python pygame安装过程笔记

    qpython3安装pygame_详解Python pygame安装过程笔记今天看到一个教程,是关于Python安装pygame模块的。觉得很好,拿来分享一下。安装Python额,这个小题貌似在这里很是多余啊。但是为了照顾到刚刚学习Python的童鞋,我还是多啰嗦两句吧。具体如下:我们要到Python官网。去下载我们需要的版本。我这里下载的是windows64位的Python2.7msi。安装的过程如果不懂,选择为默认即可。安装easy_install至于这是个什么东…

    2022年5月23日
    57
  • 《Android平台开发之旅》学习笔记

    《Android平台开发之旅》学习笔记第三章:Android应用程序组件3.2Android应用程序组件Activity活动–形象大使Service服务–老黄牛BroadcastReceiver广播接收器–倾听者ContentProvider内容提供者3.3组件应用机制3.1.1组件之间的交互机制Intent(意向)组件实现组件之间的交互,马上要执行的动作3..1.2未决意意向Pending…

    2022年9月28日
    4
  • 走完同一条街,回到两个世界

    宿舍楼下就那么寥寥几棵树,知了一直在叫啊叫的不停.小时候跟着它们一起叫,用杆子粘着活好的面去黏它们,虽然从来都捉不到,现在,它们还在叫,我却已经过了跟它们玩的年纪.暑假回家呆了几天,上班,坐公交,下班,坐公交.在公司里清清爽爽几乎忘了这是夏天,下班了一出门喘口气都要流汗,还要被挤进密不透风的电梯里狠狠压缩一下,电梯也很累,每个楼层都要停一下,打开门叹口气接着往下走,满满一电梯的脑袋

    2022年3月9日
    43
  • pycharm21.2.3激活码_最新在线免费激活「建议收藏」

    (pycharm21.2.3激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~EC…

    2022年3月31日
    716
  • CentOS部署Jumpserver堡垒机

    CentOS部署Jumpserver堡垒机

    2021年6月1日
    113

发表回复

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

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