数据库原理及应用A实验.docx
《数据库原理及应用A实验.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用A实验.docx(7页珍藏版)》请在冰豆网上搜索。
数据库原理及应用A实验
数据库原理及应用实验
实验1、熟悉实验环境,并创建数据库
一、实验目的:
1、熟悉oracle环境;
2、使用DBCA建立数据库;
3、使用PL/SQLdeveloper操作数据库。
4、熟练掌握SQL建立关系,及增删改数据。
二、实验内容:
1使用DBCA建立图书管理数据库(BooKbase).
2了解SQLPLUS的使用
3使用PL/SQLdeveloper,建立图书管理数据库各关系
4在建立的关系中输入有效数据
5删除以上各关系。
5在PL/SQLdeveloper用SQL代码建立BooKbase数据库各关系
6用SQL代码完成数据增删改。
BooKbase数据库各表如下:
图书分类(图书分类号,类名)
书目(ISBN,书名,作者,出版单位,单价,图书分类号)
图书(图书编号,ISBN,是否借出,备注)
读者(借书证号,姓名,单位,性别,地址,联系电话,身份证编号)
借阅(借阅流水号,借书证号,图书编号,借书日期,归还日期,罚款分类号,备注)
罚款分类(罚款分类号,罚款名称,罚金)
预约(预约流水号,借书证号,图书编号,预约时间)
输入数据:
图书分类(图书分类号,类名)
图书分类号
类名
100
文学
200
科技
300
哲学
书目(ISBN,书名,作者,出版单位,单价,图书分类号)
ISBN
书名
作者
出版单位
单价
图书分类号
7040195836
数据库系统概论
王珊
高等教育出版社
39.00
200
9787508040110
红楼梦
曹雪芹
人民出版社
20.00
100
9787506336239
红楼梦
曹雪芹
作家出版社
34.30
100
9787010073750
心学之路
张立文
人民出版社
33.80
300
图书(图书编号,ISBN,是否借出,备注)
图书编号
ISBN
是否借出
备注
2001231
7040195836
否
2001232
7040195836
是
1005050
9787506336239
否
1005063
9787508040110
是
3007071
9787010073750
是
读者(借书证号,姓名,单位,性别,地址,联系电话,身份证编号)
借书证号
姓名
单位
性别
地址
联系电话
身份证编号
20051001
王菲
四川绵阳西科大计算机学院
女
…
…
..
20062001
张江
四川绵阳中心医院
男
…
…
..
20061234
郭敬明
四川江油305
男
..
..
..
20071235
李晓明
四川成都工商银行
男
..
..
..
20081237
赵鑫
四川广元广元中学
女
..
..
..
借阅(借阅流水号,借书证号,图书编号,借书日期,归还日期,罚款分类号,备注)
借阅流水号
借书证号
图书编号
借书日期
归还日期
罚款分类号
备注
1
20081237
3007071
2010/09/19
2010/09/20
2
20071235
1005063
2010/10/20
2011/02/20
1
3
20071235
2001232
2011/09/01
4
20061234
1005063
2011/9/20
5
20051001
3007071
2011/9/10
罚款分类(罚款分类号,罚款名称,罚金)
罚款分类号
罚款名称
罚金
1
延期
10
2
损坏
20
3
丢失
50
预约(预约流水号,借书证号,图书编号,预约时间)
预约流水号
借书证号
ISBN
预约时间
1
20081237
7040195836
2011/09/11
实验2、查询
一、实验目的:
熟练掌握select命令,包括单表查询,多表查询,分组,聚集函数的使用。
二、实验内容:
完成如下查询:
1、查询“红楼梦“目前可借的各图书编号,及所属版本信息。
(是否借出为‘否‘的图书)
2、查找高等教育出版社的所有书目及单价,结果按单价降序排序
3、统计“红楼梦“各版的藏书数量(ISBN不同则版本不同)。
4、查询‘20061234’号借书证借阅未还的图书的信息。
5、查询各个出版社的图书最高单价、平均单价。
6、要查询借阅了两本和两本以上图书的读者的个人信息
7、查询‘王菲’的单位、所借图书的书名和借阅日期,
8、查询每类图书的册数和平均单价。
9、统计从未借书的读者人数。
10、统计参与借书的人数
11、找出所有借书未还的读者的信息及所借图书编号及名称。
12、检索书名是以“Internet”开头的所有图书的书名和作者。
13、查询各图书的罚款总金额。
14、查询借阅及罚款分类信息,如果有罚款则显示借阅信息及罚款名称、罚金,如果没有罚款则罚款名称、罚金显示空(左外连接)
实验3、存储过程
一、实验目的:
掌握存储过程的建立和调用。
二、实验内容:
1、建立存储过程完成图书管理系统中的借书功能。
功能要求:
(1)借书时要求输入借阅流水号,借书证号,图书编号。
(即该函数有3个输入参数)
(2)借书时,借书日期为系统时间。
(3)图书的是否借出改为‘是’
2、建立存储过程完成图书管理系统中的预约功能。
(1)预约时要求输入预约流水号,借书证号,ISBN。
(即该函数有3个输入参数)
(2)存储过程先检查输入的ISBN版本的图书是否都已借出,如果是则进行预约,否则提示“该书目有可借图书,请查找”。
(3)预约时间为系统时间。
3、建立存储过程完成图书管理系统中的还书功能。
(1)还书时要求输入借书证号,图书编号,罚款分类号。
(即该函数有3个输入参数)
(2)还书日期为系统日期
(3)图书的是否借出改为‘否’
实验4、触发器
一、实验目的:
掌握触发器的建立和应用。
二、实验内容:
1、通过序列和触发器实现借阅表中借阅流水号字段的自动递增。
2、通过序列和触发器实现预约表中预约流水号字段的自动递增
3、修改实验三借书功能的存储过程。
该存储过程要求:
(1)借书时输入借书证号,图书编号。
(即该函数有2个输入参数)
(2)借书时,借书日期为系统时间。
*该存储过程主体部分只有insertinto语句。
4、建立与借书存储过程相对应的触发器,当借阅表中加入借阅信息时,该触发器触发,自动修改所借图书的是否借出改为‘是’。
5、修改实验三还书功能的存储过程。
该存储过程要求:
(1)还书时输入借书证号,图书编号。
(即该函数有2个输入参数)
(2)还书时,还书日期为系统时间。
*该存储过程主体部分只有一条UPDATE语句。
6、建立与还书存储过程相对应的触发器,当借阅表中填入还书日期时,该触发器触发,自动修改所还图书的是否借出为‘否’。