– 前面介绍过的格式设置: set pagesize 66 set linesize 160 spool E:\0413.txt – soopl是将SQL Plus中的内容转换成.txt文本形式存放在E盘下的0413文件夹里
prompt 一、创建表: prompt 1.创建图书馆管理系统所涉及的表 create table book( –图书表 bid char(10), bname varchar(30), price number(8,2), qty int);
create table lib( –书库表 lid char(10), lname varchar(30), address varchar(100));
create table reader( –读者表 rid char(10), rname varchar(30), dept varchar(30));
create table loan( –借阅表 bid char(10), rid char(10), loanDate date);
prompt 二、修改表 prompt 1、 为各表创建约束 – DBMS自动实现数据的完整性->借助于约束的作用:保证数据库中永久数据的正确性 –(主键唯一,不能引用不存在的对象,满足用户定义的条件) – 主键:唯一标识,该字段的值必须与别的实体必须是不一样的,由dbms保证数据的正确性 prompt 1)创建主键约束(为图书表、读者表、借阅表创建主键) alter table book add constraint pk_book primary key(bid);
alter table reader add constraint pk_reader primary key(rid);
alter table loan add (lid number(5));//然后才可以创建lid约束 alter table loan add constraint pk_loan primary key(lid);
prompt 2)删除约束 alter table loan drop constraint pk_loan;
prompt 3)创建外键约束(为借阅表创建外键) alter table loan add constraint fk_loan foreign key(bid) references book(bid);
alter table loan add constraint fk_loan1 foreign key(rid) references reader(rid);
prompt 4)创建用户自定义约束(指定图书表中价格必须为正值) alter table book add constraint ck_book check(price >0);
prompt 2、对各表进行字段调整操作 prompt 1)添加新字段:在图书表中添加“是否热门”字段 alter table book add (is_hot varchar(20));
prompt 2)修改字段类型:修改图书表中书名字段为变长字符串 alter table book modify (bname varchar2(30));
prompt 3)删除不用的字段:删除图书表中“是否热门”字段 alter table book drop column 是否热门;
prompt 三、删除表 prompt 1.删除无关联表 drop table lib;
– 2.删除包含外键引用的表
prompt 四、创建查询表 prompt 1.创建所有昂贵书籍表 create table expBook as select * from book where price >200;
prompt 五、对借阅情况表进行截断操作 delete * from loan – dml 日志多
– ddl 日志少 truncate loan;
select * from book where bid in( select bid from book group by bid having count(bid)>1);
rollback; – 每次操作完可回退,防止造成数据不小心删除。(先将commit注释,操作全部完成后将commit注释取消) spool off; commit; – 直到所有操作都正确,并记得将rollback注释然后就可以提交了
