创建存储过程P10_3查询某个学生学号(作为参数),如果该学生没有选课,就在student表中名字后加‘*’,其他学生加‘#’。否则该学生名字后加‘#’,其他学生加‘*’。 通过显式事务实现,如果成功提交,否则回退。执行程序显示结果。
时间: 2024-05-01 20:18:04 浏览: 12
’。如果查询结果为空,则返回字符串“该学生不存在”。
创建存储过程代码如下:
```
CREATE PROCEDURE P10_3
(
IN student_id VARCHAR(20)
)
BEGIN
DECLARE student_count INT;
SET student_count = (SELECT COUNT(*) FROM takes WHERE ID=student_id);
IF student_count = 0 THEN
SELECT CONCAT(name, '*') FROM student WHERE ID=student_id;
ELSE
SELECT CONCAT(name, ' ') FROM student WHERE ID=student_id;
END IF;
IF NOT EXISTS(SELECT * FROM student WHERE ID=student_id) THEN
SELECT '该学生不存在';
END IF;
END
```
该存储过程接受一个名为`student_id`的参数,用于指定要查询的学生学号。该过程首先查询`takes`表中是否有该学生的选课记录,如果选课数为0,则说明该学生没有选课,需要在查询结果中加上`*`符号;否则,只需在学生名字后加空格即可。此外,如果查询结果为空,则说明该学生不存在,需要返回该字符串。
使用方法如下:
```
CALL P10_3('1234');
```
其中,`'1234'`为实际要查询的学号。执行结果会返回该学生的名字,加上`*`或空格符号,或者返回字符串“该学生不存在”。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)