数据库原理与应用实

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理与应用实验2-3

实验2.3 视图的定义和操作

一、实验目的:

理解视图的概念,掌握视图的使用方法。

二、实验过程

1.对应HRM 数据库,参照前面实验中完成的查询,按如下要求自行设计视图:

1)基于单个表按投影操作定义视图。举例:定义一个视图用以查看所有员工的编号、姓名和出生日期。

CREATE VIEW Departments_View

AS SELECT*

FROM Departments

2)基于单个表按选择操作定义视图。举例:定义一个满足sex=’true’的员工的所有信息的视图。

CREATE VIEW Employee_view

AS SELECT *

FROM Employee

WHERE Sex = 'TRUE'

3)基于单个表按选择和投影操作定义视图。举例:定义一个视图用以查看部门号码为‘2’的所有员工的姓名、电话和邮件地址。

CREATE VIEW Employee_view1

AS SELECT Name, PhoneNumber, EmailAddress

FROM Employee

WHERE DepartmentID = '2'

4)基于多个表根据连接操作定义视图。举例:定义一个视图用以查看所有员工的姓名、部门名及工资。

CREATE VIEW Employee_Departments_Salary_View(Name, Department, Salary) AS SELECT ,b.DepartmentName,c.Income-c.OutCome

FROM Employee a, Departments b, Salary c

WHERE a.EmployeeID = c.EmployeeID AND a.DepartmentID = b.DepartmentID;

5)基于多个表根据嵌套查询定义视图。举例:定义一个比所有财务部的雇员工资都高的雇员的信息的视图

CREATE VIEW Employee_Salary_View

AS SELECT *

FROM Employee

WHERE EmployeeID IN(

SELECT EmployeeID FROM Salary WHERE Income > ALL(

SELECT Income FROM Salary WHERE EmployeeID IN(

SELECT EmployeeID FROM Employee WHERE DepartmentID = (

SELECT DepartmentID FROM Departments WHERE DepartmentName = N'财务部'

)

)

)

)

6)定义含有虚字段(即基本表中原本不存在的字段)的视图。举例:定义一个视图用以查看所有雇员的编号、姓名、年龄

CREATE VIEW E_View(EmployeeID, Name, Age)

AS SELECT EmployeeID, Name, DATEDIFF(YEAR, Birthday, GETDATE())

FROM Employee

2.分别在定义的视图上进行查询、插入、更新和删除操作,分情况(查询、更新)讨论哪些操作可以成功完成,哪些不能成功完成,并分析原因。

查询:

插入:

insert into Departments_View values('4',N'销售部',N'销售部')

更新:

update Departments_View set Note=N'无'

删除:

delete from Departments_View

where DepartmentID = '4'

相关文档
最新文档