当前位置:首页 > 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页
共分享92篇相关文档