数据库与软件工程上机实验答案_数据库实验上机题答案

2020-02-27 其他范文 下载本文

数据库与软件工程上机实验答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据库实验上机题答案”。

《数据库与软件工程》上机实验答案

实验三 SQL语言的DDL

3.CREATE TABLE aa(Bb1 VARCHAR(30),Bb2 INT,Bb3 DECIMAL(6,2))

4. ALTER TABLE aa ADD Bb4 varchar(20)

5.DROP TABLE AA

6. CREATE VIEWReaderView(借阅者)

ASSELECT DISTINCT 读者编号

FROM 借阅

7. Drop ViewReaderView。

8.CREATE INDEX INDEX1 ON 读者(姓名 ASC,单位 ASC)

CREATE INDEX INDEX3 ON 借阅(借阅日期 DESC)

9. DROP INDEX 读者.INDEX1

CREATE INDEX INDEX1 ON 读者(姓名 ASC)

实验四 SQL语言的DML初步

1. CREATE DEFAULT ZEROVALUE AS 0

sp_bindefault ZEROVALUE, '图书.借出否'

CREATE DEFAULT CURTIME AS getdate()

sp_bindefault CURTIME, '借阅.借阅日期'

2. CREATE RULE gender_rule

AS@value in('男','女')

EXEC sp_bindrule 'gender_rule', '读者.性别'

CREATE RULE lenddate_rule

AS@value > '2004-1-1'

EXEC sp_bindrule 'lenddate_rule', '借阅.归还日期'

3. 用INSERT语句对“图书”表插入6条记录

INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)

VALUES('0001','计算机类','清华出版社','严蔚敏','数据结构', 20.11)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)

VALUES('0002','计算机类','清华出版社','苗雪兰','数据库技术及应用',29.00)

INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)

VALUES('0003','计算机类','清华出版社','李建中','软件工程',48.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)

VALUES('0004','计算机类','电子工业出版社','汤惟','WEB技术',32.00)

INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)

VALUES('0005','自动化类','机械工业出版社','胡寿松','自动控制原理',52.00)

INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)

VALUES('0006','自动化类','机械工业出版社','郑大钟','线性控制理论',32.00)用INSERT语句对“读者”表插入4条记录

INSERT INTO 读者(读者编号,姓名,单位,性别,电话)

VALUES('10001','张三','东华大学','男','67792312')

INSERT INTO 读者(读者编号,姓名,单位,性别,电话)

VALUES('10002','李四','东华大学','女','67792312')

INSERT INTO 读者(读者编号,姓名,单位,性别,电话)

VALUES('10003','王五','东华大学','男','67792312')

INSERT INTO 读者(读者编号,姓名,单位,性别,电话)

VALUES('10004','李明','东华大学','女','67792312')

用INSERT语句对“借阅”表插入7条记录

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0001','10001','2006-04-19 09:58:03','2006-05-19 8:38:23')

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0006','10002','2006-07-01 15:28:12','2006-07-18 9:14:02')

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0002','10002','2006-07-01 15:28:30','2006-07-17 19:10:32')

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0002','10003','2006-07-03 15:28:30','2006-08-09 15:28:30')

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0004','10002','2007-05-01 11:28:24','2007-08-01 8:09:04')

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0005','10002','2007-11-01 10:43:12','2007-12-01 14:09:56')

INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)

VALUES('0003','10004','2007-12-01 16:06:02','2007-12-29 13:17:09')

4. UPDATE 借阅

SET 借阅日期='2006-08-03 15:28:30'

WHERE 读者编号='10003' AND

借阅日期 BETWEEN '2006-07-03' AND '2006-07-04' AND 书号='0002'

5. DELETE FROM 借阅

WHERE 借阅日期

1. SELECT 书号,书名 as 名称,定价 as 价格 FROM 图书

WHERE 类别='自动化类'

2. 方法1:

SELECT * FROM 图书

WHERE 类别='计算机类'

UNION

SELECT * FROM 图书

WHERE 出版社='电子工业出版社'

方法2:

SELECT * FROM 图书

WHERE 类别='计算机类' OR 出版社='电子工业出版社'

3. SELECT * INTO 计算机图书表 FROM 图书

WHERE 类别='计算机类'

4. SELECT DISTINCT 读者.* FROM 读者,借阅

WHERE 读者.读者编号=借阅.读者编号

5. SELECT 读者.读者编号,姓名,单位,图书.书号,书名,借阅日期

FROM 读者,借阅,图书

WHERE 读者.读者编号=借阅.读者编号 AND 图书.书号=借阅.书号

6. SELECT 图书.书号,书名,类别,借阅日期 FROM 读者,借阅,图书

WHERE 读者.读者编号=借阅.读者编号 AND 图书.书号=借阅.书号

AND 姓名='张三'

ORDER BY 借阅日期 DESC

7. SELECT 读者.读者编号,姓名,书名,DATEDIFF(day,借阅日期,归还日期)as 借阅时间

FROM 读者,借阅,图书

WHERE 读者.读者编号=借阅.读者编号 AND 图书.书号=借阅.书号

AND DATEDIFF(day,借阅日期,归还日期)>20

order by 借阅时间

8. SELECT * FROM 读者

WHERE NOT EXISTS(SELECT * FROM 图书

WHERE 类别='自动化类' and NOT EXISTS(SELECT * FROM 借阅

WHERE 读者编号=读者.读者编号 and 书号=图书.书号))

1. SELECT 类别,COUNT(*)AS 数量, AVG(定价)AS 平均价格,SUM(定价)AS 总价

FROM 图书

GROUP BY 类别

ORDER BY 类别

2. SELECT YEAR(借阅日期)as 年份,书号,COUNT(*)AS 借阅次数

FROM 借阅

GROUP BY YEAR(借阅日期),书号

ORDER BY 借阅次数 DESC

3. SELECT 读者.读者编号,COUNT(书号)AS 借阅次数 FROM 读者

LEFT JOIN

(SELECT * FROM 借阅 WHERE 借阅日期 BETWEEN '2006-7-1' AND '2007-10-1')A

ON 读者.读者编号=A.读者编号

GROUP BY 读者.读者编号

4. SELECT 读者编号,COUNT(*)AS 次数 FROM 借阅,图书

WHERE 借阅.书号=图书.书号 AND 书名='数据库技术及应用'

GROUP BY 读者编号

ORDER BY 次数 DESC

5. 方法1:

SELECT MAX(次数)AS 最多,MIN(次数)AS 最少,AVG(次数*1.0)AS 平均

FROM(SELECT 图书.书号,COUNT(*)AS 次数 FROM 图书,借阅

WHERE 图书.书号=借阅.书号 AND 类别='计算机类'

GROUP BY 图书.书号)A

方法2:

SELECT 图书.书号,COUNT(*)*1.0 AS 次数 FROM 图书,借阅

WHERE 图书.书号=借阅.书号 AND 类别='计算机类'

GROUP BY 图书.书号

COMPUTE MAX(COUNT(*)*1.0),MIN(COUNT(*)*1.0),AVG(COUNT(*)*1.0)

6. SELECT 类别 FROM 图书

GROUP BY 类别

HAVING MAX(定价)>=ALL(SELECT 2*AVG(定价)FROM 图书 GROUP BY 类别)

7. SELECT 书号,书名,定价,出版社 FROM 图书

WHERE 类别='计算机类'

ORDER BY 出版社 DESC

COMPUTE COUNT(书号)BY 出版社

COMPUTE COUNT(书号)

实验七 存储过程、触发器和数据库恢复

1.(1)

CREATE PROCEDURE 借阅情况

@Readerno VARCHAR(8)

AS

SELECT 读者.读者编号,姓名,图书.书号,书名,借阅日期, 借出否 AS 归还否FROM 读者,借阅,图书

WHERE 读者.读者编号=借阅.读者编号 AND 图书.书号=借阅.书号AND 读者.读者编号=@Readerno

EXEC 借阅情况 ‘10004’

(2)

CREATE PROCEDURE 借出情况

@Bookno VARCHAR(10)

AS

SELECT 书名,姓名,借阅日期,归还日期

FROM 读者,借阅,图书

WHERE 读者.读者编号=借阅.读者编号 AND 图书.书号=借阅.书号AND 图书.书号=@Bookno

EXEC 借出情况 '0004'

2.CREATE TRIGGER lendbookinsert ON 借阅

FOR INSERT

AS

IF(SELECT 借出否 FROM 图书 WHERE 书号 IN

(SELECT 书号 FROM INSERTED))=1

BEGIN

PRINT '该书已经借出'

ROLLBACK TRANSACTION

END

ELSE

BEGIN

UPDATE 图书

SET 借出否=1

WHERE 书号 IN(SELECT 书号 FROM INSERTED)

END

《数据库与软件工程上机实验答案.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数据库与软件工程上机实验答案
点击下载文档
相关专题 数据库实验上机题答案 软件工程 答案 数据库 数据库实验上机题答案 软件工程 答案 数据库
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文