创建一个存储过程 c_pro,显示用户指定课程类型且课程名称中包含指定文字的课程的 课程号、课程名称、课程类型、学分数。不用concat函数
时间: 2023-12-14 20:37:49 浏览: 49
以下是一个MySQL的存储过程示例,实现了根据指定课程类型和课程名称中包含指定文字来搜索课程信息的功能:
```mysql
DELIMITER //
CREATE PROCEDURE c_pro(IN c_type VARCHAR(20), IN c_name VARCHAR(50), IN c_text VARCHAR(50))
BEGIN
SELECT course_no, course_name, course_type, credit
FROM courses
WHERE course_type = c_type AND course_name LIKE CONCAT('%', c_text, '%') ;
END //
DELIMITER ;
```
该存储过程接受三个输入参数:课程类型(c_type)、课程名称(c_name)和指定文字(c_text)。它使用SELECT语句来查询courses表中符合条件的记录,并返回课程号(course_no)、课程名称(course_name)、课程类型(course_type)和学分数(credit)。
在执行该存储过程之前,需要先创建一个名为courses的表,并插入一些测试数据,例如:
```mysql
CREATE TABLE courses (
course_no INT PRIMARY KEY,
course_name VARCHAR(50),
course_type VARCHAR(20),
credit DECIMAL(4, 1)
);
INSERT INTO courses VALUES
(1, '计算机网络', '计算机类', 3.0),
(2, '操作系统', '计算机类', 3.5),
(3, '数据结构', '计算机类', 4.0),
(4, '英语口语', '外语类', 2.5),
(5, '高等数学', '数学类', 5.0),
(6, '物理实验', '物理类', 2.0);
```
然后,可以使用以下语句来调用存储过程:
```mysql
CALL c_pro('计算机类', '数据', '结构');
```
该语句将会返回符合条件的记录,即:
```
+-----------+--------------+-------------+--------+
| course_no | course_name | course_type | credit |
+-----------+--------------+-------------+--------+
| 3 | 数据结构 | 计算机类 | 4.0 |
+-----------+--------------+-------------+--------+
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)