77范文网 - 专业文章范例文档资料分享平台

SQL网络数据库 习题参考答案

来源:网络收集 时间:2020-04-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

网络数据库 习题参考答案

1.在对数据进行什么操作时,DBMS会检查缺省值约束?在对数据进行什么操作时,DBMS会检查CHECK约束?

答:对数据进行插入,DBMS会检查缺省值约束。 对数据进行插入、修改,DBMS会检查CHECK约束。 2.UNIQUE约束与PRIMARYKEY约束的区别?

答:(1) UNIQUE约束允许有一个NULL;而PRIMARYKEY约束不允许有一个NULL;

(2) 一个表的UNIQUE约束允许有多个,它定义表的候选键;而PRIMARYKEY约束只能有

一个,它定义表的主键。

3.设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。三个表的结构如表3-8、表3-9、3-10,数据如第一章图1-3所示。完成以下习题。

表3- 1 图书表结构

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

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

列名 读者号 图书号 说明 数据类型 约束说明 约束说明 主键 非空值 非空值 空值 空值 读者的唯一编号 定长字符串,长度为10 外码,引用读者表的主键 图书的唯一编号 定长字符串,长度为20 外码,引用图书表的主键 借出日期 图书借出的日期 定长字符串,长度为8,非空值 为’yymmdd’ 归还日期 图书归还的日期 定长字符串,长度为8,空值 为’yymmdd’ 主键为:(读者号, 图书号) (1)用SQL语句创建图书馆数据库。

答: CREATE DATABASE 图书馆 (2)用SQL语句创建上述三个表。 CREATE TABLE 图书 ( )

ALTER TABLE 图书

ADD CONSTRAINT PK1 PRIMARY KEY(图书号) 等价于:

CREATE TABLE 图书 ( ) 等价于:

CREATE TABLE 图书 ( )

注意,除空值/非空值约束外,其它约束都可定义一个约束名,用CONSTRAINT <约束名>来定义,如:

CREATE TABLE 图书 (

图书号 CHAR(20) NOT NULL , 书名 VARCHAR(50) NULL , 作者 VARCHAR(30) NULL , 出版社 VARCHAR(30) NULL , 单价 FLOAT NULL

图书号 CHAR(20) PRIMARY KEY , 书名 VARCHAR(50) NULL , 作者 VARCHAR(30) NULL , 出版社 VARCHAR(30) NULL , 单价 FLOAT NULL

图书号 CHAR(20) NOT NULL , 书名 VARCHAR(50) NULL , 作者 VARCHAR(30) NULL , 出版社 VARCHAR(30) NULL , 单价 FLOAT NULL,

PRIMARY KEY(图书号)

图书号 CHAR(20) NOT NULL , 书名 VARCHAR(50) NULL , 作者 VARCHAR(30) NULL , 出版社 VARCHAR(30) NULL , 单价 FLOAT NULL,

CONSTRAINT PK1 PRIMARY KEY(图书号)

)

CREATE TABLE 读者(

读者号 CHAR(10) PRIMARY KEY, 姓名 CHAR(8) NOT NULL ,

性别 CHAR(2) NOT NULL , SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE

‘王%’

SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘王%’ SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘王%’ SELECT * FROM 借阅 WHERE 归还日期 IS NULL

SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘王%’ SELECT * FROM 借阅 WHERE 归还日期 IS NULL )

列后的NULL空值约束可以省略,因为缺省是NULL。 CREATE TABLE 借阅(

读者号 CHAR(10) NOT NULL , 图书号 CHAR(20) NOT NULL , 借出日期 CHAR(8) NOT NULL , 归还日期 CHAR(8) NULL, PRIMARY KEY (读者号, 图书号),

FOREIGN KEY (读者号) REFERENCES 读者(读者号), FOREIGN KEY (图书号) REFERENCES 图书(图书号) )

注意,除空值/非空值约束外,其它约束都可定义一个约束名,用CONSTRAINT <约束名>来定义,如: CREATE TABLE 借阅(

读者号 CHAR(10) NOT NULL , 图书号 CHAR(20) NOT NULL , 借出日期 CHAR(8) NOT NULL , 归还日期 CHAR(8) NULL, 办公电话 CHAR(8) NULL , 部门 VARCHAR(30) NULL

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

CONSTRAINT CK2 FOREIGN KEY (读者号) REFERENCES 读者(读者号), CONSTRAINT CK3 FOREIGN KEY (图书号) REFERENCES 图书(图书号) )

上述定义中的主键约束,由于涉及表中的两个列,因此只能定义为表级约束。有两个外键约

束,均可定义在列之后,作为列级约束。但通常定义为表级约束,因为外键定义较长。等价定义为:

CREATE TABLE 借阅(

读者号 CHAR(10) NOT NULL FOREIGN KEY (读者号) REFERENCES 读者(读者号), 图书号 CHAR(20) NOT NULL FOREIGN KEY (图书号) REFERENCES 图书(图书号), 借出日期 CHAR(8) NOT NULL , 归还日期 CHAR(8) NULL,

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

也等价于:CREATE TABLE 借阅(

读者号 CHAR(10) NOT NULL REFERENCES 读者(读者号), )

(3)基于图书馆数据库的三个表,用SQL语言完成以下各项操作: 1)给图书表增加一列“ISBN”,数据类型为CHAR(10) ALTER TABLE 图书 ADD ISBN CHAR(10)

2)为刚添加的ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为’7111085949’; ALTER TABLE 图书

ADD CONSTRAINT ISBNDEF DEFAULT ‘7111085949’ FOR ISBN

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

CHECK (办公电话 LIKE ‘(88320)[0-9][0-9][0-9]’) 4)删除图书表中ISBN列增加缺省值约束; ALTER TABLE 图书

DROP CONSTRAINT ISBNDEF

5)删除读者表中“办公电话”列的CHECK约束; ALTER TABLE 读者

DROP CONSTRAINT CHECKDEF 6)删除图书表中新增的列ISBN; ALTER TABLE 图书 DROP COLUMN ISBN

图书号 CHAR(20) NOT NULL REFERENCES 图书(图书号), 借出日期 CHAR(8) NOT NULL , 归还日期 CHAR(8) NULL, PRIMARY KEY (读者号, 图书号)

(4)基于图书馆数据库的三个表,用SQL语言完成以下数据更新操作: 1)向读者表加入一个新读者,该读者的信息为:

(‘200197’, ‘王小平’, ‘男’ , ‘88320732’,’存中楼’)

INSERT INTO 读者 VALUES (‘200197’, ‘王小平’, ‘男’, ‘88320732 ‘, ‘物理系’) 2)向借阅表插入一个借阅记录,表示读者’王小平’借阅了一本书,图书号为’TP316/ZW6’,借出日期为当天的日期,归还日期为空值。 INSERT INTO 借阅

VALUES(‘200197’,’TP316/ZW6’,CONVERT(CHAR(8),GETDATE(),112),NULL) 3)读者’王小平’在借出上述图书后10 归还该书;

UPDATE 借阅 SET 归还日期= 借出日期 + 10 WHERE 读者号=(SELECT 读者号 FROM 读者 WHERE 姓名=’王小平’ )

4)当读者’王小平’按期归还图书时,删除上述借阅记录; DELETE FROM 借阅

WHERE 读者号=(SELECT 读者号 FROM 读者 WHERE 姓名= ‘王小平’ )

(5)针对以上三个表,用SQL语言完成以下各项查询: 1)查询全体图书的图书号,书名,作者,出版社,单价。 SELECT 图书号,书名,作者,出版社,单价 FROM 图书 等价于:

SELECT * FROM 图书

2)查询全体图书的信息,其中单价打8折,并且将该列设置别名为’打折价’ 。 SELECT 图书号,书名,作者,出版社,单价*0.8 ‘打折价’ FROM 图书 SELECT 图书号,书名,作者,出版社,单价*0.8 AS ‘打折价’ FROM 图书 SELECT 图书号,书名,作者,出版社,’打折价’=单价*0.8 FROM 图书 3)显示所有借阅者的读者号,并去掉重复行。 SELECT DISTINCT 读者号 FROM 借阅 若要保留重复行,则用: SELECT ALL 读者号 FROM 借阅

4)查询所有单价在20到30之间的图书信息。 SELECT * FROM 图书

WHERE 单价 BETWEEN 20 AND 30 此句等价于: SELECT * FROM 图书

WHERE 单价>= 20.00 AND 单价 <=30.00

5)查询所有单价不在20到30之间的图书信息。 SELECT * FROM 图书

WHERE 单价 NOT BETWEEN 20.00 AND 30.00

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库SQL网络数据库 习题参考答案在线全文阅读。

SQL网络数据库 习题参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/975817.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: