4. 使用studentdb数据库中的curriculum表、grade表。 ① 创建存储过程c_name(),任意输入一门课程名称,可查看该课程90分及以上的人数。 ② 执行存储过程c_name(),输入课程名称“C语言程序设计”
时间: 2024-10-21 15:06:54 浏览: 30
Super-curriculum.rar_site:www.pudn.com_super_抓取教务_超级课程表
在SQL中,你可以通过创建存储过程(Procedure)来实现这样的功能。存储过程是一组预编译的SQL语句,可以在需要的时候多次调用,并传递参数。对于你的需求,可以按照以下步骤操作:
首先,假设`curriculum`表有一个字段叫`course_name`,记录课程名称;`grade`表有`student_id`(学生ID),`course_name`,以及`score`(分数)字段。
**① 创建存储过程 `c_name()`**
```sql
CREATE PROCEDURE c_name (@course_name VARCHAR(50))
AS
BEGIN
SELECT COUNT(*)
FROM grade g
INNER JOIN curriculum c ON g.course_name = c.course_name
WHERE c.course_name = @course_name AND g.score >= 90;
END
```
这个存储过程接受一个参数`@course_name`,然后通过INNER JOIN连接`curriculum`和`grade`表,筛选出指定课程且分数大于等于90的学生人数。
**② 执行存储过程 `c_name()`,输入 "C语言程序设计"`
```sql
EXEC c_name 'C语言程序设计';
```
这将返回"C语言程序设计"课程中90分以上学生的总数。
阅读全文