1.简答题
(1)
INSERT INTO BOOK VALUES('100001','冶金工业出版社','李代平',
'冶金工业出版社',TO_DATE('2003-01-01','YYYY-MM-DD'),38);
 INSERT INTO BOOK VALUES('100002','Oracle9i中文版入门与提高','赵松涛',
'人民邮电出版社',TO_DATE('2002-07-01','YYYY-MM-DD'),35);
 INSERT INTO BOOK VALUES('100003','Oracle9i开发指南:PL/SQL程序设计',
'Joan Casteel','电子工业出版社',TO_DATE('2004-04-03','YYYY-MM-DD'),49);
 INSERT INTO BOOK VALUES('100004','数据库原理辅助与提高','盛定宇',
'电子工业出版社',TO_DATE('2004-03-01','YYYY-MM-DD'),34);
 INSERT INTO BOOK VALUES('100005','Oracle9i中文版实用培训教程','赵伯山',
'电子工业出版社',TO_DATE('2002-01-01','YYYY-MM-DD'),21);
 INSERT INTO BOOK VALUES('100006','Oracle8实用教程','翁正科等',
'电子工业出版社',TO_DATE('2003-07-08','YYYY-MM-DD'),38);

 
INSERT INTO READER VALUES('200001','张三');
INSERT INTO READER VALUES('200002','李凤');
INSERT INTO READER VALUES('200003','孟欣');
INSERT INTO READER VALUES('200004','谢非');
INSERT INTO READER VALUES('200005','刘英');
 
INSERT INTO BORROW VALUES('100001','200001',
TO_DATE('2004-08-10 10:06:14','YYYY-MM-DD HH:MI:SS'));
INSERT INTO BORROW VALUES('100002','200002',
TO_DATE('2004-08-10 10:06:27','YYYY-MM-DD HH:MI:SS'));
INSERT INTO BORROW VALUES('100003','200003',
TO_DATE('2004-08-10 10:06:36','YYYY-MM-DD HH:MI:SS'));
INSERT INTO BORROW VALUES('100004','200004',
TO_DATE('2004-08-10 10:06:48','YYYY-MM-DD HH:MI:SS'));
INSERT INTO BORROW VALUES('100005','200005',
TO_DATE('2004-08-10 10:06:58','YYYY-MM-DD HH:MI:SS'));
(2)
①SELECT NO,TITLE FROM BOOK;
②SELECT NO,TITLE,AUTHOR FROM BOOK WHERE PUBLISH='电子工业出版社'
③SELECT * FROM BOOK WHERE PRICE>40;
④SELECT PUBLISH,COUNT(*) FROM BOOK GROUP BY PUBLISH;
⑤SELECT * FROM BOOK WHERE AUTHOR LIKE '赵%'
⑥SELECT RNAME,TITLE,BORROW_DATE FROM BOOK,READER,BORROW WHERE BOOK.NO=BORROW.NO AND READER.RNO=BORROW.RNO;
⑦INSERT INTO BOOK VALUES('10000007','Java网络编成','李程等',
'电子工业出版社',TO_DATE('2000-08-01','YYYY-MM-DD'),35);
⑧UPDATE BOOK SET PRICE=29 WHERE NO='100007';
⑨DELETE FROM BOOK WHERE NO='10000007'
⑩SELECT BOOK.NO,TITLE,RNAME FROM BOOK,READER,BORROW WHERE BOOK.NO=BORROW.NO AND READER.RNO=BORROW.RNO;
2.
(1)insert into emp(empno,ename,sal,deptno,hiredate) values(1357,’oracle’,2050,20,TO_DATE(‘2002-5-10’,’YYYY-MM-DD’);
(2)select ename,empno,sal,dept.deptno,dname,loc
from emp left join dept on emp.deptno=dept.depno
(3)select ename,empno,sal,dept.deptno,dname,loc
from emp right join dept on emp.deptno=dept.deptno
(4)select worker.ename,worker.empno,worker.sal,manager.ename,manager.empno,manager.sal from emp worker,emp manager where worker.mgr=manager.empno and worker.deptno=10
 
select worker.ename,worker.empno,worker.sal,manager.ename,manager.empno,manager.sal from emp worker left join emp manager on worker.mgr=manager.empno
(5)select count(*) ,avg(sal) from emp group by deptno
(6)select * from emp where sal = any(select avg(sal) from emp group by deptno)
(7)select * from emp e where e.sal > (select avg(sal) from emp where deptno=e.deptno)
(8)select e.ename,e.empno,e.sal,e.deptno,s.avgsal from emp e,(select deptno ,avg(sal) avgsal from emp group by deptno) s where e.sal>s.avgsal and e.deptno=s.deptno
(9)select * from emp sal>any(select sal from emp where deptno=20)
(10)Select job, count(*),avg(sal) from emp group by job
(11)select deptno,job,count(*), avg(sal) from emp group by deptno,job
(12)select * from emp where (sal, nvl(comm.,0)) in (select sal,nvl(comm,0) from emp where deptno=10)
(13)select * from emp where deptno in (select deptno from emp group by deptno having count(*)>5)
(14)select * from dept where deptno not in (select deptno from emp where sal<2000)
(15)select dept.deptno,dname,loc,ename,empno,sal from emp ,dept 
where emp.deptno=dept.deptno and  deptno not in (select deptno from emp where sal<2000)
(16)select * from dept where deptno  not    in
(select deptno from emp where sal not between 2000 and 3000)
(17)select * from emp where deptno in (select distinct deptno from emp where sal between 2000 and 3000)
(18)select detp.deptno,dname,loc from dept, emp worker,emp manager
       where dept.deptno=manager.deptno and worker.mgr=manager.empno
(19)insert into emp(ename,empno,mgr,job,hirdate,sal, comm.,deptno)
select ‘FAN’,8000,mgr,job,hirdate,sal,comm.,deptno from emp where ename=’SMITH’
(20)update emp e set sal=1000+(select avg(sal) from emp where deptno=e.deptno)
3.选择题
(1)B
(2)B、D
(3)A
(4)A、B
(5)C
(6)E
(7)B
(8)D
(9)A、C
(10)D