Mysql中表student有元素Sno,Sname,Ssex,Sage,Sdept。表course有元素Cno,Cname,Cpno,Ccredit。表sc有元素Sno,Cno,Grade。2.创建一个用户自定义函数(内嵌表值函数),功能为产生某个系的学生选修信息,内容为学号,姓名,课程名,成绩。调用这个函数,显示信息系有选课学生的信息。
时间: 2023-12-10 17:41:09 浏览: 112
首先,我们需要创建一个用户自定义函数。以下是创建函数的 SQL 语句:
```
DELIMITER $$
CREATE FUNCTION get_course_info(dept VARCHAR(20))
RETURNS TABLE (
sno CHAR(10),
sname VARCHAR(20),
cname VARCHAR(20),
grade INT
)
BEGIN
DECLARE result_table TABLE (
sno CHAR(10),
sname VARCHAR(20),
cname VARCHAR(20),
grade INT
);
INSERT INTO result_table
SELECT student.Sno, student.Sname, course.Cname, sc.Grade
FROM student, course, sc
WHERE student.Sno = sc.Sno
AND course.Cno = sc.Cno
AND student.Sdept = dept;
RETURN SELECT * FROM result_table;
END $$
DELIMITER ;
```
上面的函数接受一个系名参数 `dept`,并返回一个结果集,包含学号、姓名、课程名和成绩。
接下来,我们可以调用这个函数来获取某个系的学生选修信息。以下是调用函数的 SQL 语句:
```
SELECT *
FROM get_course_info('计算机科学与技术系');
```
将 `get_course_info` 函数的参数设置为需要查询的系名即可。这条 SQL 语句将返回指定系的学生选修信息。
阅读全文