创建一个存储过程,实现查询指定出版社(出版社名称)出版某本图书(图书名称)的数量和单价,(其中,出版社名称和图书名称以存储过程的输入参数设定),并执行该存储过程检查其正确性
时间: 2024-01-30 09:01:56 浏览: 156
以下是实现该存储过程的 SQL 代码:
```
CREATE PROCEDURE `get_book_info` (
IN publisher_name VARCHAR(50),
IN book_name VARCHAR(50)
)
BEGIN
SELECT COUNT(*) AS book_num, AVG(price) AS book_price
FROM books b JOIN publishers p ON b.publisher_id = p.publisher_id
WHERE b.book_name = book_name AND p.publisher_name = publisher_name;
END
```
该存储过程包含两个输入参数:出版社名称和图书名称。它会查询 books 和 publishers 两个表,筛选出指定出版社出版的指定图书的数量和单价。
执行该存储过程时,可以使用以下 SQL 语句:
```
CALL get_book_info('出版社名称', '图书名称');
```
其中,'出版社名称' 和 '图书名称' 分别替换为实际的出版社名称和图书名称。
执行后,该存储过程会返回两个结果集,第一个结果集包含指定图书的数量,第二个结果集包含指定图书的单价。可以通过客户端工具或者其他方式查看结果集,验证存储过程的正确性。
相关问题
创建一个存储过程,实现查询指定出版社(出版社名称)出版某本图书(图书名称)的数量和单价。(其中,出版社名称和图书名称以存储过程的输入参数设定),并执行该存储过程检查其正确性。
好的,以下是创建该存储过程的 SQL 代码:
```
CREATE PROCEDURE GetBookInfoByPublisherAndTitle
@PublisherName varchar(50),
@BookTitle varchar(50)
AS
BEGIN
SELECT COUNT(*) AS [数量], AVG([Price]) AS [单价]
FROM [Books]
WHERE [Publisher] = @PublisherName AND [Title] = @BookTitle
END
```
这个存储过程接受两个参数:出版社名称和图书名称。它将在 Books 表中查找出版社名称和图书名称都匹配的记录,然后返回该书籍的数量和平均单价。你可以将 Books 表替换成你自己的表名,以确保正确运行。
要执行该存储过程,请使用以下 SQL 代码:
```
EXEC GetBookInfoByPublisherAndTitle '出版社名称', '图书名称'
```
请将“出版社名称”和“图书名称”替换为你要查询的实际值。执行该代码后,将返回一个包含数量和单价的结果集。
创建一个存储过程b_info。根据图书的书号查询图书的书名、单价、出版社
以下是创建存储过程 `b_info` 的 SQL 代码:
```sql
CREATE PROCEDURE b_info
@book_id INT
AS
BEGIN
SELECT book_name, price, publisher
FROM books
WHERE book_id = @book_id
END
```
此存储过程接收一个参数 `@book_id`,根据该参数查询 `books` 表中的数据,返回图书的书名、单价、出版社信息。可以通过以下代码调用该存储过程:
```sql
EXEC b_info @book_id = 12345;
```
其中 `12345` 为要查询的图书的书号。
阅读全文