前言

前面几篇 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;

添加主键约束

alter table emp

add constraint pk_emp

primary key(sid);

alter table department

add constraint pk_department

primary key(deptno);

查看主键

语句: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);

查看外键

输入命令:show create table 表名;

删除主键

命令:alter table emp drop primary key;

删除外键

命令:alter table emp drop foreign key deptno;

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

以上,over

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

主键和外键举例_mysql 基础篇之主键和外键相关推荐

  1. mysql经典总结文章_MySQL基础篇(01):经典实用查询案例,总结整理

    MySQL基础篇(01):经典实用查询案例,总结整理 发布时间:2020-02-26 22:25:21 来源:51CTO 阅读:244 作者:知了一笑 本文源码:GitHub·点这里 || GitEE ...

  2. MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...

    ### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...

  3. ci mysql操作_MySQL基础篇/第3篇:MySQL基本操作语句.md · icanci/MySQL-Review - Gitee.com...

    ### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...

  4. mysql5.5.54语法_mysql 基础篇5(mysql语法---数据)

    -- 2.7 条件查询(where) -- 2.7.1 逻辑条件:and(与)     or(或) -- 需求: 查询id为2,且姓名为李四的学生 SELECT * FROM student WHER ...

  5. sap 标准委外和工序委外_SAP那些事-实战篇-74-公司间委外的几种方式探讨

    我们在<SAP那些事-实战篇-22-关于公司间业务的总结>这一篇中对公司间的转包业务曾经进行过描述,不过这一篇中主要谈到的是SAP中标准的方案,而且是从一方(委托方)的角度来谈,这一篇中我 ...

  6. PythonOpenCV基础篇2线段

    PythonOpenCV基础篇 第6章 绘制图形和文字 OpenCV提供了许多绘制图形的方法,包括绘制线段的line()方法.绘制矩形的rectangle()方法.绘制圆形的circle()方法.绘制 ...

  7. mysql 给几个主键值 批量校验是否存在_MySQL基础知识整理

    MySQL基础架构 MySQL基础架构 简单来说MySQL主要分为Server层和存储引擎层.Server层主要包括连接器.查询缓存.分析器.优化器和执行器等,所有跨存储引擎的功能都在这一层实现,比如 ...

  8. MySql基础篇---003 SQL之DDL、DML、DCL使用篇:创建和管理表 ,数据处理之增删改,MySQL数据类型精讲 ,约束:联合主键

    第10章_创建和管理表 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步.只有正确地 ...

  9. mysql中外键的作用是什么_mysql外键基本功能与用法详解

    本文实例讲述了mysql外键基本功能与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是外键 外键的增加 外键的修改和删除 外键的约束模式 首发日期:2018-04-12 什么是外键: 外键就 ...

  10. mysql设置主键约束为降序_MySQL约束的概述 - osc_tko37abm的个人空间 - OSCHINA - 中文开源技术交流社区...

    MySQL约束 今日学习内容 1.DQL:查询语句 1.排序查询 2.聚合函数 3.分组查询 4.分页查询 2.约束 3.多表关系 4.范式 5.数据库备份和还原 DQL查询语句 排序 通过ORDER ...

最新文章

  1. Python字符编码详解
  2. 关于ubuntu系统无线网络网速慢的解决方法
  3. 基于CSS3飘带状3D菜单 菜单带小图标
  4. 某大型国企技术平台建设
  5. JavaScript 中的原型(总则)
  6. 命令创建mysql数据库_怎么在命令行创建一个mysql数据库
  7. java this() super()_java中的this和super
  8. 删除oracle表里的重复记录
  9. DDL 创建与查询数据库
  10. c++读取文件夹下特定文件
  11. TensorFlow2.0:索引和切片(2)
  12. python入门——P43魔法方法:算数运算2
  13. PTA程序设计基础题目集(1)
  14. videojs-dynamic-watermark: video.js 视频添加文字水印
  15. my top visited webs
  16. 计算机软件 如何评正高职称,正高职称评审条件
  17. 定制MACD背离副图
  18. halcon第六讲:基于颜色空间的颜色检测
  19. 华为防火墙笔记-报文处理流程
  20. 国产单机《我的武林江湖》v1.1.159

热门文章

  1. C#反射获取 所有字段 及 私有字段
  2. pem文件转cer文件
  3. 谈java之GUI与安卓
  4. linux出现bash: ./java: cannot execute binary file 问题的解决办法
  5. tensor数据类型,数据转换和新建数据操作
  6. OpenSER安装配置指南
  7. access 分表存储_数据库分区、分表、分库、分片
  8. windows远程连接centos桌面
  9. 线性代数及其应用(第三版)2.2节习题解答
  10. python实现打飞机小游戏