SQLServer实验 视图的使用-view 练习题

SQLServer


我们老师改了题,自己就又做一下,看的时候可以比较一下,这样好总结方法

想练习数据库的可以下载:(有效期90天,有人下载才会续期)

员工管理数据库.mdf

https://u8266128.ctfile.com/fs/8266128-289562490

员工管理数据库_log.ldf 
https://u8266128.ctfile.com/fs/8266128-289562494

——

这是上述数据库做的,仅用截图形式,想下载的看这:

【下载:(有效期90天,有人下载才会续期)】

shiyan7视图的使用-员工管理数据库.rtf 
https://u8266128.ctfile.com/fs/8266128-289563126

【下方长图预警】

SQLServer实验 视图的使用-view 练习题_第1张图片

————

文库可以找到原版的:

实验4_百度文库

https://wenku.baidu.com/view/4262d722ccbff121dd3683cf.html

但是这个数据库的列名称不一样

这个是原题:

实验内容:(用create view命令创建视图)
  1. 创建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查询基本表“员工表”;
select *
from employees

在v_employees11上的
update v_employees11
  • set 出生日期=’1989-12-12’
  • where 员工编号=’00003’
  • 更新允许执行吗?为什么?

  • 更新允许执行吗?为什么?因为基表中含有这个项
  1. 创建v_employees12视图,包括财务部各职工的职工号,姓名及收入;
create view v_employees12 (employeeid,name,income)
as
select a.employeeid,a.name,b.income
from employees a,salary b
where a.employeeid=b.employeeid
and departmentid='1'

在v_employees12上的
update v_employees12
set 收入=5678
where员工编号=’00003’

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

在v_employees12上的
Delete v_employees12
where 员工编号=’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查询基本表“员工表”.没有姓李的在表中

  1. 创建v_employees15视图,包括每个职工的职工姓名,性别,基本工资;
create view v_employees15
as
select name,sex,income
from employees,salary
where employees.employeeid=salary.employeeid


将v_employees15视图中所有职工的基本工资增加500元并查询基表“基本工资”;
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


...内容太多暂时略去,可以自己去找原题或者直接下载上面 的文档





你可能感兴趣的:(SQL)