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
【下方长图预警】
————
文库可以找到原版的:
实验4_百度文库
https://wenku.baidu.com/view/4262d722ccbff121dd3683cf.html
但是这个数据库的列名称不一样
这个是原题:
实验内容:(用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查询基本表“员工表”;
select *
from employees
在v_employees11上的
update v_employees11
- 创建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查询基本表“员工表”.没有姓李的在表中
- 创建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
...内容太多暂时略去,可以自己去找原题或者直接下载上面 的文档