课程名称 |
MySQL数据库技术 |
实验 成绩 |
|
||||||
实验名称 |
实验六:索引及视图 |
||||||||
学号 |
辅导老师;陶荣 |
姓名 |
|
班级 |
|
日期 |
|
||
实验目的: 1.掌握索引的使用方法; 2.熟悉视图的概念和作用; 3.掌握视图的创建、查询和更新; |
|||||||||
实验平台: MySQL+SQLyog; |
|||||||||
实验内容与步骤: 以下操作均在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;
|
|||||||||
实验总结(结论或问题分析):
a. 在创建视图时SELECT语句有那些限制? 不能使用COMPUTE或者COMPUTE BY子句;除非和TOP子句一起使用,否则,不能使用ORDER BY子句;不能使用INTO关键字;不能使用OPTION子句;不能引用临时表和表变量。 b. 再创建视图时有哪些注意点? 1.在CREATE VIEW语句中,不能包括ORDER BY,COMPUTE或者COMPUTE BY 子句也不能出现INTO关键字2.创建视图所参考基表的列数最多为1024列3.创建视图不能参考临时表4.尽量避免使用外连接创建视图5.在一个批处理语句中,CREATE VIEW 语句不能和其他TRANSACT-SQL语句混合使用
|
|