-- 一、创建表
--  创建图书馆管理系统所涉及的表
--  创建产品销售系统所涉及的表
--  1.图书表book(bid,bname,price,qty)

DROP TABLE book cascade constraints;
DROP TABLE lib;
DROP TABLE reader;
DROP TABLE loan;
create table book
(
bid char(10),
bname char(20),
price number(8,2),
qty int);

--  2.读者表reader(rid,rname,dept)

create table reader
(
rid char(10),
rname char(20),
dept char(30));

--3、借阅表loan(bid,rid,loanDate)

create table loan
(
bid char(10),
rid char(10),
loandate char(20)
);

---  4.书库表lib(lid,lname,address)

create table lib
(
lid char(10),lname char(20),address char(100)
);

--二、修改表

--  1、为各表创建约束
--  DBMS自动实现数据的完整性---借助于约束的作用:保证数据库中永久数据的正确性(主键唯一,不能引用不存在的对象,满足用户定义的条件)
--  创建主键约束(为图书表、读者表、借阅表创建主键)
--  主键:唯一标识,该字段的值必须与别的实体必须是不一样的
--  由dbms保证数据的正确性

alter table book
add constraint bookPK primary key(bid);alter table reader
add constraint readerPK primary key(rid);alter table loan
add constraint loanPK primary key(bid,rid);ALTER TABLE lib
ADD constraint libPK primary key(lid);

--外键约束(为借阅表创建外键)

ALTER TABLE book
add constraint loanFK1 foreign key(bid) references book(bid)alter table reader
add constraint loanFK2 foreign key(rid) references reader(rid);

--自定义约束(指定图书表中价格必须为正值)

alter table book
add constraint ck_book_price check(price>0);

--三、修改字段

--增加字段( 在图书表中添加“是否热门”字段)
alter table book
add(ishot int);

ALTER TABLE bookADD (ishot varchar(20) default '是否热门' not null);

--修改字段
alter table book
modify(ishot char(20));

-- --  修改图书表中书名字段为变长字符串ALTER TABLE bookMODIFY(bname varchar(20));

--删除字段(删除图书表中“是否热门”字段)

 ALTER TABLE bookDROP COLUMN ishot;

--四、创建查询表

-- --  创建所有昂贵书籍表

create table book_exp
as
select * from book
where price >50;

--五、创建视图

create view book_exp_view
as
select * from book
where price >50;

--六.删除表

-- --  删除无关联表
    DROP TABLE book;

-- -- --  删除包含外键引用的表
   DROP TABLE loan cascade constraints;

-- -- 七、对借阅情况表进行截断操作
-- -- delete * from loan
-- -- dml  日志多

-- -- ddl 日志少
-- -- truncate loan;
 truncate TABLE loan;
-- -- select * from book where bid in(
-- --    select bid
-- --    from book
-- --    group by bid
-- --    having count(bid)>1);

create table book
(
bid char(10),
bname char(20),
price number(8,2),
qty int);create table reader
(
rid char(10),
rname char(20),
dept char(30));create table loan
(
bid char(10),
rid char(10),
loandate char(20)
);create table lib
(
lid char(10),lname char(20),address char(100)
);alter table book
add constraint bookPK primary key(bid);alter table reader
add constraint readerPK primary key(rid);alter table loan
add constraint loanPK primary key(bid,rid);ALTER TABLE lib
ADD constraint libPK primary key(lid);ALTER TABLE book
add constraint loanFK1 foreign key(bid) references book(bid)alter table reader
add constraint loanFK2 foreign key(rid) references reader(rid);alter table book
add constraint ck_book_price check(price>0);ALTER TABLE bookADD (ishot varchar(20) default '是否热门' not null);-- --  修改图书表中书名字段为变长字符串ALTER TABLE bookMODIFY(bname varchar(20));create table book_exp
as
select * from book
where price >50;create view book_exp_view
as
select * from book
where price >50;

使用Oracle创建图书馆数据库(book reader lib loan表)相关推荐

  1. 使用Oracle创建图书馆数据库

    select * from bookinsert into book values('001','大型数据库技术',28.3,200,'是') insert into book values('002 ...

  2. oracle简易版创建数据库,oracle创建一个数据库三步走

    以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在 ...

  3. Oracle创建一个用户并赋予其他用户表的访问权限

    Oracle创建一个用户并赋予其他用户表的访问权限的方法 --第一步:创建用户 create user username identified by password; --第二步:给用户赋值接触锁定 ...

  4. 创建一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)

    创建一个数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的 ...

  5. Oracle创建本地数据库实例及配置

    因为以前一直都是用的mysql的数据库,所以当新工作中用到Oracle数据库的时候,一时还有点不习惯,特别是一直连接的远程数据库,更是麻烦,所以就想在本地创建一个Oracle的数据库,然后导入数据库的 ...

  6. oracle存储过程和视图不存在,Oracle 创建存储过程 提示权限不足或者提示表和视图不存在问题...

    grant create view to hospital; --授予查询权限 grant select any table to hospital; --授予权限 grant select any ...

  7. oracle创建导入数据库,unix下手动创建oracle以及imp数据导入

    一.手动创建数据库步骤以及数据导入: 1.指定新的SID,我们这里创建一个以ecdsdb为名的SID. [oracle@localhost ~]$ export ORACLE_SID=ecdsdb 2 ...

  8. ORACLE创建一个‘数据库’

    create tablespace chen datafile '/opt/data/chen.dbf' size 100M autoextend on; create user chen ident ...

  9. Oracle创建scott用户导入数据查看emp表

    写在前面,这里我使用的是database19c, 而从12c开始oracle就不再提供已经创建好的scott用户,所以我们需要自行创建来测试. 流程: 过程十分简单,大概两三分钟就能做好 打开cmd, ...

最新文章

  1. win2d 图片水印
  2. FPGA硬件构成详解
  3. 实验报告三c语言,C语言实验报告三
  4. sql 修改时间戳语句_从 0 到 1 搭建技术中台之 SQL 审核平台
  5. jzoj3189-解密【字符串hash】
  6. Pacman主题下给Hexo增加简历类型
  7. [Swift]快速反向平方根 | Fast inverse square root
  8. 一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
  9. vs2013 git 使用总结
  10. python将txt文件转为excel格式以及写入excel超过65536行报错问题解决方法
  11. python装饰器不错的教程
  12. JavaScript 精粹
  13. Anaconda的下载地址
  14. WebSocket 时时双向数据,前后端(聊天室)
  15. android 用platform.x509.pem platform.pk8对apk进行签名
  16. 塞班手机刷linux,向 诺基亚 塞班手机中 批量导入 通讯录(csplit iconv)
  17. PUN☀️八、拓展网络同步:RPCs 和 Properties
  18. 经济观察:开业三周年 亚投行打消外界四大质疑
  19. 微内核相对于单内核优势之我见
  20. 【Redis】实现附近人功能

热门文章

  1. 三维重建的核心模块有哪些?
  2. 非视线成像 - 把墙角变为相机
  3. ECCV2020超快车道线检测算法:Ultra Fast Structure-aware Deep Lane Detection
  4. 单图像三维重建、2D到3D风格迁移和3D DeepDream
  5. java 连接 pgsql
  6. 在IOS中创建get,set方法
  7. 利用人类神经网络进行蛋白质设计
  8. 第十九课.隐马尔科夫模型
  9. Ubuntu14.04安装NVIDIA驱动后之后无法进入图形界面
  10. mysql表分区占用存储_MySQL 分区分表应用场景分析和分区中可能遇到的坑点