第三章 同义词、视图、序列的练习和答案

一、
1、登陆scott 用户基于 EMP 表和 DEPT 表创建视图
EMPDEPTVIEW,要求关联两张表,查出员工的所在部门,
及部门的信息,包括部门的名称和部门所在地
,员工的部门编号和员工的名字;
2、登录xiaomei用户,针对EMPDEPTVIEW 创建同义词epv;
3、通过同义词,查询到部门20的所有员工信息。

二、
1、创建序列,从50开始,
要求运用序列给部门表中添加部门编号为50,
名称为BUSINESS,地点为CHINA;
添加部门编号为60,
名称为PMO,地点为CHINA;

三、视图要求只读:
1. 创建一个视图,此视图要包括以下信息:
部门编号,部门名称,部门内员工个数,部门内所有员工薪水的合计,部门内员工最高薪水,部门内员工最低薪水,部门内平均薪水。
2. 创建一个视图,此视图要包括以下信息:
员工编号,员工姓名,经理编号,经理姓名。

四、创建一张学生表信息t_students
1、给学生表修改身份证号
创建一个序列,要求序列从1开始,将序列拼写至身份证号中,
拼写格式为6666661994||序列号||01666x,会存在唯一性约束错误。
2、创建视图,查询生日在2月份的同学信息。

================答案========
/1.system/
grant create any view to scott;
/scott/
create or replace view empdeptview as
select ename , emp.deptno , dname , loc
from emp , dept
where emp.deptno = dept.deptno
with read only;
/xiaomei/
create or replace synonym epv for scott.empdeptview;
/scott/
grant select on empdeptview to xiaomei;
/xiaomei/
select * from epv
where deptno = 20;
/2.scott/
create sequence seq_dept
start with 50
increment by 10
nomaxvalue
nocycle
nocache;

insert into dept(deptno,dname,loc)
values (seq_dept.nextval,’BUSINESS’,’CHINA’);

insert into dept(deptno,dname,loc)
values (seq_dept.nextval,’PMO’,’CHINA’);

/3./
create or replace view emp_dept as
select emp.deptno , dept.dname ,
count(emp.deptno) con,sum(sal) sum_sal,
max(sal) max_sal,min(sal) min_sal,avg(sal) avg_sal
from emp , dept
where emp.deptno = dept.deptno
group by emp.deptno,dept.dname
with read only;

create or replace view emp_emp as
select t1.empno, t1.ename,t1.mgr, t2.ename mgrname
from emp t1 left join emp t2
on t1.mgr = t2.empno
with read only;

/4.1/
alter table t_students add(shengfenno varchar(18));
update t_students set shengfenno = ‘6666661994oo01666x’;

CREATE SEQUENCE seq_no
MINVALUE 1
START WITH 1
MAXVALUE 12
INCREMENT BY 1
CYCLE
CACHE 11;

update t_students set
shengfenno =(‘6666661994’ || lpad(seq_no.nextval,2,0) || ‘01666x’);

/4.2/
create or replace view stv as
select * from t_students
where SUBSTR(shengfenno,11,2)=’02’;

select * from emp_dept;
select * from emp_emp;
select * from emp;
select * from dept;
select * from t_students;
select * from stv;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值