CREATE TABLE emp(-- 创建主键以及自动增长的idid INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(30),age INT,dep_name VARCHAR(30),dep_location VARCHAR(30)
);
-- 添加数据
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('蔡徐坤',20,'表演部','北京');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('鸡坤',21,'表演部','上海');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('只因坤',30,'策划部','广州');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('坤哥',40,'策划部','深圳');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('只因哥',44,'道具部','西安');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('鸡哥',66,'道具部','北京');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES('蔡徐坤',20,'表演部','西藏');
SELECT * FROM emp;DELETE FROM emp WHERE NAME = '蔡徐坤';
-- 数据有重复两个策划部的要改变部门名称时候就需要一起改变两条语句
-- 所以需要表的拆分。-- 解决方案:分成两张表
-- 创建部门表(id,dep_location)
-- 一方,主表
CREATE TABLE department(id INT PRIMARY KEY AUTO_INCREMENT,dep_name VARCHAR(20),dep_location VARCHAR(20)
);
-- 创建员工表(id,name,age,dep_id)
-- 多方,从表
CREATE TABLE employee01(NAME VARCHAR(30),age INT,dep_id INT,-- 部门的编号-- 现在添加外键约束CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES department(id)
);
-- 添加两个部门
INSERT INTO department VALUES (NULL,'策划部','广州'),(NULL,'表演部','北京');
SELECT *FROM department;-- 添加员工:dep_id表示员工所在的部门
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('张正昊',20,1);
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('任强',21,1);
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('松子鸡',19,2);
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('只因哥',20,2);
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('zky',20,2);
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('吕鸡',20,2);
INSERT INTO employee01 (NAME,age,dep_id) VALUES ('郑梓桐',20,1);
-- 查询一下
SELECT *FROM employee01;
-- 哎呀查询出来只有部门的编号
-- 那我们在查询一次部门把
SELECT *FROM department;
-- 有一个问题要是直接删除部门的话,那么employee01表中显示还有人是一号部门的,不是就不符合了逻辑了?
-- 外键约束来了--   forei key  --
-- 1. 创建表时候添加外键;
-- 让表与数据产生关系,从而保证数据的正确性
-- 创建外键-- 删除外键
ALTER TABLE employee01 DROP FOREIGN KEY emp_dept_fk;
-- 添加外键
ALTER TABLE employee01 ADD  CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES department(id);
-- 级联操作 --
-- 在添加外键的时候添加级联,添加外键设置级联更新
ALTER TABLE employee01 ADD  CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES department(id) ON UPDATE CASCADE;SELECT *FROM employee01;SELECT *FROM department;
-- 可以使用架构设计器来确定标间是否关联
-- 级联更新与删除 on update/delete cascade

mysql表的拆分,外键的添加,删除,级联操作相关推荐

  1. MySQL表的非外键约束

    MySQL表的非外键约束 /* 建立一张用来存储学生信息的表  字段包含学号.姓名.性别,年龄.入学日期.班级,email等信息  学号是主键 = 不能为空 +? 唯一  姓名不能为空  性别默认值是 ...

  2. mysql中怎样插入外键_MySQL 添加外键

    MySQL 添加外键 MySQL 添加外键 DROP TABLE IF EXISTS `nation`; CREATE TABLE `nation`( `pii_Nation` smallint(2) ...

  3. 数据库mysql表怎么设置外键_如何设置数据库中的外键

    展开全部 创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只e69da5e887aa62616964757a686964616f31333365653739有主键没有外键 ...

  4. MySQL中如何设置外键

    下面我将以举例的方式说明,作者能力有限,欢迎指正和补充.也欢迎和我交流探讨~ 一.环境 Windows操作系统,MySQL 5.7 二.使用工具 Navicat 三.前提知识 1.什么是主键 Prim ...

  5. 2019-7-27 [MySQL] DQL 简单查询[别名/去重/运算] 条件查询 排序查询 聚合查询 分组查询 导出与导入 多表操作[一对多/多对多][创外键 创联合主键 约束 添加 删除 测试]

    文章目录 5 SQL语句(DQL) 5.1DQL准备工作和语法 5.1.1准备工作 5.1.2 DQL语法: 5.2 简单查询 5.2.1 查询所有的商品 5.2.2 查询商品名和商品价格. 5.2. ...

  6. mysql myisam存储引擎不能添加外键,添加后显示成功,实则失败

    mysql myisam存储引擎不能添加外键,添加后显示成功,实则失败. 添加显示成功后,可以轻松删除父表.

  7. mysql 增加外键_Mysql 添加外键

    语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名); 例: alter ta ...

  8. mysql创建表时设置外键_mysql创建表时设置外键约束的方法

    mysql创建表时设置外键约束的方法 发布时间:2020-06-17 15:54:11 来源:亿速云 阅读:312 作者:元一 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中, ...

  9. php任何读取外键数据,在表中设置外键实现的是哪一类数据完整性

    在表中设置外键实现的是参照完整性. 参照的完整性要求关系中不允许引用不存在的实体.与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性.参照完整性又称引用完整性.(推荐学习:MySQ ...

  10. mysql 高版本检索外键_第05期:外键到底能不能用?

    外键的设计初衷是为了在数据库端保证对逻辑上相关联的表数据在操作上的一致性与完整性. 外键在大部分企业写的开发规范里会直接规避掉!外键有优缺点,也并不是说每种场景都不适用,完全没有必要一刀切.外键到底能 ...

最新文章

  1. 简单回声服务器的实现
  2. QT获取本地网络信息
  3. 2016年第七届蓝桥杯 - 国赛 - Java大学C组 - I. 路径之谜
  4. Linux下的基本指令
  5. 方法的重载(overload)和重写(override)的区别
  6. Android常用名令集锦(图文并茂)!
  7. ASP.NET Core 基于SignalR实时通讯的前后端分离技术
  8. Airflow 中文文档:实验性 Rest API
  9. Spring Framework 4.2 中的新功能和增强功能
  10. c语言获取栈可用大小,[求助]求教各位大神如何获得C语言函数体的大小?
  11. FTP链接ubuntu链接被拒绝
  12. 亲身经历:2018年深圳保洁员工资时薪75,月薪不清楚
  13. python类型转换方法_Numpy数据类型转换astype,dtype的方法
  14. 怎么看计算机运行时间,怎么查看电脑运行时间_怎么查看电脑运行记录
  15. 【老生谈算法】matlab实现LSB算法源码——LSB算法
  16. 打开dashboard报错:xcelsius已经停止工作
  17. 虚幻引擎4的实时渲染流程(直播总结)
  18. 大神尝试扒迅雷的代码,竟然被扒了个精光!
  19. C#设计模式——访问者模式(Vistor Pattern)
  20. 测试一个教室和一个椅子

热门文章

  1. Shopee面试问题整理
  2. springboot整合author2
  3. 软件下载地址链接收藏
  4. vs2008背景色配置
  5. 董明珠与22岁的秘书孟羽童
  6. 读书笔记_005 《董明珠传》
  7. 网络安全篇 防火墙的静态路由-04
  8. windows2003 序列号
  9. python新闻标题分类_机器学习也会“标题党”?这个算法能根据标题判断新闻类别...
  10. 如何通过调整,附加组件和移动应用程序来增强您的SABnzbd体验