创建并执行带OUTPUT参数的存储过程PD5:根据职称查询人数,并给出“副教授”的人数。
时间: 2024-04-29 21:22:25 浏览: 16
首先,我们需要创建一个表 `employees` 来存储员工信息,其中包括员工的姓名和职称:
```sql
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
title VARCHAR(50)
);
```
然后,我们可以插入一些示例数据:
```sql
INSERT INTO employees (name, title)
VALUES
('张三', '助教'),
('李四', '副教授'),
('王五', '教授'),
('赵六', '副教授'),
('钱七', '讲师');
```
现在,我们可以创建一个存储过程来查询特定职称的员工数量,并将结果输出到一个参数中。以下是存储过程的代码:
```sql
DELIMITER //
CREATE PROCEDURE count_employees_by_title(
IN title_param VARCHAR(50),
OUT count_param INT
)
BEGIN
SELECT COUNT(*) INTO count_param FROM employees WHERE title = title_param;
END//
DELIMITER ;
```
该存储过程接受一个 `title_param` 参数,用于指定要查询的职称,以及一个 `count_param` 参数,用于存储查询结果。它使用 `SELECT COUNT(*)` 语句来计算特定职称的员工数量,并将结果存储在 `count_param` 参数中。
现在,我们可以执行存储过程来计算副教授的人数:
```sql
SET @count = 0;
CALL count_employees_by_title('副教授', @count);
SELECT @count AS '副教授的人数';
```
上面的代码首先创建一个变量 `@count`,并将其设置为 0。然后,它调用 `count_employees_by_title` 存储过程,并将副教授作为参数传递给它。最后,它使用 `SELECT` 语句输出存储在 `@count` 变量中的结果。
执行上述代码后,将会输出以下结果:
```
+-----------+
| 副教授的人数 |
+-----------+
| 2 |
+-----------+
```
这表明有两个副教授在 `employees` 表中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)