数据库上机实验

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

实验7视图的使用

目的与要求:

掌握视图的使用方法.

实验内容:(用create view命令创建视图)

创建v_employees11视图,包括每个职工的职工号,姓名,性别,出生日期与部门编号;

create view v_employees11

(employeeid,name,sex,birthday,departmentid)

as

select employeeid,name,sex,birthday,departmentid

from employees

用insert语句向视图 v_employees11中插入一条记录insert

into v_employees11

values ('00036','聂应好','1','1991-12-07','4')

并使用select查询基本表employees;

select*

from employees

在v_employees11上的

update v_employees11

set birthday=’1989-12-12’

where employeeid=’00003’

更新允许执行吗?能为什么?因为基表中含有这

个项

创建v_employees12视图,包括财务部各职工的职工号,姓名及收入;

create view v_employees12(employeeid,name,income)

as

select a.employeeid,,b.income

from employees a,salary b

where a.employeeid=b.employeeid

and departmentid='1'

在v_employees12上的

update v_employees12

set income=5678

where employeeid=’00003’

更新允许执行吗?允许为什么?因为基表中含有这个项

在v_employees12上的

Delete v_employees12

where employeeid=’00003’

删除允许执行吗?不允许为什么?视图或函数

'v_employees12' 不可更新,因为修改会影响多个基表。

创建v_employees13视图,包括部门名称与实际收入,并加密;

create view v_employees13(bmmc,sjsr)

with encryption

as

select DepartmentName,SUM(income-outcome)

from departments,salary,employees

where employees.employeeid=salary.employeeid

and departments.departmentID=employees.departmentid GROUP by DepartmentName

修改该视图让其不再加密,并改名为v_sjsr.

alter view v_employees13(bmmc,sjsr)

as

select DepartmentName,income-outcome

from departments,salary,employees

where employees.employeeid=salary.employeeid

and departments.departmentID=employees.departmentid

sp_rename v_employees13,v_sjsr已经更改过名字

创建v_employees14视图,包括姓”王”职工的职工号,姓名,性别,出生日期与部门编号,并要保证对该视图的修改都要符合姓王这个条件;

create view v_employees14

with encryption

as

select employeeid,name,sex,birthday,departmentid

from employees

where name like'王%'

向视图 v_employees14中插入两条记录(一个姓王,一个

姓李)

insert

into v_employees14

values ('00039','王云','true','1988-01-01','4')

insert

into v_employees14

values ('00038','李峰','true','1990-02-02','3')

注意观察两次执行不同的反应搞明白原因,并使用select查询基本表employees.没有姓李的在表中

创建v_employees15视图,包括每个职工的职工姓名,性别,收入;

create view v_employees15

as

select name,sex,income

from employees,salary

where employees.employeeid=salary.employeeid

将v_employees15视图中所有职工的收入增加500元并查询基表salary;

update v_employees15

set income=income+500

请将v_employees15中的第三列改为实际收入,

alter view v_employees15

as

select name,sex,(income-outcome)as sjsr

from employees,salary

where employees.employeeid=salary.employeeid

相关文档
最新文档