teaching数据库中的course表和sc表创建一个函数num_func,统计指定课程的选课人数
时间: 2024-12-19 17:21:45 浏览: 6
在数据库中创建一个函数`num_func`来统计指定课程的选课人数,通常需要结合`course`表(存储课程信息)和`sc`表(存储学生选课信息)。这两个表可能包含字段如`course_id`(课程ID)、`student_id`(学生ID)等。
首先,假设`course`表有以下结构:
```sql
CREATE TABLE course (
id INT PRIMARY KEY,
name VARCHAR(50)
);
```
`sc`表可能如下:
```sql
CREATE TABLE sc (
id INT PRIMARY KEY,
student_id INT,
course_id INT,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
```
你可以创建一个SQL函数,例如在MySQL中:
```sql
DELIMITER //
CREATE FUNCTION num_func(course_name VARCHAR(50)) RETURNS INT
BEGIN
DECLARE total_students INT DEFAULT 0;
SELECT COUNT(*) INTO total_students
FROM sc
WHERE sc.course_id IN (SELECT id FROM course WHERE name = course_name);
RETURN total_students;
END //
DELIMITER ;
```
这个函数接受课程名称作为参数,然后在`sc`表中查找对应课程的行数,即选课的学生数。
阅读全文