select * From Student
select * From Course
select * from SC --INSERT INTO SC (Sno, Cno, Grade)
--VALUES ('1513032087', '7', 99); --(1)找出至少选修X课和Y课的学生学号(P1)
-- 执行P1,输出X=数据库,Y=数据结构
GO
Create Proc SelectLessonToSno @X varchar(), @Y varchar()
AS
begin
select SC.Sno
from SC, Course
where SC.Cno = Course.Cno
and SC.Cno in (Select SC.Cno
From SC, Course
Where SC.Cno = Course.Cno and
Cname in (@X, @Y)
)
END EXEC SelectLessonToSno @X = '数据库', @Y = '数据结构' --(2)找出至少选修X老师讲的一门课的学生姓名(P2)
--执行P2,X=程老师
GO
Create Proc TnameToSname @Tname varchar()
AS
BEGIN
Select distinct Sname
From Student,Course,SC
where Student.Sno = SC.Sno and
Course.Cno = SC.Cno and
SC.Sno in (select Sno
from SC, Course
where SC.Cno = Course.Cno and
Course.Tname = @Tname
)
END
EXEC TnameToSname @Tname = '程老师' --(3)查询X号课程得最高分的学生的学号(P3)
--执行P3,X=数据库对应的课程号
GO
Create Proc maxofCno @X varchar()
AS
BEGIN
select Sno
From SC
Where SC.Cno = @X and Grade =
(select MAX(Grade)
From SC
Group by Cno
Having Cno = @X
)
END
EXEC maxofCno @X = '' --(4)X课程得最高分的学生的姓名、性别、所在系(P4)
--执行P4,X=数据库
GO
Create Proc LessonToStudentInfo @X varchar()
AS
BEGIN
Select Sname, Ssex, Sdept
From Student, SC, Course
Where Student.Sno = SC.Sno and SC.Cno = Course.Cno and
Course.Cname = @X and Grade =
(
Select MAX(Grade)
from SC, Course
where SC.Cno = Course.Cno and
Course.Cname = @X
)
END
EXEC LessonToStudentInfo @X = '数据库' --(5)取出没有选修X课程的学生姓名和年龄(P5)
--执行P5,X=数据库
GO
Create Proc SelectNoLessonToStudentInfo @X varchar()
AS
BEGIN
Select Sname, Sage
From Student, SC, Course
where Student.Sno = SC.Sno and
Course.Cno = SC.Cno and
SC.Sno not in (
Select Sno
from SC, Course
where SC.Cno = Course.Cno and Course.Cname = @X
)
END
EXEC SelectNoLessonToStudentInfo @X = '数据库' --(6)求选修课程名为X的学生的平均年龄(P6)
--执行P6,X=数据库
GO
Create Proc LessonToStudentAge @X varchar() = '数据库' --默认值
AS
BEGIN
Select AVG(Sage)
From Student, Course, SC
Where Student.Sno = SC.Sno and
Course.Cno = SC.Cno and
Course.Cname = @X
END
EXEC LessonToStudentAge @X = '数据库' --(7)求X老师讲的每门课的学生平均成绩(P7)
--执行P7,X=程老师
GO
Create Proc LessonToAvage @X varchar()
AS
BEGIN
Select SC.Cno, AVG(Grade) AS 平均分
From Course, SC
Where Course.Cno = SC.Cno and
Course.Tname = @X
Group by SC.Cno
END
Exec LessonToAvage @X = '程老师'

SQL语句(十九)——存储过程(练习)的更多相关文章

  1. SQL 语句调用这个存储过程,生成顺序编码

    一直很讨厌存储过程,没想到今天帮了我大忙啊,或许会因为今天让我慢慢喜欢上存储过程吧,不多说了,切入正题 在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这 ...

  2. LINQ to SQL语句(20)之存储过程

    在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些.下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下. 1.标量返回 在数据库中, ...

  3. 【存储过程】用SQL语句获得一个存储过程返回的表

    定义一个存储过程如下: create proc [dbo].[test1] @id int as select 1 as id,'abc' as name union all select @id a ...

  4. Mysql常用sql语句(九)- like 模糊查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  5. 用SQL语句获得一个存储过程返回的表

    1. 定义一个表变量 declare @table table(ReportType nvarchar(30),ReportPath nvarchar(200),ParaCnt int,DataAre ...

  6. 动态sql语句,非存储过程,如何判断某条数据是否存在,如果不存在就添加一条

    已知一个表 table 里面有两个字段  A1 和 A2 如何用动态语句 判断 A1 = A , A2=B 的数据是否存在,如果不存在,就添加一条数据, A1 = A , A2 = B INSERT  ...

  7. sql 语句随机时间存储过程

    CREATE PROC [dbo].[Proc_GetRandomTime](@startTime datetime,@endTime datetime,@date datetime output ) ...

  8. SQL语句(九)使用特殊关系运算符查询

    使用特殊关系运算符查询 特殊关系运算符 IN.NOT IN IS NULL.IS NOT NULL BETWEEN.NOT BETWEEN LIKE.NOT LIKE IN , NOT IN IN 在 ...

  9. MySQL存储过程动态SQL语句的生成

    用Mysql存储过程来完成动态SQL语句,使用存储过程有很好的执行效率: 现在有要求如下:根据输入的年份.国家.节假日类型查询一个节假日,我们可以使用一般的SQL语句嵌入到Java代码中,但是执行效率 ...

  10. 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...

随机推荐

  1. “吃神么,买神么”的第二个Sprint计划(计划过程内容)

     “吃神么,买神么”项目Sprint计划 ——6.1(第二天)立会内容与进度 团队组员各自任务: 陈键.吴舒婷:继续完善前台设局与布局 林欢雯.冯美欣:开展后台的界面的设计与布局 任务的进度: 陈键. ...

  2. “吃神么,买神么”的第一个Sprint计划(第三天)

    “吃神么,买神么”项目Sprint计划 ——5.23  星期六(第三天)立会内容与进度 摘要:今天的立会主要是报告进度以及遇到的困难. 进度:logo正在进行中,其他基本没什么问题.都确定要做出来的大 ...

  3. Teamwork(The sixth day of the team)

    每日列会过后,我们的工作进度都有所进展了,好开心,但是还不是我们想要的,我们想做得更快,更好.

  4. Enterprise Library 6.0 参考源码索引

    http://www.projky.com/entlib/6.0/Diagnostics/Tracing/DiaLib.cs.htmlhttp://www.projky.com/entlib/6.0/ ...

  5. awk4.0对数组value排序

    有朋友问了一个问题,要求对下面这段文本进行处理: http://www.baidu.com/2.html http://www.baidu.com/2.html http://www.baidu.co ...

  6. cxDBVerticalGrid

    定位在第一行并显示内置编辑器 cxDBVerticalGrid1.FocusedRow := cxDBVerticalGrid1.Rows[0]; cxDBVerticalGrid1.ShowEdit ...

  7. Tomcat 启动流程

  8. JVM内存管理机制

    Java与C++之间有一堆由内存动态分配与垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来. —— <深入理解Java虚拟机:JVM高级特性与最佳实践> Java虚拟机在 ...

  9. VLD 无法打印堆栈调用情况

    调试时遇到了一个比较郁闷的问题:同样一个MFC工程,复制之后无任何附加操作,VLD便无法正常打印内存泄漏处的堆栈调用了 百度了一下,重要找到了答案:“VLD不支持中文” 复制工程时windows自动在 ...

  10. BZOJ5020 THUWC2017在美妙的数学王国中畅游(LCT)

    明摆着的LCT,问题在于如何维护答案.首先注意到给出的泰勒展开式,并且所给函数求导非常方便,肯定要用上这玩意.容易想到展开好多次达到精度要求后忽略余项.因为x∈[0,1]而精度又与|x-x0|有关,当 ...