Oracle数据库图书管理系统的课程设计

在Oracle数据库最初的sys用户XE数据库下执行;

--删除表空间

drop tablespace tablespace_book including contents
cascade constraints;

--创建永久表空间
create tablespace tablespace_book
datafile 'f:\oracle\book' size 50m
autoextend on next 50m maxsize 100m;    --自动增长表空间从50M到100M;

--创建用户
create user book identified by book
default tablespace tablespace_book;

--用户授权

grant all privileges to book;

在创建的book用户下执行,我连接的数据库名与用户名相同;

--创建管理员角色
create role manager identified by manager;

--创建读者角色
create role reader identified by reader;

--创建读者表
create table reader(
rno number(10) not null primary key,
rname varchar2(20),
rid number(18) unique)tablespace tablespace_book
storage(initial 256k);

--创建图书表
create table book(
bno number(10) not null primary key,
bname varchar2(20) not null,
bprice varchar(4),
author varchar2(30) not null,
bnum int not null)tablespace tablespace_book
storage(initial 256k);

--创建借阅表
create table rb(
readno number(10) not null primary key,
rno number(10) not null,
rname varchar2(20),
bno number(18) not null,
bname varchar2(20),
regdate date default sysdate,
back char(2))tablespace tablespace_book
storage(initial 256k);

--创建管理员表
create table manager(
mno number(10) not null primary key,
mname varchar2(20)not null,
regdate date default sysdate
)tablespace tablespace_book
storage(initial 256k);

--为借阅表创建外键约束
alter table rb add constraint fk_rb foreign key
(rno) references
reader(rno);

--向读者表中插入数据
insert into reader(rno,rname,rid)
values(101,'叶凡一',123456789);
insert into reader(rno,rname,rid)
values(102,'叶凡二',223456789);
insert into reader(rno,rname,rid)
values(103,'叶凡三',323456789);
insert into reader(rno,rname,rid)
values(104,'叶凡四',423456789);
insert into reader(rno,rname,rid)
values(105,'叶凡五',523456789);
insert into reader(rno,rname,rid)
values(106,'叶凡六',623456789);
insert into reader(rno,rname,rid)
values(107,'叶凡七',723456789);
insert into reader(rno,rname,rid)
values(108,'叶凡八',823456789);
insert into reader(rno,rname,rid)
values(109,'叶凡九',923456789);
insert into reader(rno,rname,rid)
values(110,'叶凡十',023456789);

--向图书表中插入10条数据
insert into book(bno,bname,bprice,author,bnum)
values(1010,'遮天1',50,'辰东',1);
insert into book(bno,bname,bprice,author,bnum)
values(1011,'遮天2',50,'辰东',3);
insert into book(bno,bname,bprice,author,bnum)
values(1012,'遮天3',50,'辰东',5);
insert into book(bno,bname,bprice,author,bnum)
values(1013,'遮天4',50,'辰东',7);
insert into book(bno,bname,bprice,author,bnum)
values(1014,'遮天5',50,'辰东',8);
insert into book(bno,bname,bprice,author,bnum)
values(1015,'遮天6',50,'辰东',5);
insert into book(bno,bname,bprice,author,bnum)
values(1016,'遮天7',50,'辰东',4);
insert into book(bno,bname,bprice,author,bnum)
values(1017,'遮天8',50,'辰东',2);
insert into book(bno,bname,bprice,author,bnum)
values(1018,'遮天9',50,'辰东',10);
insert into book(bno,bname,bprice,author,bnum)
values(1019,'遮天10',50,'晨曦',10);

--向借阅表中插入数据
insert into rb(readno,rno,rname,bno,bname,BACK)
values(1,103,'叶凡三',1010,'遮天1','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(2,103,'叶凡三',1011,'遮天2','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(3,103,'叶凡三',1012,'遮天3','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(4,104,'叶凡四',1013,'遮天4','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(5,105,'叶凡五',1014,'遮天5','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(6,105,'叶凡五',1015,'遮天6','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(7,107,'叶凡七',1016,'遮天7','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(8,109,'叶凡九',1017,'遮天8','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(9,101,'叶凡一',1018,'遮天9','N');
insert into rb(readno,rno,rname,bno,bname,BACK)
values(10,101,'叶凡一',1019,'遮天10','N');

--向管理员表中插入数据
insert into manager(mno,mname) values(1,'图图');
insert into manager(mno,mname) values(2,'花花');

--创建主键索引
create unique index manager_index on manager (mno desc) 
tablespace tablespace_book 
storage 

  buffer_pool default 
);

create unique index book_index on book (bno desc) 
tablespace tablespace_book 
storage 

  buffer_pool default 
);

create unique index read_index on rb (readno desc) 
tablespace tablespace_book 
storage 

  buffer_pool default 
);

create unique index reader_index on reader (rno desc) 
tablespace tablespace_book 
storage 

  buffer_pool default 
);

--创建视图
create or replace view book_view_union as
select bno,bname,bprice,bnum from book;

create or replace view reader_view_union as
select rno,rname,rid from reader;

create or replace view rb_view_union as
select readno,rno,rname,bno,bname,regdate,back from rb;

--创建存储过程实现表中数据的修改
--还书数据的修改管理
CREATE OR REPLACE PROCEDURE RBack(B_ID VARCHAR2)
IS
BEGIN
UPDATE RB SET BACK = 'Y' WHERE readno = B_ID;
COMMIT;
END;
--执行
BEGIN
rback('1');
END;

--创建函数统计各种图书的库存量
CREATE OR REPLACE FUNCTION GETSCOUNT(au IN VARCHAR2) RETURN NUMBER
  AS
  BOOKNUM NUMBER;
  BEGIN
  SELECT bnum INTO BOOKNUM FROM BOOK WHERE author = au;
  RETURN(BOOKNUM);
  END;
  
--调用函数
DECLARE
COUNTNUM NUMBER:=0;
BEGIN
COUNTNUM:=GETSCOUNT('晨曦');
SYS.DBMS_OUTPUT.PUT('图书馆有“晨曦”所写书籍总数为: ');
SYS.DBMS_OUTPUT.PUT(COUNTNUM);
SYS.DBMS_OUTPUT.PUT_LINE('本');
END;

--触发器
CREATE OR REPLACE TRIGGER tri_rb
AFTER INSERT OR UPDATE ON RB
FOR EACH ROW
DECLARE
BEGIN
SYS.DBMS_OUTPUT.PUT_LINE('借阅者:'||:NEW.RNAME);
SYS.DBMS_OUTPUT.PUT_LINE('书籍编号:'||:NEW.BNO);
SYS.DBMS_OUTPUT.PUT_LINE('书籍名称:'||:NEW.BNAME);
SYS.DBMS_OUTPUT.PUT_LINE('借出日期:'||:NEW.REGDATE);
SYS.DBMS_OUTPUT.PUT_LINE('是否归还:'||:NEW.BACK);
SYS.DBMS_OUTPUT.PUT_LINE('触发器已被执行');
END;

--普通读者用户只能进行查询操作授权
grant select on book to reader;

--授权管理员角色可进行各种操作
grant connect,resource to manager;
grant create any sequence to manager;  
grant create any table to manager;  
grant delete any table to manager;  
grant insert any table to manager;  
grant select any table to manager;  
grant unlimited tablespace to manager;  
grant execute any procedure to manager;  
grant update any table to manager;  
grant create any view to manager;

Oracle数据库图书管理系统的课程设计相关推荐

  1. C#实现图书管理系统(课程设计)——第五步、查询界面及操作

    C#实现图书管理系统(课程设计)--第五步.查询界面及操作 上一篇:借书界面 (1)界面设计: 前三个框为DataGridView控件,具体的使用方法自行百度,以下简单讲解: 1.创建后点击,右上角会 ...

  2. C#实现图书管理系统(课程设计)——第二步、登陆界面

    C#实现图书管理系统(课程设计)--第二步.登陆界面 (1)整体设计方案 划红线的地方是登录界面方案 主要参考:https://blog.csdn.net/weixin_43209848/articl ...

  3. 用C#实现一个简单的图书管理系统(课程设计)

    用C#(sharp)实现一个简单的图书管理系统(课程设计) 学校的数据库课程结束了,要求完成一个课程设计,于是我用C#实现了一个简单的图书管理系统(ADO.NET) 源码放在了github上,仅供参考 ...

  4. C#winform图书管理系统(课程设计)

    C#winform图书管理系统(课程设计)借书.还书.查询用户信息.查询图书信息.添加图书.删除图书.修改图书信息

  5. 经验总结:图书管理系统java课程设计

    1. Java 堆空间 **发生频率:**5颗星 造成原因 无法在 Java 堆中分配对象 吞吐量增加 应用程序无意中保存了对象引用,对象无法被 GC 回收 应用程序过度使用 finalizer.fi ...

  6. RFID课程设计-图书管理系统用户端设计

    RFID课程设计-图书管理系统用户端设计课程设计题目课程设计任务内容题目设计基本原理NFC开发概述标签调度系统如何将 NFC 标签映射到 MIME 类型和 URI如何将 NFC 标签分发到应用在 An ...

  7. 图书资料管理课程设计(附源码和连接)

    摘要 图书资料管理系统基于eclipse下可视化工具WindowsBuilder配合Mysql数据库进行开发,具有的基本功能有管理员登陆,图书类别管理(包括图书类别的添加和删除),图书信息的管理 (包 ...

  8. 基于SSM框架图书管理系统开发与设计(附源码资料)-毕业设计

    文章目录 1. 适用人群 2. 你将收获 3.项目简介 4.技术实现 5.系统功能 5.1.管理员身份登录 5.1.1.登录 5.1.2.管理员登录首页 5.1.3.借阅管理 5.1.4.图书管理 5 ...

  9. 宿舍住宿管理java课程设计_宿舍管理系统Java课程设计

    宿舍管理系统Java课程设计 Java 课程设计设计(论文) 题目: 宿舍管理系统 所 在 院: 专 业 : 班 级 : 学 生 姓 名: 学 号: 指 导 教 师: 年 月 日课程设计(论文)任务书 ...

最新文章

  1. 【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络
  2. OS / Linux / epoll 各种事件解析
  3. java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...
  4. treegrid.bootstrap使用说明
  5. PHP中英文截取函数,php字符串截取函数,支持中英文混体
  6. 学C++的你今天鄙视PHP了吗?
  7. 4月23日云栖精选夜读:阿里AI新物种!设计机器人两年赶上资深员工水平
  8. matlab isnumeric函数,matlab中isnan函数
  9. java打印等腰三角形_为什么大家都说Java中只有值传递?
  10. 一文详解Attention机制
  11. 大M单纯形算法的MATLAB实现
  12. 2022年CCNA面试题库和答案
  13. 联想“重组症”:仅靠重组是不够的
  14. 2020长安杯网站重构部分
  15. shell中各种括号(),[],(()),[[]],{}等的作用大全及示例
  16. stm32采集脉冲信号_STM32单片机怎么产生脉冲信号控制步进电动机?
  17. 你知道什么是嵌入式技术吗?
  18. caffe.net matlab,【caffe-Windows】微软官方caffe之 matlab接口配置
  19. R语言的graphics画图功能
  20. Hive 热门数据分析笔试题(干货满满,持续更新中...)

热门文章

  1. 企鹅安卓客户端联系人列表数据解密分析及Java实现
  2. Linux 系统如何查看系统配置信息
  3. 疑难杂症——Ubantu系统如何切换中文
  4. putty文件夹文字看不清
  5. 第26章 多线程处理
  6. csdn发表博客时出现选择文章类型”
  7. ble连接过程建立_BLE4.0教程一 蓝牙协议连接过程与广播分析
  8. 2019年春阅读笔记1——JAVA发展史
  9. 如何将一个Java对象序列化到文件里?
  10. 写小米商城时遇到的bug和一些样式写法