oracle练习题还有答案哈

发布 2022-09-02 14:06:28 阅读 8473

先创建下面三个表:

(book表)

(borrow表)

(reader表)

附录:建表语句。

创建图书管理库的图书、读者和借阅三个基本表的表结构:

创建book:(图书表)

create table book (

book_id number(10),sort varchar2(10),book_name varchar2(50),writer varchar2(10),output varchar2(50),price number(3));

创建reader:(读者表)

create table reader (

reader_id number(3),company varchar2(10),name varchar2(10),sex varchar2(2),grade varchar2(10),addr varchar2(50));

创建borrow:(借阅表)

create table borrow (

reader_id number(3),book_id number(10),borrow_date date);

插入数据:book表:

insert into book values(445501,'tp3/12','数据库导论','王强','科学出版社',17.90);

insert into book values(445502,'tp3/12','数据库导论','王强','科学出版社',17.90);

insert into book values(445503,'tp3/12','数据库导论','王强','科学出版社',17.90);

insert into book values(332211,'tp5/10','计算机基础','李伟','高等教育出版社',18.00);

insert into book values(112266,'tp3/12','foxbase','张三','电子工业出版社',23.60);

insert into book values(665544,'ts7/21','高等数学','刘明','高等教育出版社',20.00);

insert into book values(114455,'tr9/12','线性代数','孙业','北京大学出版社',20.80);

insert into book values(113388,'tr7/90','大学英语','胡玲','清华大学出版社',12.50);

insert into book values(446601,'tp4/13','数据库基础','马凌云','人民邮电出版社',22.50);

insert into book values(446602,'tp4/13','数据库基础','马凌云','人民邮电出版社',22.50);

insert into book values(446603,'tp4/13','数据库基础','马凌云','人民邮电出版社',22.50);

insert into book values(449901,'tp4/14','foxpro大全','周虹','科学出版社',32.70);

insert into book values(449902,'tp4/14','foxpro大全','周虹','科学出版社',32.70);

insert into book values(118801,'tp4/15','计算机网络','黄力钧','高等教育出版社',21.80);

insert into book values(118802,'tp4/15','计算机网络','黄力钧','高等教育出版社',21.80);

reader表:

insert into reader values(111,'信息系','王维利','女','教授','1号楼424');

insert into reader values(112,'财会系','李立','男','副教授','2号楼316');

insert into reader values(113,'经济系','张三','男','讲师','3号楼105');

insert into reader values(114,'信息系','周华发','男','讲师','1号楼316');

insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224');

insert into reader values(116,'信息系','李明','男','副教授','1号楼318');

insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214');

insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216');

insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318');

insert into reader values(120,'国际**','李雪','男','副教授','4号楼506');

insert into reader values(121,'国际**','李爽','女','讲师','4号楼510');

insert into reader values(122,'国际**','王纯','女','讲师','4号楼512');

insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202');

insert into reader values(124,'财会系','朱海','男','讲师','2号楼210');

insert into reader values(125,'财会系','马英明','男','副教授','2号楼212');

borrow表:

insert into borrow values(112,445501,'19-3月-2006');

insert into borrow values(125,332211,'12-2月-2006');

insert into borrow values(111,445503,'21-8月-2006');

insert into borrow values(112,112266,'14-3月-2006');

insert into borrow values(114,665544,'21-10月-2006');

insert into borrow values(120,114455,'02-11月-2006');

insert into borrow values(120,118801,'18-10月-2006');

insert into borrow values(119,446603,'12-11月-2006');

insert into borrow values(112,449901,'23-10月-2006');

insert into borrow values(115,449902,'21-8月-2006');

insert into borrow values(118,118801,'10-9月-2006');

以下是答案:

-1) 找出姓李的读者姓名(name)和所在单位(company)。

select name 读者姓名 , company 单位 from reader where name like '李%';

-2) 列出图书库中所有藏书的书名(book_name)及出版单位(output)。

select book_name 书名, output 出版社 from book;

-3) 查找“高等教育出版社”的所有图书名称(book_name)及单价(price),结果按单价降序排序。

select book_name 书名, price 单价 from book where output = 高等教育出版社' order by price desc;

-4) 查找**介于10元和20元之间的图书种类(sort),结果按出版单位(output)和单价(price)升序排序。

select sort 图书种类 from book where price between 10 and 20 order by output, price desc;

-5) 查找书名以”计算机”开头的所有图书和作者(writer)。

select book_name 书名, writer 作者 from book where book_name like '计算机%';

-6) 检索同时借阅了总编号(book_id)为112266和449901两本书的借书证号(reader_id)。

select distinct reader_id 借书证号 from borrow where book_id in (112266,449901);

select 借书证号 from borrow b1,borrow b2 where = 112266 and = 449901;

-7)* 查找所有借了书的读者的姓名(name)及所在单位(company)。

select name 读者,company 单位 from reader where reader_id in (select reader_id from borrow);

-8)* 找出李某所借所有图书的书名及借书日期(borrow_date)。

select distinct 书名, 借书日期 from book , borrow where = and in (select from reader where like '李%')

-9)* 无重复地查询2024年10月以后借书的读者借书证号(reader_id)、姓名和单位。

select distinct 借书证号, 姓名,company 单位 from reader , borrow where in (select from borrow where >date'2006-10-01' )

-10)* 找出借阅了select distinct 借书证号 from borrow , book where in (select from book where = foxpro大全');

-11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期 。

select distinct 读者,company 单位, from reader , borrow where = select distinct from borrow where = select distinct reader_id from reader where name = 赵正义' )

-12) 查询2024年7月以后没有借书的读者借书证号、姓名及单位。

select distinct 借书证号, 姓名, 单位 from reader , borrow where not in (select from borrow where > date'2006-07-01');

Oracle练习题附答案

实验一。练习1 请查询表dept中所有部门的情况。select from dept 练习2 查询表dept中的部门号 部门名称两个字段的所有信息。select deptno,dname from dept 练习3 请从表emp中查询10号部门工作的雇员姓名和工资。select ename,sal f...

Oracle练习题讲解

一 填空。1 在多进程oracle实例系统中,进程分为用户进程 后台进程和服务进程。2.标准的sql语言语句类型可以分为 数据定义语句 ddl 数据操纵语句 dml 和数据控制语句 dcl 3.在需要滤除查询结果中重复的行时,必须使用关键字distinct 在需要返回查询结果中的所有行时,可以使用关...

oracle练习 答案

练习1 请查询表dept中所有部门的情况。select from dept 练习2 查询表dept中的部门号 部门名称两个字段的所有信息。select deptno,dname from dept 练习3 请从表emp中查询10号部门工作的雇员姓名和工资。select ename,sal from ...