必威体育Betway必威体育官网
当前位置:首页 > IT技术

SQL server之存储过程练习

时间:2019-09-03 19:13:18来源:IT技术作者:seo实验室小编阅读:60次「手机版」
 

sql 存储过程

 对应于student数据

(1)  创建一个无参存储过程StuScoreInfo,查询以下信息:学号,姓名,性别,课程名称,考试成绩.

use Student

go

create proc StuScoreInfo

as select student.sno,sname,ssex,cname,sc.gradefrom student,course,sc

wherestudent.sno=sc.sno and course.cno=sc.cno

go

exec StuScoreInfo

(2)  创建一个带参数的存储过程stu_info,该存储过程根据传入的学生编号在student表中查询此学生的信息.

CREATE PROCstu_info

@NAME VARCHAR(20)

AS

SELECT *

FROM Student

WHERE Sname=@NAME

GO

EXEC stu_info '李勇'

(3)  创建一个带参数的存储过程StuScoreInfo2,该存储过程根据传入的学生编号和课程名称查询以下信息:姓名,课程名称,考试成绩.

CREATE PROCStuScoreInfo2

@NAME1VARCHAR(20),

@NAME2VARCHAR(20)

AS

SELECTsname,cname,grade

FROMstudent,course,sc

WHEREstudent.sno=sc.sno and course.cno=sc.cno and  student.sno=@NAME1 andcourse.cname=@NAME2

GO

EXECStuScoreInfo2 '201215121','数据库'

(4)  编写带参数的存储过程,根据传入的课程名称统计该课程的平均成绩.

create procTheAvg

@NAME VARCHAR(20)

as

select AVG(Grade)平均值 from Course,SC

wheresc.Cno=Course.cno and Course.Cname=@NAME

go

exec TheAvg '数学'

(5)   查询选了某门课的选课人数(使用输出参数)

create proc TheNum

@course varchar(20) output,

@num int output

as

select @course=Cname,@num=count(*) from Course,SC

where sc.Cno=Course.cno 

group by Cname

go

declare @name char(20),@num char(20)

exec TheNum  @name output,@numoutput

select @name ,@num

(6)   根据各种错误设置不同的返回代码值。查询指定学号的学生的考试平均成绩,1,执行成功,0,未指定学号,2指定的学号不存在,3指定的学号没有选课。

create proc TheOver(@sno varchar(20))

as

 

if not exists(select * fromStudent where Sno =@sno)

begin

print '2指定的学号不存在'

end 

else if not exists(select *from Student where @sno not in(select Sno from Course))

begin

print '3指定的学号没有选课'

end 

else if exists(select * fromSC where Sno=@sno)

begin

select AVG(Grade) 平均值 from SC where Sno=@sno

print '1执行成功了'

end

 

else

begin

print '0未指定学号'

end

go

exec TheOver '200215121'  

相关阅读

Sql语句中的DML语句

一、什么是DML语句 DML语句就是数据库操作语句。 二、DML语句的分类 Insert 插入 Update 修

sql inner join的本质并非是取交集, 而是(可带条件地)

先看看两张表:mysql> select * from black1; +----------+ | id | +----------+ | zhangsan | | lisi | | wangwu | +

MySQL 添加索引,删除索引及其用法

.索引的作用       一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易

ORACLE分页查询SQL语句(最有效的分页)

**一、效率高的写法 **1.无ORDER BY排序的写法。(效率最高)(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几

关于mysql server的默认编码方式latin1

   但是我发现每次重启mysql服务,这些设置就恢复成默认的设置latin1 解决方法很简单:在mysql的配置文件my.ini写下character-set-

分享到:

栏目导航

推荐阅读

热门阅读