02 Oracle 习题集(V4)

发布时间 : 星期三 文章02 Oracle 习题集(V4)更新完毕开始阅读

Oracle习题集 北京融信学唐科技有限公司

and sex='男')

or ((age between 18 and 55) and sex='女')) );

create sequence myseq1 increment by 1 start with 1; insert into emp1 values(myseq1.nextval,'TOM','男',21,10); insert into emp1 values(myseq1.nextval,'JERRY','男',21,20); insert into emp1 values(myseq1.nextval,'KATE','女',21,30); insert into emp1 values(myseq1.nextval,'MARY','女',21,40); insert into emp1 values(myseq1.nextval,'JACK','男',21,50); create table emp_bak as (select * from emp1 where 1=2);

alter table emp_bak add constraint emp_bak_dept_fk foreign key (deptno) references dept(deptno);

delete emp1 where ename='JACK';

update emp1 set age=23 where ename='MARY'; 2. 请创建一个表,表名为phone,表结构如下

电话号码(PHONENUM VARCHAR2(8)) 电话费 (PAY number(8,2)) 号码等级(NUMLEVEL VARCHAR2(4)) 费用日期(PAYDATE varchar2(12) (1)

插入以下两条数据:

123456, 600, pt04, 20051220 888888, 900, pt05, 20051019. (2)

创建一个备份表结构名为phone_bak, 将phone中的数据插入phone_bak中.

(3) (4)

将电话号码为123456的电话费改为1000,执行回滚操作

查询phone表中所有字段和所有数据,如果PHONENUM字段中的数据为‘123456’,则返回‘Y’否则返回‘N’

(5)

查询phone表中所有字段和所有数据,显示费用日期(PAYDATE)字段的日期转变成YYYY/MM/DD格式显示。

第17页 共32页

Oracle习题集 北京融信学唐科技有限公司

(6) 将电话号码为888888的号码等级改为pt04并提交

(1)create table phone( phonenum varchar2(8),

pay number(8,2) , numlevel varchar2(4), paydate varchar2(12) )

(1)insert into phone values('123456',600,'pt04','20051220'); insert into phone values('888888',900,'pt05','20051019'); (2)create table phone_bak as (select * from phone); (3)update phone set pay=1000

where phonenum='123456' rollback

(4)SELECT p.*,decode(p.phonenum,123456,'Y','N')FROM phone p; (5) SELECT phonenum,pay,numlevel,to_date(paydate,'yyyy/mm/dd') FROM phone;

(6) UPDATE phone SET numlevel='pt04' WHERE phonenum=888888;

COMMIT;

第18页 共32页

Oracle习题集 北京融信学唐科技有限公司

第6章 视图

1. 什么是视图。它有什么作用。

视图是一个 虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图实际上是一张或者多张表上的预定义查询,这些表称为基表。

2. 创建一个视图,此视图要包括以下信息:员工编号,员工姓名。

create view view1 select empno,ename from emp;

3. 创建一个视图,此视图要包括以下信息:员工编号,员工姓名,部门编号,

部门名称。 create view view2

as select empno,ename,e.deptno,d.dname from emp e,dept d where e.deptno=d.deptno;

4. 创建一个视图,此视图要包括以下信息:员工编号,员工姓名,经理编号,

经理姓名。 create view view3

as select e.empno,e.ename,m.empno 经理编号,m.ename 经理姓名 from emp e,emp m where e.mgr=m.empno;

5. 创建一个视图,此视图要包括以下信息:部门编号,员工个数。

create view view4

as select deptno,count(ename) 人数 from emp e group by deptno;

6. 创建一个视图,此视图要包括以下信息:部门编号,部门名称,员工个数。

create view view5

as select e.deptno, d.dname,count(ename) 人数 from emp e,dept d

第19页 共32页

必须使用列别名命名此表达式,否则会出错 在创建视图时,重复字段后面要使用别名,否则会出错 Oracle习题集 北京融信学唐科技有限公司

where e.deptno=d.deptno group by e.deptno, d.dname;

7. 创建一个视图,此视图要包括以下信息:部门编号,部门名称,员工个数,

部门内所有员工薪水的合计,部门内员工最高薪水,部门内员工最低薪水,部门内平均薪水。 create view view6

as select e.deptno, d.dname,count(ename) 人数,sum(sal) 总薪水, max(sal) 最高薪水,min(sal) 最低薪水,avg(sal) 平均薪水 from emp e,dept d where e.deptno=d.deptno group by e.deptno, d.dname;

第20页 共32页

联系合同范文客服:xxxxx#qq.com(#替换为@)