mysql索引和数据完整性约束实验报告六及答案数据库附截图

索引和数据完整性约束

一、实验内容:
1、 索引的创建
2、 数据完整性约束的创建

二、实验项目:员工管理数据库

用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表)、Departments(部门信息表)、Salary(员工薪水情况表), 每张表的结构自己设计并创建。
员工信息表
在这里插入图片描述
部门信息表
在这里插入图片描述

三、实验步骤:(要求用命令完成以下操作)

1、 使用create index创建索引:

  1. 对Employees表中的员工编号创建普通索引depart_index;
    在这里插入图片描述
  2. 对Employees表中的姓名和地址创建复合索引ad_index;
    在这里插入图片描述
  3. 对Departments表中的Departmentname创建唯一索引;
    在这里插入图片描述
  4. 使用show index查看Employees表和Departments中索引。
    在这里插入图片描述
    2、 使用alter table添加索引
  5. 对Employees表中的出生时间列添加一个唯一索引date_index,姓名和性别列添加一个复合索引name_sex_index;
    在这里插入图片描述
  6. 先查看Departments表中是否有主键索引,如果有,请先删除主键索引;
    在这里插入图片描述
    在这里插入图片描述
  7. 对Departments表中的部门编号创建主键索引;
    在这里插入图片描述
  8. 对Employees表中的部门编号创建外键索引。
    在这里插入图片描述
    3、 在创建表的同时创建索引
  9. 创建cpk(产品编号,产品名称、单价、库存量)(每列的数据类型及长度等信息自定),并对产品编号列创建主键,在库存量和单价列创建复合索引cpk_fh_index。
    在这里插入图片描述
    4、 显示索引
  10. 使用show index看Employees表上的索引
    在这里插入图片描述
    5、 删除索引
  11. 使用drop index删除索引depart_index、ad_index和date_index;
    在这里插入图片描述
  12. 使用alter table删除Employees表上的主键索引和外键索引。
    在这里插入图片描述
    6、 数据完整性约束
  13. 创建一个员工奖金发放表bonus(employeeid,je),其中employeeid为主键,其值必须是Employees表中已有的员工编号,并且当删除和修改Employees表中员工编号列时,要求bonus表中的员工编号列的数据也随着变化。
    在这里插入图片描述
  14. 创建雇员表emp,只考虑员工编号、姓名和性别3列,姓名列满足唯一约束,性别只能包括男或女;
    在这里插入图片描述
  15. 创建雇员表emp_1,只考虑员工编号和出生时间2列,要求出生时间必须大于1980年1月1日,并将该约束命名为birthdate_id;
    在这里插入图片描述
  16. 创建雇员表emp_2,只考虑员工编号和性别2列,并且确认性别中所有的值都来自于emp表的性别列中;
    在这里插入图片描述
  17. 创建雇员表emp_3,有员工编号、工资和扣款3列,要求工资必须大于扣款,并为该约束命名为last_salary;
    在这里插入图片描述
    最后在图形化界面里应该是这样的
    在这里插入图片描述
    因为是做完了之后从本地的doc文档里复制粘贴的图片,所以有些地方看不清楚,另外注意建表的时候,上面的截图是已经做完了的截图,主键、索引可能会有问题,还欢迎大佬指正!

版权声明:本文为qq_51135343原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。