SQLSERVER2008实用教程实验参考答案(实验4)

发布时间 : 星期二 文章SQLSERVER2008实用教程实验参考答案(实验4)更新完毕开始阅读

USE YGGL GO

CREATE VIEW Employees_Departments_View

AS SELECT a.EmployeeID,a.Name,b.DepartmentName FROM Employees a, WHERE a.DepartmentID=b.DepartmentID; Departments b

(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列

USE YGGL GO

CREATE VIEW Employees_Salary_View(EmployeeID,Name,RealInCome)

AS SELECT a.EmployeeID,a.Name,b.InCome-b.OutCome FROM Employees a, WHERE a.EmployeeID=b.EmployeeID; Salary b

2. 查询视图

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

SELECT * FROM Employees_Salary_View WHERE Name='王林';

3. 更新视图

(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’) 执行完命令后,分别查看Departments_View和Department表中发生的变化 INSERT INTO Departments_View VALUES('6','广告部','广告业务'); (2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况

INSERT INTO Employees_Departments_View VALUES('777777','小林','综合业务部');

--视图或函数'Employees_Departments_View' 不可更新,因为修改会影响多个基表。 --DepartmentID分别为Employees表中的外键和Departments表中的主键,并且均不为空,

--这条INSERT语句相当于给为表Employees和表Departments添加一条DepartmentID为空的记录,显然是非法的.

(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况

INSERT INTO Employees_Salary_View VALUES('777777','小林',3000);

--对视图或函数'Employees_Salary_View' 的更新或插入失败,因其包含派生域或常量域。 --RealInCome就是派生域,它是由InCome-OutCome获得的.

(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’

UPDATE Departments_View SET DepartmentName='生产车间' WHERE DepartmentID='6';

(5)删除视图Departments_View中最新增加的的一条记录

DELETE FROM Departments_View WHERE DepartmentID='6';

总结:一般不建议直接对视图进行增加、修改、删除的操作。

4. 删除视图 Employees_Departments_View

DROP VIEW Employees_Departments_View; --删除视图的操作并不会删除基表.

5. 在界面工具中操作视图 演示新建视图和查询视图

联系合同范文客服:xxxxx#qq.com(#替换为@)