SQL练习及答案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题描述:

为管理岗位业务培训信息,建立3个表:

S (S#,SN,SD,SA) S#,SN,SD,SA分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN分别代表课程编号、课程名称

SC ( S#,C#,G ) S#,C#,G分别代表学号、所选修的课程编号、学习成绩

1.使用标准SQL嵌套语句查询选修课程名称为‟税收基础‟的学员学号和姓名Select SN,SD FROM S

Where [S#]

IN( Select [S#] FROM C,SC

Where C.[C#]=SC.[C#]

AND CN=N'税收基础')

2.使用标准SQL嵌套语句查询选修课程编号为‟C2‟的学员姓名和所属单位Select SN,SD FROM S

Where [S#]IN (

Select [S#] FROM SC

Where [C#]='C2')

3.使用标准SQL嵌套语句查询不选修课程编号为‟C5‟的学员姓名和所属单位Select SN,SD FROM S

Where [S#] NOT IN(

Select [S#] FROM SC

Where [C#]='C5')

4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

Select SN,SD FROM S

Where [S#] IN(

Select [S#] From SC

GROUP BY [S#]

HAVING Count (Distinct C#)

5.查询选修了课程的学员人数

Select学员人数=COUNT(DISTINCT [S#]) FROM SC

6.查询选修课程超过5门的学员学号和所属单位

Select SN,SD FROM S

Where [S#] IN(

Select [S#] FROM SC

GROUP BY [S#]

HAVING COUNT(DISTINCT [C#])>5)

题目2

问题描述:

已知关系模式:

S (SNO,SNAME)学生关系。SNO为学号,SNAME为姓名

C (CNO,CNAME,CTEACHER)课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师SC(SNO,CNO,SCGRADE)选课关系。SCGRADE为成绩

1.找出没有选修过“李明”老师讲授课程的所有学生姓名

Select SNAME FROM S

Where NOT EXISTS(

Select * FROM SC,C

Where O=O

AND CNAME='李明'

AND SC.SNO=S.SNO)

2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE) FROM S,SC,(

Select SNO

FROM SC

Where SCGRADE<60

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)>=2

)A Where S.SNO=A.SNO AND SC.SNO=A.SNO

GROUP BY S.SNO,S.SNAME

3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名Select S.SNO,S.SNAME

FROM S,(

Select SC.SNO

FROM SC,C

Where O=O

AND AME IN('1','2')

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)=2

)SC Where S.SNO=SC.SNO

4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

Select S.SNO,S.SNAME

FROM S,(

Select SC1.SNO

FROM SC SC1,C C1,SC SC2,C C2

Where O=O AND ='1'

AND O=O AND ='2'

AND SC1.SCGRADE>SC2.SCGRADE

)SC Where S.SNO=SC.SNO

5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩Select S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩]

FROM S,(

Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE

FROM SC SC1,C C1,SC SC2,C C2

Where O=O AND ='1'

AND O=O AND ='2'

AND SC1.SCGRADE>SC2.SCGRADE

)SC Where S.SNO=SC.SNO

SQL Server笔试题(Sql2000常见笔试题)

一单词解释(2分/个) 34分

Data数据Database数据库RDBMS关系数据库管理系统GRANT授权

REVOKE取消权限DENY拒绝权限DECLARE定义变量PROCEDURE存储过程事务Transaction触发器TRIGGER继续continue唯一unqiue

主键primary key标识列identity外键foreign key检查check

约束constraint

二编写SQL语句(5分/题) 50分(包含笔试题问题和解答答案)

1)创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话

Create table stu (学号int ,姓名varchar(8),年龄int,性别varchar(4),家庭地址varchar(50),联系电话int);

2)修改学生表的结构,添加一列信息,学历

Alter table stu add学历varchar(6);

3)修改学生表的结构,删除一列信息,家庭住址

Alter table stu drop column家庭地址

4)向学生表添加如下信息:

学号姓名年龄性别联系电话学历

1A22男123456小学

2B21男119中学

相关文档
最新文档