您的位置:首页 > 数据库

sql server 2005数据库的一些应用例题

2008-04-17 19:20 274 查看
---1. 列出所有不姓刘的所有学生;-select *FROM STUDENT WHERE stuname not like '刘%'
---2. 列出姓“沈”且全名为3个汉字的学生;-select * from student where stuname like '沈__'
---3. 显示在1985年以后出生的学生的基本信息-select * from student where Sage <year(getdate())-1985
---4. 按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为“条件不明”;-select 性别=case when ssex='男' then '男生'
----                      when ssex='女' then '女生'
----      else '不明确'
----     end
----,学号=Sno,姓名=stuname,年龄=Sage,院系=Sdept
----from student
---5. 查询出课程名含有“数据”字串的所有课程基本信息;-select *from course where Cname like '%数据%'

--6. 显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系; select 学号=Sno,姓名=Sname,性别=Ssex,年龄=Sage,院系=Sdept from student1 where Sno like '_______[1-4,9][1-4,9]'
---7. 列出选修了‘1’课程的学生,按成绩的降序排列-select * from sc where Cno='1'order by grade DESC
---8. 列出同时选修“1”号课程和“2”号课程的所有学生的学号-SELECT distinct Sno from SC WHERE  Cno=1 and Cno in (select Sno from where Cno=2)
---9. 列出课程表中全部信息,按先修课的升序排列-select * from course order by Cpno asc
---10. 列出所有年龄超过平均值的学生名单,按年龄的降序显示-select *from student where Sage>(select avg(Sage) from student)
---11. 按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”-select 学号=Sno,姓名=stuname,性别=Ssex,出生年份=year(getdate())-Sage,院系=Sdept from student order by '出生年份'
---12. 按照院系降序显示所有学生的 “院系,学号、姓名、性别、年龄”等信息-select 院系=case
----when Sdept='IS' then '信息系'
----                     when Sdept='CS' then '计算机系'
----when Sdept='MA' then '数学系'
----when Sdept='EN' then '外语系'
----when Sdept='CM' then '中医系'
----when Sdept='WM' then '西医系'
----     else '不明确'
----    end
----,学号=Sno,姓名=stuname,性别=Ssex,年龄=Sage FROM STUDENT
---13. 显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”-select distinct 院系人数=count(*)
---- from student1 group by Sdept/*未完成*/
----select distinct Sdept, 院系规模=case
----when count(*)>5 then '规模较大'
----when count(*) between 4 and 5 then '规模一般'
----when count(*)between 2 and 4 then '规模较小'
----else '未知'
----end
----from student1 group by Sdept
---14. 按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩-select 学号=Sno,课程号=Cno,成绩=Grade from sc where grade between 70 and 80 order by Cno DESC,Grade Desc
---15. 显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”-select 学生总人数=count(distinct Sno),平均年龄=avg(Sage) from student1
---16. 显示选修的课程数大于3的各个学生的选修课程数-select distinct 学号=Sno,选课数=count(Cno) from sc group by Sno having count(Cno)>2
---17. 按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩-select distinct 课程=Cno,最高成绩=max(Grade),最低成绩=min(Grade),平均成绩=avg(Grade) from sc group by Cno
 ---18. 显示选修各个课程的及格的人数、及格比率-select sum(case when Grade>=60 then 1 else 0 end) as 及格人数,
----count(*) as 总人数,
----sum(case when Grade>=60 then 1 else 0 end)/count(*) as 及格率
----from sc group by Cno
---19. 显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生人数、女生人数”-select Sdept 院系名称,sum(case when Ssex='男' then 1 else 0 end) as 男生人数,sum(case when Ssex='女' then 1 else 0 end) as 女生人数
------from student1 group by Sdept
---20. 列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩-select Sno,avg(Grade) 平均成绩
------from sc group by Sno
------having sum(case when Grade<60 then 1 else 0 end)>=2
---21. 显示平均成绩大于“赵菁菁”平均成绩的各个学生的学号、平均成绩-select Sno 学号,avg(grade) 平均成绩
------from sc group by Sno
------having avg(grade)>(select avg(grade)from Sc,student1 where sname='赵菁菁')
---23. 显示选修课程数最多的学号及选修课程数最少的学号-select sno 修课程数最多的学号
------from sc group by sno
------having count(cno)>=all(select 选修课程数=count(cno) from sc group by sno)
------select sno 选修课程数最少的学号
------from sc group by sno
------having count(cno)<=all(select 选修课程数=count(cno) from sc group by sno)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server 数据库
相关文章推荐