先创建下面三个表:
(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 ...