美文网首页
MySQL 基础 4 多表设计之外键约束

MySQL 基础 4 多表设计之外键约束

作者: 小熊先生很不开心 | 来源:发表于2018-03-17 12:26 被阅读17次

1.1 约束

1.1.1 约束的作用

  约束是用来保证数据的完整性。

1.1.2 单表约束

  • 主键约束
  • 唯一约束
  • 非空约束

1.1.3 多表约束

  • 外键约束:用来保证数据完整性(多表之间)。

1.2 演示外键约束作用

1.2.1 创建一个部门表

create table dept(
    did int primary key auto_increment,
    dname varchar(20)
);
insert into dept values (null,'市场部');
insert into dept values (null,'人事部');
insert into dept values (null,'教研部');

1.2.2 创建一个员工表

create table employee(
    eid int primary key auto_increment,
    ename varchar(20),
    salary double,
    birthday date,
    sex varchar(10),
    dno int
);

insert into employee values (null,'张三',8000,'1988-09-01','男',3);

insert into employee values (null,'李四',9000,'1988-09-01','男',1);

insert into employee values (null,'王五',6000,'1988-09-01','男',2);

insert into employee values (null,'赵六',10000,'1988-09-01','男',3);

insert into employee values (null,'孙七',10000,'1988-09-01','男',1);

1.2.3 删除其中的某个部门(是否可以)

  • 查看数据

  • 查看数据.png
  • 向员工表中插入一条记录(没有部门)
    • insert into employee values (null,'田八',10000,'1988-09-01','男',null);
  • 删除一个人事部
    • delete from dept where did = 2;

  向刚才做的这两个操作(插入一个没有部门的员工,删除一个带有员工的部门)。这种情况都是不应该发生。这个时候需要在多表之间添加外键约束。

1.3 添加外键约束

1.3.1在员工表上添加外键

  • alter table employee add foreign key (dno) references dept(did);

  • 在员工表上添加外键.png

1.3.2设置外键为非空

  • alter table employee modify dno int not null;

  • 设置外键为非空.png

相关文章

  • MySQL 基础 4 多表设计之外键约束

    1.1 约束 1.1.1 约束的作用   约束是用来保证数据的完整性。 1.1.2 单表约束 主键约束 唯一约束 ...

  • MySQL基础——多表查询

    上篇文章我们学习了MySQL基础——约束,这篇文章我们学习MySQL基础——多表查询。 多表关系 在数据表中,各个...

  • mysql基础

    mysql添加外键的4种方式 MySQL基础考点1 MySQL基础考点2 MySQL数据库六大设计规范总结1 My...

  • mysql基础之多表查询和外键约束

    什么是多表查询 从多张表中联合查询出数据 为什么要使用多表查询 需要查询多张表中的数据,通过一张表查询是不完整的 ...

  • MySQL操作-2 (笔记)

    1.多表关系维护 外键约束:forerign key 给product 添加一个外键约束 多表建表原则 一对一 一...

  • MySQL 学习记录(1)

    关于MySQL中的一些基础知识的赘述 类型 约束和键

  • MySQL基础-函数/约束/多表/事务

    前言:本文皆为基础内容,已经熟练掌握的建议跳过,你有更重要的内容需要学习。 零、本文纲要 一、函数 字符串函数 数...

  • 设置外键,外键约束值的区别

    laravel 设置外键,并设置外键约束的方式 为联级删除 更新:在使用Navicat for mysql设计表时...

  • MySQL5.5多表之外键(一)

    MySQL5.5在学习外键时第一个要关注的点就是我们数据库的数据引擎,要知道 MyISAM was the def...

  • MySQL5.5多表之外键(二)

    什么是外键? 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束。 外键用于建立和加强两个...

网友评论

      本文标题:MySQL 基础 4 多表设计之外键约束

      本文链接:https://www.haomeiwen.com/subject/lngrqftx.html