Oracle(4)

Oracle基础四

一、创建表

1.创建图书馆管理系统所涉及的表

prompt **********借阅表loan(bid,rid,loanDate)
DROP TABLE loan;
create table loan(
	   bid char(10), 
	   rid char(10),
	   loanDate varchar(20));

prompt **********图书表book(bid,bname,price,qty)
DROP TABLE book;
create table book (
		bid char(10),
		bname varchar(50),
		price number(6,2), 
		qty int)

这里写图片描述

prompt **********书库表lib(lid,lname,address)
DROP TABLE lib;
create table lib (
	     lid number, 
		 lname varchar(20), 
		 address varchar(20)
		 );

prompt **********读者表reader(rid,rname,dept)
DROP TABLE reader;
create table reader(
	    rid char(10), 
		rname varchar(20), 
		dept varchar(10) 
		);

这里写图片描述

二、修改表

1、为各表创建约束
DBMS自动实现数据的完整性------借助于约束的作用:保证数据库中永久数据的正确性(主键唯一,不能引用不存在的对象,满足用户定义的条件)

prompt ************创建主键约束(为图书表、读者表、借阅表创建主键)
alter table book
add constraint pk_book primary key(bid);

alter table reader
add constraint pk_reader primary key(rid);

alter table loan
add constraint pk_loan primary key(bid,rid);

-- 主键:唯一标识,该字段的值必须与别的实体必须是不一样的
-- 由dbms保证数据的正确性

prompt *************创建外键约束(为借阅表创建外键)
alter table loan
add constraint fk_loan foreign key(rid) references reader(rid); 
add constraint fk_loan foreign key(bid) references book(bid);

prompt *************创建用户自定义约束(指定图书表中价格必须为正值)
alter table book
add constraint ck_price check(price > 0);

这里写图片描述
2、对各表进行字段调整操作
添加新字段

prompt **************在图书表中添加“是否热门”字段
alter table book
ADD  is_hot char(10);
insert into book(bid,bname,price,qty)
values(1,'c语言程序课程设计',50,null);

修改字段类型

alter table book  alter column 
prompt ************修改图书表中书名字段为变长字符串
alter table book
modify (bname char(30));

删除不用的字段

prompt *************删除图书表中“是否热门”字段
alter table book
drop column is_hot;

这里写图片描述

三、删除表

prompt *****************删除无关联表
prompt  ****************删除包含外键引用的表
drop table loan;

这里写图片描述

四、创建查询表

prompt  ****************创建所有昂贵书籍表
column bname format a25;
insert into book(bid,bname,price,qty)  values (
	     2, 
		 'ORACLE DATABASE 10g', 
		 38.00, 
		 null
		 );
		
insert into book(bid,bname,price,qty)  values (
	     3, 
		 'java语言程序设计', 
		 39.00, 
		 null
		 ); 
		 
insert into book(bid,bname,price,qty)  values (
	     4, 
		 '新视野大学英语4', 
		 42.90, 
		 null
		 );
select * from  book;

这里写图片描述

五、对借阅情况表进行截断操作

prompt  *****************对借阅情况表进行截断操作
   drop table loan cascade constraint;
-- dml  日志多
-- ddl 日志少
   select * 
   from book 
   where bid in(
			 select bid
			 from book
			 group by bid
			 having count(bid)>1);
	truncate table book;
rollback;

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值