mysql实验7 视图与索引_mysql索引与视图

本文详述了在MySQL中对YGGL数据库进行的索引和视图操作,包括对Employees和Departments表创建普通索引、复合索引、唯一索引和前缀索引,以及主键的添加和删除。同时,介绍了如何创建和使用视图,如VIEW_DS和VIEW_Employees,以及视图的数据查询和修改限制。
摘要由CSDN通过智能技术生成

实验内容与步骤:

以下操作均在YGGL数据库中进行。

一、索引的使用:

1. 使用命令对YGGL数据库的Employees表中的DepartmentID列建立普通索引。

2. 在Employees表的Name列和Address列上建立复合索引。

3. 对Departments表上的DepartmentName列建立唯一索引。

4. 使用命令查看表中的索引。

5. 对Employees表上的Address列进行前缀索引,索引值降序排列。

6. 使用CREATE INDEX语句能建立主键吗?

7. 向Employees表中的出生日期添加一个唯一性索引,姓名列和性别列上添加一个复合索引。

8. 假设Departments表没建立主键,使用alter table语句将DepartmentID列设为主键。

9. 使用alter table语句删除Departments表上的主键和所有索引。

二、视图练习:

1. 创建YGGL数据库上的视图VIEW_DS,视图包含Departments表的全部列。

2. 使用create or replace语句创建视图VIEW_Employees,视图包含员工号码、姓名和实际收入。

3. 创建视图,包含员工号码、姓名、所在部门名称和实际收入这几列。

4. 从视图VIEW_DS中查询部门号为3的部门名称。

5. 从视图VIEW_Employees中查询出姓名为“王林”的员工的实际收入。

6. 若视图关联了某表中的所有字段,此时该表中添加了新的字段,视图中能否查询到该字段?

不能,必须重新创建视图才可以查询到

7. 向视图VIEW_DS总插入一行数据:6,财务部,财务管理,查看Departments表中的数据有什么变化?尝试向视图VIEW_Employees中插入一行数据,看看会发生什么情况?

错误,多个表构成的的视图不可以插入

8. 修改视图VIEW_DS,将部门号为5的部门名称修改为“生产车间”。

9. 修改视图VIEW_Employees中号码为000001的雇员的姓名为“王浩”。

10. 删除VIEW_DS中部门号为“1”的记录。

11. 视图VIEW_Employees中无法插入和删除数据,其中RealIncome字段也无法修改,为什么?

12. 删除视图VIEW_DS。

CREATE INDEX index_DepartmentID ON employees(部门号);

ALTER TABLE employees ADD KEY name_address(姓名,住址);

CREATE UNIQUE INDEX  departments_name ON departments(部门名称);

SHOW CREATE TABLE employees;

ALTER TABLE employees ADD KEY index_zhuzhi(住址 (18) DESC);

CREATE INDEX index_Departmentemployeesemployees ON employees(部门号);

CREATE UNIQUE INDEX date_chusheng ON employees(出生日期);

ALTER TABLE employees ADD KEY name_sex(姓名,性别);

ALTER TABLE departments ADD CONSTRAINT pk_xingming PRIMARY KEY(部门号);

ALTER TABLE departments  DROP PRIMARY KEY;

DROP INDEX index_zhuzhi ON  employees;

CREATE VIEW VIEW_DS AS SELECT* FROM departments;

CREATE or replace VIEW VIEW_Employees

as SELECT e.编号, e.姓名, e.部门号, s.收入 from employees e,salary s

where e.编号=s.编号;

CREATE VIEW ddd AS SELECT e.编号, e.姓名, d.部门名称, s.收入

FROM employees e,departments d,salary s

WHERE e.编号=s.编号 AND e.部门号=d.部门号;

select部门名称 from VIEW_DS where部门号=3;

SELECT收入 FROM `view_employees` where姓名='王加';

insert into VIEW_DS values(7,'法务部');

/*insert into `view_employees`values(108992,'林夕',7,900);*/

update VIEW_DS set部门名称='生产车间' where 部门号=3;

update view_employees set姓名='王浩'where 编号=000001;

delete  from VIEW_DS where部门号=1;

drop view VIEW_DS;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值