题目
有如下名为 gradem 的数据库: student ( sno , sname , sex , s birthday , classno , saddress ) course ( cno , cno , charm ) sc ( sno , cno , degree , cterm ) class ( classno , class name , in year , header ) 要求:在 gradem 数据库中创建一个名为 num_sc 的存储过程[1],统计某位同学的考试门数。
有如下名为 gradem 的数据库:
student ( sno , sname , sex , s birthday , classno , saddress )
course ( cno , cno , charm )
sc ( sno , cno , degree , cterm )
class ( classno , class name , in year , header )
要求:在 gradem 数据库中创建一个名为 num_sc 的存储过程[1],统计某位同学的考试门数。
题目解答
答案
在gradem数据库中创建一个名为num_sc的存储过程,用于统计某位同学的考试门数,可以使用以下SQL语句实现:
```sql
CREATE PROCEDURE num_sc(IN p_sno INT, OUT p_num INT)
BEGIN
SELECT COUNT(*) INTO p_num
FROM sc
WHERE sno = p_sno;
END
```
上述存储过程接受一个输入参数p_sno表示学生的学号,以及一个输出参数p_num表示考试门数。在存储过程中,使用SELECT COUNT(*)语句查询sc表中学号为p_sno的记录数量,并将结果赋值给p_num。
创建完存储过程后,可以通过调用该存储过程来获取某位同学的考试门数。
解析
步骤 1:定义存储过程
在数据库中创建一个名为 num_sc 的存储过程,该存储过程用于统计某位同学的考试门数。
步骤 2:定义输入和输出参数
定义一个输入参数 p_sno,表示学生的学号;定义一个输出参数 p_num,表示考试门数。
步骤 3:编写存储过程的主体
在存储过程的主体中,使用 SELECT COUNT(*) 语句查询 sc 表中学号为 p_sno 的记录数量,并将结果赋值给 p_num。
步骤 4:创建存储过程
使用 CREATE PROCEDURE 语句创建存储过程 num_sc。
在数据库中创建一个名为 num_sc 的存储过程,该存储过程用于统计某位同学的考试门数。
步骤 2:定义输入和输出参数
定义一个输入参数 p_sno,表示学生的学号;定义一个输出参数 p_num,表示考试门数。
步骤 3:编写存储过程的主体
在存储过程的主体中,使用 SELECT COUNT(*) 语句查询 sc 表中学号为 p_sno 的记录数量,并将结果赋值给 p_num。
步骤 4:创建存储过程
使用 CREATE PROCEDURE 语句创建存储过程 num_sc。