1、试验 1 问题描述: 本题用到下面三个关系表:CARD(CNO,NAME,CLASS) 借书卡。CNO 卡号,NAME 姓名,CLASS 班级 BOOKS(BNO,BNAME,AUTHOR,PRICE,QUANTITY) 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW(CNO,BNO,RDATE) 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期 说明:限定每人每种书只能借一本;库存册数随借书、还书而改变。 试验内容:实现如下 16 个处理: 1用 SQL 语句建立 CARD、BOOKS、BORROW 表,
2、要求定义主码完整性约束和引用完整性约束;用 INSERT 语句向表中插入数据,每个表中至少有 5 条记录。CREATE TABLE CARD(CNO CHAR(8) PRIMARY KEY,NAME CHAR(10),CLASS CHAR(10);CREATE TABLE BOOKS(BNO CHAR(8) PRIMARY KEY,BNAME CHAR(10),AUTHOR CHAR(10),P RICE INT,QUANTITY INT);CREATE TABLE BORROW(CNO CHAR(8),BNO CHAR(8),RDATE DATETIME,PRIMARY KEY(CNO,BN
3、O),FOREIGN KEY(CNO)REFERENCES CARD(CNO),FOREIGN KEY(BNO)REFERENCES BOOKS(BNO),);INSERT INTO CARDVALUES('1305210','李连杰','08-1');INSERT INTO CARDVALUES('1305211','王','08-1');INSERT INTO CARDVALUES('1305212','李','08-1');INSERT INTO
4、 CARDVALUES('1305213','王','08-1');INSERT INTO CARDVALUES('1305214','赵','08-1');INSERT INTO BOOKSVALUES('10000','经济学','梁晓明',50,2);INSERT INTO BOOKSVALUES('10001','信息安全英语','余芳',50,2);INSERT INTO BOOKSVALUES
5、('10002','计算机网络','上的撒',50,2);INSERT INTO BOOKSVALUES('10003','数据库','王里',50,2);INSERT INTO BOOKSVALUES('10004','网络','王军',50,2);INSERT INTO BORROWVALUES('1305210','10000',11111);INSERT INTO BORROWVALUES('130521
6、1','10001',11112);INSERT INTO BORROWVALUES('1305212','10002',11112);INSERT INTO BORROWVALUES('1305213','10003',11112);INSERT INTO BORROWVALUES('1305214','10004',11113);2找出借书超过 5 本的读者,输出借书卡号及所借图书册数。select CNO,COUNT(CNO)FROM BORROWGROUP BY CN
7、OHAVING COUNT(CNO)73查询借阅了“水浒“一书的读者,输出姓名及班级。select CARD.NAME,CLASSFROM CARD,BOOKS,BORROWwhere BNAME ='水浒' AND BOOKS.BNO=BORROW.BNO AND CARD.CNO=BORROW.CNO4查询过期未还图书,输出借阅者(卡号)、书号及还书日期。select CNO,BNO,RDATEFROM BORROWwhere RDATE0INSERT BORROW_SAVE SELECT i.*FROM INSERTED i,BOOKS bWHERE i.BNO=b.BN
8、OAND b.BNAME=N'数据库技术及应用'12建立一个视图,显示“力 01“班学生的借书信息(只要求显示姓名和书名)。CREATE VIEW BORROWS(NAME,BNAME)AS SELECT CARD.NAME,BNAMEFROM CARD,BOOKS,BORROWWHERE CLASS='信息 08-1' AND BOOKS.BNO=BORROW.BNOAND CARD.CNO=BORROW.CNO13-查询当前同时借有“计算方法“和“组合数学“两本书的读者,输出其借书卡号,并按卡号升序排序输出。select cno from borrow wh
9、ere bno=(select bnofrom books where bname=('计算方法') and cno in (select cno from borrow where bno=(select bno from books where bname='组合数学')order by cno asc14假定在建 BOOKS 表时没有定义主码,写出为 BOOKS 表追加定义主码的语句。ALTER TABLE Books ADD PRIMARY KEY (BNO)15对 CARD 表做如下修改: a. 将 NAME 最大列宽增加到 10 个字符(假定原为 6
10、 个字符)。ALTER TABLE CARD ALTER COLUMN NAME CHAR(10) b. 为该表增加 1 列 NAME(系名),可变长,最大 20 个字符。ALTER TABLE CARD ADD SC CHAR(20)试验报告要求:按下面的顺序记录每一个处理步骤及结果:1、题目2、正确的可执行 SQL 语句3、操作结果4、补充说明:特殊的处理方式如:1用 SQL 语句建立 CARD、BOOKS、BORROW 表,要求定义主码完整性约束和引用完整性约束;用 INSERT 语句向表中插入数据,每个表中至少有 5 条记录。CREATE TABLE CARD(CNO CHAR(8) PRIMARY KEY,NAME CHAR(10),CLASS CHAR(10)结果:命令成功完成