实验九 表的创建和修改答案

更新时间:2023-10-23 02:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验九 表的创建和修改参考答案

一、目的与要求

1.掌握Oracle数据库中表的创建方法; 2.掌握数据完整性的规则和定义; 二、实验准备

1. 了解表是数据库中最常用的存储单元,它包括所有用户可以访问的数据。作为关系型数

据库,Oracle表由行和列组成。

2. 了解使用CREATE TABLE语句创建表的方法。 3. 了解使用SQL命令实现数据完整性的方法。

三、实验内容

1.设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。三个表的结构如表1、表2和表3所示。

表1 图书表结构

列名 图书号 书名 作者 出版社 单价 说明 图书唯一的图书号 图书的书名 图书的编著者名 图书的出版社 出版社确定的图书的单价 数据类型 字符串,长度为20 字符串,长度为50 字符串,长度为30 字符串,长度为30 数值型 约束 主键 空值 空值 空值 空值 表2 读者表结构

列名 读者号 姓名 性别 办公电话 部门 说明 读者唯一编号 读者姓名 读者性别 读者办公电话 读者所在部门 数据类型 字符串,长度为10 字符串,长度为8 字符串,长度为2 字符串,长度为8 字符串,长度为30 表3 借阅表结构

约束说明 主键 非空值 非空值 空值 空值 列名 读者号 图书号 说明 读者的唯一编号 图书的唯一编号 数据类型 字符串,长度为10 字符串,长度为20 日期型 日期型 约束说明 外键,引用读者表的主键 外键,引用图书表的主键 非空值 空值 借出日期 图书借出的日期 归还日期 图书归还的日期

主键为:(读者号, 图书号) 2.使用DBCA工具创建图书馆数据库LIB。

3.创建用户LIBUSER,并授予该用户DBA角色,将对应的命令写在实验报告中。 CREATE USER LIBUSER IDENTIFIED BY LIBUSER; GRANT DBA TO LIBUSER;

4.以用户LIBUSER的身份连接到数据库LIB,用SQL语句创建上述三个表,并将对应的SQL命令写在实验报告中。

CONNECT LIBUSER/LIBUSER@LIB; 创建三个表的命令分别为: CREATE TABLE 图书 ( 图书号 VARCHAR2(20) PRIMARY KEY , 书名 VARCHAR2(50) NULL , 作者 VARCHAR2(30) NULL , 出版社 VARCHAR2(30) NULL , 单价 NUMBER NULL )

CREATE TABLE 读者( 读者号 VARCHAR2 (10) PRIMARY KEY, 姓名 VARCHAR2 (8) NOT NULL , 性别 VARCHAR2 (2) NOT NULL , 办公电话 VARCHAR2 (8), 部门 VARCHAR2(30) )

CREATE TABLE 借阅( 读者号 VARCHAR2 (10) NOT NULL , 图书号 VARCHAR2 (20) NOT NULL , 借出日期 DATE NOT NULL , 归还日期 DATE,

PRIMARY KEY (读者号, 图书号),

FOREIGN KEY (读者号) REFERENCES 读者(读者号), FOREIGN KEY (图书号) REFERENCES 图书(图书号) ) 5.基于图书馆数据库的三个表,用SQL语言完成以下各项操作,并将命令写在实验报告中。 1)给图书表增加一列“ISBN”,数据类型为VARCHAR2(10) ALTER TABLE 图书

ADD ISBN VARCHAR2(10)

2)为刚添加的ISBN列增加默认值,默认值为’7111085949’; ALTER TABLE 图书

MODIFY ISBN DEFAULT '7111085949';

3)为读者表的’办公电话’列,添加一个CHECK约束,要求前五位’88320’,约束名为CHECKDEF。

ALTER TABLE 读者

ADD CONSTRAINT CHECKDEF CHECK (办公电话 LIKE ‘88320%’)

4)删除图书表中ISBN列的默认值约束; ALTER TABLE 图书 DROP COLUMN ISBN; ALTER TABLE 图书 ADD ISBN VARCHAR2(10); 5)删除读者表中“办公电话”列的CHECK约束; ALTER TABLE 读者

DROP CONSTRAINT CHECKDEF 6)删除图书表中新增的列ISBN。

ALTER TABLE 图书 DROP COLUMN ISBN 7)对应的插入语句如下:

INSERT INTO 图书 VALUES ('TN913.2/530','21世纪的电信网','盛友招','人民邮电出版社',7.5);

INSERT INTO 图书 VALUES ('TP311.13/CM3','数据库系统原理及应用','苗雪兰','机械工业出版社',28);

INSERT INTO 图书 VALUES ('TP311.132/ZG1','XML数据库设计','尹志军','机械工业出版社',38);

INSERT INTO 图书 VALUES ('TP316/ZW6','操作系统','吴庆菊','科学出版社',35); INSERT INTO 图书 VALUES ('TP316/ZY1','操作系统','沈雪明','电子工业出版社',31);

INSERT INTO 图书 VALUES ('TP391.132.3/ZG5','网络数据库技术精粹','李智等','机械工业出版社',45);

INSERT INTO 读者 VALUES ('001973','王平','男','88320701',''); INSERT INTO 读者 VALUES ('001974','张丽','女','88320701',''); INSERT INTO 读者 VALUES ('001975','王辉','男','88320701',''); INSERT INTO 读者 VALUES ('001976','李建','男','88320701',''); INSERT INTO 读者 VALUES ('001977','程淡','女','88320701','');

INSERT INTO 借阅 VALUES ('001973','TP311.132/ZG1',to_date('2005-01-27','YYYY-MM-DD'),to_date('2005-03-28','YYYY-MM-DD')); INSERT INTO 借阅 VALUES ('001973','TP316/ZW6',to_date('2005-01-27','YYYY-MM-DD'),to_date('2005-03-28','YYYY-MM-DD')); INSERT INTO 借阅 VALUES ('001975','TP311.132/ZG1',to_date('2005-01-27','YYYY-MM-DD'),to_date('2005-03-28','YYYY-MM-DD')); INSERT INTO 借阅 VALUES ('001974','TP311.13/CM3',to_date('2005-01-27','YYYY-MM-DD'),to_date('2005-03-28','YYYY-MM-DD')); INSERT INTO 借阅 VALUES ('001975','TP316/ZW6',to_date('2005-01-27','YYYY-MM-DD'),to_date('2005-03-28','YYYY-MM-DD')); INSERT INTO 借阅 VALUES ('001974','TP311.132/ZG1',to_date('2005-01-28','YYYY-MM-DD'),to_date('2005-03-28','YYYY-MM-DD'));

8)向读者表加入一个新读者,该读者的信息自拟,将命令写在实验报告中。 INSERT INTO 读者 VALUES ('001980','王武','男','88320701','');

9)向借阅表插入一个借阅记录,表示读者’王小平’借阅了一本书,图书号为’TP316/ZW6’, 将命令写在实验报告中。 INSERT INTO 借阅 VALUES ('001973','TP316/ZW6',to_date('2005-01-27','YYYY-MM-DD'),NULL);

10)读者’王小平’在借出上述图书10天后归还该书,将命令写在实验报告中。 UPDATE 借阅 SET 归还日期=借出日期+10 where 书号=’ TP316/ZW6’;

11)当读者’王小平’按期归还图书时,删除上述借阅记录,将命令写在实验报告中。 DELECT FROM 借阅 WHERE 读者号=’001973’;

本文来源:https://www.bwwdw.com/article/df3f.html

Top