使用T-SQL语句完成存储过程的创建和管理

  1. 创建一个名为 Query_student 的存储过程,该存储过程的功能是根据学号查询学生表中某一学生的学号、姓名、性别及出生日期。
create proc Query_student @snum varchar(10)
as
select snum,sname,ssex,2020-sage as '出生日期' from student
where snum=@snum
  1. 执行存储过程 Query_student,查询学号为“201715001”的学生的学号、姓名、性别及年龄。写出完成此功能的 SQL 命令。
exec Query_student @snum='201915001'  
  1. 创建存储过程 sm_score,用于求指定学号(输入参数)的学生的总成绩(输出参数)。执行该存储过程,指定学号为“201715003 ”。
create proc sm_score @sno char(10),@score int output
as
select @score=SUM(score) from cj
where sno=@sno

declare @score int
exec sm_score '201715003',@score output
print '总成绩为:'+str(@score)
  1. 创建并执行存储过程 count_sno,用于求所有学生总人数,通过参数返回学生总人数。删除存储过程 count_sno。
create proc count_sno @classnum int output
as
set @classnum=(select COUNT(distinct snum) from student)

--使用输出参数
declare @classnum int
exec count_sno @classnum output
print '总人数为:'+str(@classnum)

drop procedure count_sno  --删除存储过程
  1. 创建一个向课程表中插入一门新课程的存储过程 Insert_course,该存储过程需要两个参数,分别用来传递课程号、课程名;执行存储过程 Insert_course,向课程表 Course中插入一门新课程(’11’,’Flash 动画设计’)。
create proc Insert_course @cnum char(4),@cname varchar(50) output
as begin
insert into course(cnum,cname) values(@cnum,@cname)
end

exec Insert_course @cnum='11',@cname='Flash 动画设计'
  1. 创建一个能向学生表中插入一条记录的存储过程 Insert_student,执行存储过程Insert_student,向学生表中插入一个新同学(‘201715028’,‘高兴’,‘女’, 21, ‘IS’)。
create proc Insert_student @snum varchar(10),@sname char(6),@ssex char(2),
						   @sage int,@sdept char(20)
as begin
insert into student values(@snum,@sname,@ssex,@sage,@sdept)
end

exec Insert_student @snum='201715029',@sname='高兴',@ssex='女',@sage=21,@sdept='IS'

你可能感兴趣的:(数据库,mysql,t-sql语言,sqlserver,sql)