西南科技大学数据库实验一

一、实验目的

  1.  熟悉oracle环境;
  2. 熟练掌握和使用PL-SQL建立数据库基本表。
  3. 使用PL/SQL developer操作数据库。
  4. 熟练掌握SQL 建立关系,及增删改数据。

二、实验环境

Oracle环境,PL-SQL

三、实验步骤、出现的问题及解决方案

 

4.建立数据库表

建立以下各关系:

(1)图书分类(图书分类号,类名):

create table 图书分类

(

 图书分类号 VARCHAR2(10),

 类名 VARCHAR2(10),

 primary key(图书分类号)

 );

(2)书目(ISBN, 书名,作者,出版单位,单价,图书分类号)

create table 书目

(

  ISBN VARCHAR2(20),

  书名  VARCHAR2(20),

  作者  VARCHAR2(10),

  出版单位 VARCHAR2(20),

  单价  VARCHAR2(10),

  图书分类号 VARCHAR2(10),

primary key (ISBN),

  foreign key (图书分类号) references 图书分类 (图书分类号)

);

(3)图书(图书编号,ISBN,是否借出,备注)

create table 图书

(

  图书编号 VARCHAR2(10),

  ISBN VARCHAR2(20),

  是否借出 VARCHAR2(2),

  备注   VARCHAR2(100),

  primary key(图书编号),

  foreign key(ISBN) references 书目(ISBN)

);

(4)读者 (借书证号,姓名,单位,性别,地址,联系电话,身份证编号)

create table 读者

(

  借书证号  VARCHAR2(10),

  姓名    VARCHAR2(10),

  单位    VARCHAR2(100),

  性别    VARCHAR2(2),

  地址    VARCHAR2(100),

  联系电话  VARCHAR2(20),

  身份证编号 VARCHAR2(30),

  primary key(借书证号)

);

(5)借阅 (借阅流水号,借书证号,图书编号,借书日期,归还日期,罚款分类号,备注)

create table 借阅

(

  借阅流水号 VARCHAR2(100),

  借书证号  VARCHAR2(10),

  图书编号  VARCHAR2(10),

  借书日期  DATE,

  归还日期  DATE,

罚款分类号 VARCHAR2(10),

  备注    VARCHAR2(100),

  primary key(借阅流水号),

  foreign key (借书证号) references 读者(借书证号),

  foreign key (图书编号) references 图书(图书编号),

  foreign key (罚款分类号) references 罚款分类(罚款分类号)

);

(6)罚款分类(罚款分类号,罚款名称,罚金)

create table 罚款分类

(

  罚款分类号 VARCHAR2(10),

  罚款名称  VARCHAR2(20),

  罚金    VARCHAR2(1000),

primary key(罚款分类号)

);

(7)预约 (预约流水号,借书证号,ISBN,预约时间)

create table 预约

(

  预约流水号 VARCHAR2(20),

  借书证号  VARCHAR2(20),

  ISBN  VARCHAR2(30),

  预约时间  DATE,

  primary key(预约流水号),

  foreign key (借书证号) references 读者(借书证号),

  foreign key(ISBN) references 书目(ISBN)

);

5.各关系输入数据

(1)图书分类(图书分类号,类名)

(2)书目(ISBN, 书名,作者,出版单位,单价,图书分类号)

(3)图书(图书编号,ISBN,是否借出,备注)

(4)读者 (借书证号,姓名,单位,性别,地址,联系电话,身份证编号)

(5)借阅 (借阅流水号,借书证号,图书编号,借书日期,归还日期,罚款分类号,备注)

(6)罚款分类(罚款分类号,罚款名称,罚金)

(7)预约 (预约流水号,借书证号,ISBN,预约时间)

6.使用SQL语句练习表的创建、删除、修改操作。

  (1)创建表:5中代码

  (2)删除表:删除借阅表

 drop table 借阅;

3)修改表:新增“备注”列:

alter table 图书分类

add 备注 varchar2(10);

7.使用SQL语句练习表中数据的增加、删除、修改操作。

(1)增加数据:图书分类表中新增(400,艺术)行:

insert into 图书分类(图书分类号,类名) values(400,"艺术");

(2)删除数据:删除图书分类表中图书分类号为100的数据:

delete from 图书分类 where 图书分类号=400;

(4)修改数据:将图书分类表中图书分类号为100的类名改为“艺术”:update 图书分类 set 类名='艺术' where 图书分类号=100;

8.试根据下面的完整性约束要求,用SQL对上面已经建立好的数据库表进行完整性约束定义。

(1)读者关系中属性  联系电话  取值为11位数字

                身份证编号  取值为18位,并且满足身份证编号规则:

alter table 读者 add constraint C1 check (regexp_like(联系电话,'^[[:digit:]]{11}'));

alter table 读者 add constraint C2 check (regexp_like(身份证编号,'^[[:digit:]]{17}[[:alnum:]]'));

(2)图书关系中属性 是否借出  取值为:‘是’或‘否’

alter table 图书 add constraint C3 check (是否借出 IN ('',''));

(3)借阅关系中属性 借书日期  取值不为空

alter table 借阅

modify 借书日期 not null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值