图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期) 根据上面基本表的信息定义一个存储过程,完成下面功能:入口参数:书号 1显示图书借阅信息 2 如果没人借,删除该书记录3 如果价格5元以下,涨价至5元。
时间: 2024-04-03 09:37:11 浏览: 95
根据您提供的基本表信息,可以定义以下存储过程来实现您的要求:
```
CREATE PROCEDURE book_handle
@book_id INT
AS
BEGIN
-- 1.显示图书借阅信息
SELECT B.书号, B.书名, B.价格, B.出版社, R.卡号, R.姓名, R.年龄, R.所属单位, J.借阅日期
FROM 图书 B
LEFT JOIN 借阅 J ON B.书号 = J.书号
LEFT JOIN 读者 R ON J.卡号 = R.卡号
WHERE B.书号 = @book_id;
-- 2.如果没人借,删除该书记录
IF NOT EXISTS(SELECT * FROM 借阅 WHERE 书号 = @book_id)
BEGIN
DELETE FROM 图书 WHERE 书号 = @book_id;
PRINT '该书记录已删除';
END
-- 3.如果价格5元以下,涨价至5元
IF EXISTS(SELECT * FROM 图书 WHERE 书号 = @book_id AND 价格 < 5)
BEGIN
UPDATE 图书 SET 价格 = 5 WHERE 书号 = @book_id;
PRINT '该书价格已涨至5元';
END
END
```
以上存储过程可以根据输入的书号参数实现以下功能:
1. 显示该书的借阅信息,包括书名、价格、出版社、借阅日期、借书人卡号、姓名、年龄和所属单位。
2. 如果该书没有人借阅,将该书的记录从图书表中删除,并输出提示信息。
3. 如果该书价格低于5元,将该书的价格涨至5元,并输出提示信息。
注意:该存储过程中的打印信息可以根据实际需求进行修改。
阅读全文