当前位置:首页 > 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. 在界面工具中操作视图 演示新建视图和查询视图
共分享92篇相关文档