2. 存储函数 1) 创建一个存储函数,返回图书表中所有图书的金额总和。 2) 创建一个存储函数,给定读者姓名,判断其类别,若是学生,则返回其可借天数若不是则返回“-1”。
时间: 2024-03-24 22:41:50 浏览: 70
存储过程和存储函数1
根据您的要求,以下是创建存储函数的 SQL 查询语句:
1. 创建一个存储函数,返回图书表中所有图书的金额总和。
```
CREATE FUNCTION get_total_amount()
RETURNS DECIMAL(10,2)
BEGIN
DECLARE total DECIMAL(10,2);
SELECT SUM(price) INTO total FROM book;
RETURN total;
END;
```
这个存储函数名为 `get_total_amount()`,它会返回图书表中所有图书的金额总和。函数内部使用 `SUM()` 函数计算图书表中所有图书的金额总和并将其存储在一个变量中,然后返回该变量的值。
2. 创建一个存储函数,给定读者姓名,判断其类别,若是学生,则返回其可借天数若不是则返回“-1”。
```
CREATE FUNCTION get_borrow_days(reader_name VARCHAR(50))
RETURNS INT
BEGIN
DECLARE reader_type VARCHAR(10);
DECLARE borrow_days INT;
SELECT type INTO reader_type FROM reader WHERE reader_name = reader_name;
IF reader_type = '学生' THEN
SET borrow_days = 30;
ELSE
SET borrow_days = -1;
END IF;
RETURN borrow_days;
END;
```
这个存储函数名为 `get_borrow_days()`,它接受一个参数 `reader_name`,表示要查询的读者姓名。函数内部使用一个变量 `reader_type` 存储该读者的类别(即学生或非学生),然后使用 `IF...ELSE` 语句判断读者类型并返回相应的可借天数或者 -1。注意在 SQL 查询语句中,参数名与列名相同时,要使用不同的别名来区分它们,这里使用了 `reader_name = reader_name` 来指定要查询的读者姓名。
阅读全文