加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQlserver2005面试题

发布时间:2020-12-12 14:35:29 所属栏目:MsSql教程 来源:网络整理
导读:SELECT * FROM audition_student ; -- 学生表 SELECT * FROM audition_scorse ; -- 成绩表 SELECT * FROM audition_teacher ; -- 教师表 SELECT * FROM audition_course ; -- 课程表 ? --1. 查询每个学生的平均成绩大于分的同学的学号和平均成绩; select ??

SELECT *FROM audition_student;--学生表

SELECT *FROM audition_scorse;--成绩表

SELECT *FROM audition_teacher;--教师表

SELECT *FROM audition_course;--课程表

?

--1.查询每个学生的平均成绩大于分的同学的学号和平均成绩;

select

??? stuId,avg(scorse)'平均成绩'

from

??? audition_scorse

??? group by stuId

??? having avg(scorse)>60;

--2.查询所有同学的学号、姓名、选课数、总成绩;

select

??? st.stuId '学号',stuName'姓名',count(courId)'选课数',sum(scorse)'总分'

from

??? audition_student st,audition_scorsesc

where

??? st.stuId=sc.stuId

group by

??? st.stuId,st.stuName

?

----------------------------------------------------------------------------

SELECT

??? stu.stuid '学号', stu.stuname'姓名', s.coursenum'选课数', s.scorsenum'总分'?

FROM

??? audition_student stu,?

??? --算出选课数,总成绩?

??? (SELECT

?????? sco.stuidstuid,COUNT(sco.courid) coursenum,SUM(sco.scorse)scorsenum??

??? FROM

?????? audition_scorse sco

??? GROUP BY

?????? sco.stuid) s

??? WHERE

?????? stu.stuid=s.stuid

??? ORDER BY

?????? stu.stuid;

--3查询姓的老师的个数;

select

??? count(*)as 人数

from

??? audition_teacher

where

??? teaName like'_'

--4查询没学过李白老师的授课科目的同学的学号、姓名;

select

??? st.stuId,stuName

from

??? audition_student st,audition_teachert,audition_course c,audition_scorsesc

where

??? t.teaName<>'李白'and

??? t.teaId = c.teaId and

??? c.courId = sc.courId and

??? sc.stuId = st.stuId

group by

??? st.stuId,stuName

--5通过教师表和课程表找到教师执教的课程,再通过课程表和成绩表找到学生号

??? --不要学生号中的则为不学此教师的课程

--没看懂

--6查询学过“java”并且也学过“.NET”课程的同学的学号、姓名;

select

??? st.stuId,stuName

from

??? audition_student st,audition_coursec,audition_scorse sc

where

??? c.courName='java'and

??? exists(select* from audition_course cwherec.courName='.NET')and

??? c.courId = sc.courId and

??? sc.stuId = st.stuId

--7查询“java”课程比“NET”课程成绩高的所有学生的学号;

----------------这个作废----------------------------------------------

select sc.stuId

from?audition_course c,audition_scorse sc

where c.courId=sc.courIdand

?????? (select scorsefromaudition_scorse sc,audition_course c

???????????????????? where

???????????????????? sc.courId=c.courIdand

???????????????????? c.courName='java')>

?????? (select scorsefromaudition_scorse sc,audition_course c

???????????????????? where

???????????????????? sc.courId=c.courIdand

???????????????????? c.courName='.net')

----------------------------这个--------------------------------------

select

??? a.stuId

from

??? (select stuId,scorsefrom audition_scorse wherecourId='1') a,

??? (select stuId,scorsefrom audition_scorse wherecourId='4') b

where

??? a.scorse>b.scorseand

??? a.stuId=b.stuId

---------------------------改进---------------------------------------

select

??? a.stuId

from

??? (select stuId,scorsefrom audition_scorse sc,audition_coursecwhere c.courName='java'and c.courId=sc.courId) a,audition_coursecwhere c.courName='.net'and c.courId=sc.courId) b

where

??? a.scorse>b.scorseand

??? a.stuId=b.stuId

--8? 查询所有课程成绩都小于分的同学的学号、姓名;

select

??? st.stuId,audition_scorsesc

where

??? st.stuId=sc.stuIdand

??? st.stuId not in (select stuIdfrom audition_scorse wherescorse>90);

group by st.stuId,st.stuName

--9? 查询没有学全所有课的同学的学号、姓名;

select

??? st.stuId,st.stuName

from

??? audition_student st,st.stuName

having

??? count(courId)< (selectcount(courId)from audition_course);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读