SQL练习及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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中学