SQL server 2000 试题 高手帮帮忙 明天考试了

有一个“学生-课程”数据库,数据库中包括三个表:学生表(student):名称类型可否为空说明描述SnoChar(5)否学号主键SnameChar(10)否姓名SsexC... 有一个“学生-课程”数据库,数据库中包括三个表:
学生表(student):
名称 类型 可否为空 说明 描述
Sno Char(5) 否 学号 主键
Sname Char(10) 否 姓名
Ssex Char(2) 否 性别
Sage tinyint 否 年龄
Sdept Varchar(50) 否 系部名称
课程表(course):
名称 类型 可否为空 说明 描述
Cno Char(5) 否 课程号 主键
Cname varchar(50) 否 课程名
Cpno Char(5) 否 先修课号
Ccredit Decimal(4,1) 否 学分
学生选课表(SC):
名称 类型 可否为空 说明 描述
Sno Char(5) 否 学号 主键
Cno Char(5) 否 课程号
Grade Decimal(4,1) 否 成绩
根据以上表结构,完成以下操作:
1、 根据“学生表”结构,使用CREATE TABLE语句创建学生表。
2、 查考试成绩有不及格的学生的学号和姓名,且消除重复行。
3、 将学生95001的年龄改为22岁
4、 计算001号课程的学生平均成绩
5、 创建一存储过程getDetailByName,通过输入参数学生姓名(如“章山"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。
展开
 我来答
loveid
2010-06-24 · TA获得超过358个赞
知道小有建树答主
回答量:447
采纳率:100%
帮助的人:551万
展开全部
建库我就不写了,格式就是这种。

1、
CREATE TABLE STUDENT(
[Sno] [Char](5) NULL,
[Sname] [Char](10) NOT NULL,
)

2、
SELECT A.Sno, A.Sname
FROM student AS A JOIN SC AS B
ON A.Sno = B.Sno
WHERE B.Grade < 60
GROUP BY A.Sno, A.Sname

3、
UPDATE student SET tinyint = 22 WHERE Sno=95001

4、
SELECT AVG(Grade) FROM SC WHERE Cpno='001'

5、
CREATE PROCEDURE getDetailByName

@Sname Char(10)
AS
IF @Sname IS NULL
BEGIN
PRINT '请输入学生姓名'
RETURN
END
IF NOT EXISTS (SELECT * FROM student WHERE Sname = @Sname)
BEGIN
PRINT '不存在此学生'
RETURN
END
ELSE
BEGIN
SELECT Sno, Sname, Ssex, Sage, Sdept FROM student WHERE Sname = @Sname
END
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式