08信息综合实训SQL模块上机实训试题 1-6题,每小题10分,7-8题每小题20分: 有一个[学生课程]数据库,数据

08信息综合实训SQL模块上机实训试题
1-6题,每小题10分,7-8题每小题20分:
有一个[学生课程]数据库,数据库中包括三个表:
学生表:Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept),Sno 为关键字。
课程表:Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
成绩表:SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO) 为关键字。
用SQL语言实现下列功能:
1.建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。
2.查考试成绩有不及格的学生的学号。
3.将学号为05001学生的年龄改为22岁。
4.计算1号课程的学生平均成绩。
5.创建存储过程[getDetailByName],通过输入参数学生姓名(如"张三"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。
6. 查计算机系姓赵的男同学的姓名(Sname)、性别(Ssex)、年龄(Sage)。
7.创建视图[学生成绩表视图],视图中包括学号(Sno)、姓名(Sname)、课程号(Cno)、课程名(Cname)、成绩(Grade)。
8.将一个新学生记录(学号:05020;姓名:丁莉;性别:女;年龄:17岁;所在系:计算机;)插入Student表中。
希望哪位大侠帮帮解决下,需要详细代码

第1个回答  2010-09-30
1.建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。

-- 注: 性别 男=1 女=0
CREATE TABLE [Student] (
Sno INT PRIMARY KEY,
Sname VARCHAR(20),
Ssex BIT,
Sage TINYINT,
Sdept VARCHAR(20)
)

2.查考试成绩有不及格的学生的学号。
SELECT
DISTINCT Sno
FROM
SG
WHERE
Grade < 60

3.将学号为05001学生的年龄改为22岁。
UPDATE
Student
SET
Sage = 22
WHERE
Sno = '05001'

4.计算1号课程的学生平均成绩。
SELECT
AVG(Grade)
FROM
SG
WHERE
Cno = 1

5.创建存储过程[getDetailByName],通过输入参数学生姓名(如"张三"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。

CREATE PROCEDURE getDetailByName
@UserName VARCHAR(10)
AS
BEGIN
DECLARE @rowCount int;

SELECT
@rowCount = COUNT(1)
FROM
Student
WHERE
Sname = @UserName;

IF @rowCount > 0
BEGIN
SELECT
*
FROM
Student
WHERE
Sname = @UserName;
END
ELSE
BEGIN
PRINT '不存在此学生';
END
END;

6. 查计算机系姓赵的男同学的姓名(Sname)、性别(Ssex)、年龄(Sage)。

SELECT
Sname,
Ssex,
Sage
FROM
Student
WHERE
Sdept = '计算机'
AND Sname LIKE '赵%'

7.创建视图[学生成绩表视图],视图中包括学号(Sno)、姓名(Sname)、课程号(Cno)、课程名(Cname)、成绩(Grade)。

CREATE VIEW [学生成绩表视图] AS
SELECT
Student.Sno,
Student.Sname,
Course.Cno,
Course.Cname,
SG.Grade
FROM
Student, Course, SG
WHERE
Student.Sno = SG.Sno
AND Course.Cno = SG.Cno

8.将一个新学生记录(学号:05020;姓名:丁莉;性别:女;年龄:17岁;所在系:计算机;)插入Student表中。

INSERT INTO Student (
Sno,Sname,Ssex,Sage,Sdept
) VALUES (
'05020', '丁莉', 0, 17, '计算机'
)
第2个回答  2010-09-30
--1
create table Student(
Sno int Not NULL PRIMARY KEY Identity (1,1),
Sname varchar(50),
Ssex varchar(2),
Sage int,
Sdept varchar(100)
)

--2
select Sno from SG where Grade<'60'

--3
update Student set Sage='22' where Sno='05001'

--4
select Avg(Grade) from SG where Cno='1'

--5
create proc getDetailByName
@P_Sname varchar(50)
as
if(select count(*) from Student where Sname = @P_Sname) > 0
select * from Student where Sname = @P_Sname
else
print '不存在此学生'

--6
select Sname,Ssex,Sage from Student where Sdept = '计算机' and Sname like '赵%' and Ssex = '男'

--7
create view [学生成绩表视图] as
select Sno,Sname,Cno,Cname,Grade from SG,Student where SG.Sno=Student.Sno

--8
insert into Student values ('05020','丁莉','女','17','计算机')本回答被提问者采纳
第3个回答  2010-10-10
有,因为比较大有两种

一种上面还有一个额外的防雨棚和四腿支架一般要200一天

没有支架的顶棚的双层帐篷不到150

这基本是各地户外用品租赁的通用价格。当然了,这是普通设备的价格,高档设备一天数百上千的也有了

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela
第4个回答  2010-09-30
全部都是基础知识 看下书就能解决了。

随便帮你写了前4个 还要上班 其实都很简单
--新建表
create table student
(
Sno int primary key Identity (1,1),
Sname varchar(200),
Ssex int,
Sage int,
Sdept int
)
--2
select * from SG where Grade
--3
update student set Sage=22 where Sno=05001
--4
select avg(S.Grade) from SG S,Course C where S.Cno=C.Cno and C.Cname=计算1号
相似回答