共有三张表学生表(学号,姓名,性别,班级,入学成绩,入学日期,家庭住址,年龄
,简历) 选课成绩表( 选课ID,学号,课程编号,成绩) 课程表( 课程编号,课程名称,学分,授课教师)
1.建立存储过程pro_tc,查询某一名教师所上的课程的名称,用变量返回查询结果(即课程名称),该存储过程包含一个输入参数。
create proc proc_avg
(@name char(10),
@avg float output)
as
select @avg=avg(成绩)
from 选课成绩表,学生表
where 姓名=@name and 选课成绩表.学号=学生表.学号
2.调用存储过程proc_avg,查询“李进”所上的课程名称
???、怎么写
实现的方法和详细的操作步骤如下:
1、第一步,创建一个存储过程,该代码如图所示。存储过程的主要目的是为表“JingYan”插入新数据,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,执行以下几行代码,并查看执行是否成功。现在,数据库中有一个存储过程源“sp_JY”,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,查看“JingYan”表中的当前数组,只有三行数据,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,在mysql中,要调用存储过程,只需使用“call”关键字并输入存储过程的名称即可。当然,如果有参数,则需要带一个参数。代码见下图,然后进入下一步。
5、随后,完成上述步骤后,再次查看“JingYan”表中的数据,可以看到当前数据已经是四个,这表明对存储过程的调用已成功插入了新数据,如下图所示,然后进入下一步。
6、接着,完成上述步骤后,添加另一个存储过程,该存储过程使用select语句返回表数据,如下图所示,然后进入下一步。
7、最后,完成上述步骤后,调用新的存储过程,可以看到结果中已经返回了表数据,如下图所示。这样,问题就解决了。
复制黏贴的真...........................
第二题不是调用存储过程proc_avg么 那是什么意思? 难道再重新写一个存储过程?
追答是不是要你重新再写个存储过程?
dorp proc proc_avg
--删除已建立的存储过程proc_avg
create proc proc_avg(@name varchar(10))
as
select 课程表.课程 from 学生表,成绩表,课程表 where 学生表.学号=成绩表.学号 and 成绩表.课程编号=课程表.课程编号 and 学生表.姓名=@name
--重新建立个新的查询某学生的所有课程的存储过程
--执行:
exec proc_avg @name='李进'
今天问老师了
use jxgl
go
create proc proc_kc
(@name char(8),
@kcmc char(20) output)
with encryption
as
select 课程名称
from 学生表 a ,选课成绩表 b,课程表 c
where a.学号=b.学号 and b.课程编号=c.课程编号 and 姓名=@name
declare @课程名称 char(20)
exec proc_kc '王海',@课程名称 output
print @课程名称
你的意思是对的,但是返回值应该是课程名称, 不过还是谢谢你 !
不用谢,记得采纳答案啊
本回答被提问者采纳