创建一个存储过程grade_info,该存储过程可以查看所有选课学生的成绩信息(sno,sname,cname,grade)。并调用该存储过程查看所有选课学生的成绩信息。
时间: 2024-12-17 13:54:28 浏览: 7
创建一个名为`grade_info`的存储过程,用于查询学生选课的成绩信息,通常涉及SQL语言。以下是这个存储过程的一个示例:
```sql
CREATE PROCEDURE grade_info
AS
BEGIN
SELECT sno, sname, cname, grade
FROM students
INNER JOIN courses ON students.sno = courses.sno
WHERE courses.status = '选修';
END;
```
在这个例子中,假设我们有两个表,一个是`students`(包含学生ID `sno` 和姓名 `sname`),另一个是`courses`(包含课程名 `cname`、学生ID `sno` 和状态 `status`)。存储过程会通过内连接两个表,并只返回状态为“选修”('选修')的记录,展示学生编号、姓名、课程名称和成绩。
要调用此存储过程并查看成绩信息,可以在数据库管理工具或者支持SQL的环境中运行如下命令:
```sql
EXEC grade_info;
```
这将显示所有已选修课程的学生的成绩信息。
相关问题
(4)有学生成绩管理数据库有如下关系模式: 专业表Specialty(zno,zname),zno,zname分别表示专业号,专业名称。 学生Student(sno,sname,sex,sage,zno),其中zno外码。 课程表Course(cno,cname,credit),cno主码。 成绩表SC(sno,cno,grade),其中sno,cno都是外码,grade为成绩。 (1)创建名为proc_s_c_g的存储过程,该存储过程能实现根据专业编号查询某一专业学生的选课信息,包括学生的学号、姓名、专
业名称、课程名称、课程学分和成绩。存储过程的参数为专业编号zno。
创建存储过程的代码如下:
```
CREATE PROCEDURE proc_s_c_g (@zno VARCHAR(10))
AS
BEGIN
SELECT Student.sno, Student.sname, Specialty.zname, Course.cname, Course.credit, SC.grade
FROM Student
JOIN Specialty ON Student.zno = Specialty.zno
JOIN SC ON Student.sno = SC.sno
JOIN Course ON SC.cno = Course.cno
WHERE Student.zno = @zno;
END
```
使用该存储过程查询专业编号为"001"的学生选课信息的代码如下:
```
EXEC proc_s_c_g '001';
```
执行结果会显示专业编号为"001"的学生选课信息,包括学生的学号、姓名、专业名称、课程名称、课程学分和成绩。
利用sql server语言在下列表中创建学生选课成绩信息视图(sno,sname,sdept,cno,cname,grade)和创建教学基本信息视图(cno,cname,ctime,clocation,tno,tname,ttitle); 学生表stu (sno,sname ,ssex,sage ,sdept) 课程表course (cno,cname,clocation ) 选课表score (sno,cno,grade) 教师表teacher( tno,tname,ttitle) 教学表teaching(cno,tno,ctime,clocation)
创建学生选课成绩信息视图:
```
CREATE VIEW student_score AS
SELECT stu.sno, stu.sname, stu.sdept, score.cno, course.cname, score.grade
FROM stu
INNER JOIN score ON stu.sno = score.sno
INNER JOIN course ON score.cno = course.cno;
```
创建教学基本信息视图:
```
CREATE VIEW teaching_info AS
SELECT teaching.cno, course.cname, teaching.ctime, teaching.clocation, teacher.tno, teacher.tname, teacher.ttitle
FROM teaching
INNER JOIN course ON teaching.cno = course.cno
INNER JOIN teacher ON teaching.tno = teacher.tno;
```
以上代码是针对SQL Server语言的,如果需要在其他数据库中创建视图,语法可能会有所不同。
阅读全文