很强的Sql语句测试题,能独立做出来你的Sql就出师了
2009-10-20 10:59
363 查看
二维关系表 T(F1,F2,F3,F4,F5,F6,F7) 表示如下关系:
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ 学生ID │ 学生姓名 │ 课程ID │ 课程名 │ 成绩 │ 教师ID │ 教师姓名 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S3 │ 王五 │ K4 │ 政治 │ 53 │ T4 │ 杨老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K1 │ 数学 │ 61 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S2 │ 李四 │ K3 │ 英语 │ 88 │ T3 │ 李老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K4 │ 政治 │ 77 │ T4 │ 杨老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S2 │ 李四 │ K4 │ 政治 │ 67 │ T5 │ 周老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S3 │ 王五 │ K2 │ 语文 │ 90 │ T2 │ 王老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S3 │ 王五 │ K1 │ 数学 │ 55 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K2 │ 语文 │ 81 │ T2 │ 王老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S4 │ 马六 │ K2 │ 语文 │ 59 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K3 │ 英语 │ 37 │ T3 │ 李老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S2 │ 李四 │ K1 │ 数学 │ 81 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ .... │ │ │ │ │ │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ .... │ │ │ │ │ │ │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┘
以一句 T-SQL 作答!
1.如果 T 表有一字段 F0 数据类型为自动增量整型(唯一,不重复),
而且 T 表中含有除 F0 字段外,请删除其它字段完全相同的重复多余的数据(要保留其中的一条):
2.查询打打印各科成绩最高和最低的记录: (就是各门课程的最高、最低分的学生和老师)
课程ID,课程名称,最高分,学生ID,学生姓名,教师ID,教师姓名,最低分,学生ID,学生姓名,教师ID,教师姓名
3.按成绩从高到低顺序,查询打印所有学生四门(数学、语文、英语、政治)课程成绩: (就是每个学生的四门课程的成绩)
学生ID,学生姓名,数学,语文,英语,政治,有效课程数,有效平均分
(注: 有效课程即在 T 表中有改学生的成绩计入,如不明白可不打印"有效课程数"和"有效平均分")
4.查询打印数学成绩第十名到第十五名学生成绩单
或打印平均成绩第十名到第十五名的学生成绩单
[学生ID],[学生姓名],数学,语文,英语,政治,平均成绩
5.按各科不及格率的百分数低到高和平均成绩从高到低顺序,查询各科平均成绩和不及格率的百分?(用"N行"表示): (就是分析哪门课程难)
课程ID,课程名,平均成绩,及格百分数
6.查询打印四门课程平均成绩和及格率的百分数(用"1行4列"表示): (就是分析哪门课程难)
数学平均分,数学及格百分数,语文平均分,语文及格百分数,英语平均分,英语及格百分数,政治平均分,政治及格百分数?
7.按不同老师所教不同课程平均分从高到低,查询打印: (就是分析哪个老师的哪门课程水平高)
教师ID,教师姓名,课程程ID,课程名称,平均分 (平均分按去掉一个最高分和一个最低分后取)
8.查询打印各科成绩,各分数段人数:
课程程ID,课程名,[100-85],[85-70],[70-60],[<60]
9.查询打印学生平均成绩及其名次
10.查询打印各科成绩前三名的记录:(不考虑成绩并列情况)
学生ID,学生姓名,科程ID,科程名,成绩,教师ID,教师姓名
11.查询打印参加了所有考试科目的学生
12.查询打印"至少"与学生"S3 (王五)"参加了相同考试科目的学生
--建立表的脚本
CREATE TABLE T (SSNO INT IDENTITY (1001,1),StudentID VARCHAR(20),StudentName VARCHAR(20),
CourseID VARCHAR(20),CourseName VARCHAR(20),Result int,TeacherID VARCHAR(20),TeacherName VARCHAR(20))
INSERT INTO T (StudentID,StudentName,CourseID,CourseName,Result,TeacherID,TeacherName)
SELECT 'S1','Pitt','K1','Math',62,'T1','Mr.Liu'
UNION
SELECT 'S1','Pitt','K2','Chinese',81,'T2','Mr.Wang'
UNION
SELECT 'S1','Pitt','K3','English',37,'T3','Mr.Lee'
UNION
SELECT 'S1','Pitt','K4','Politics',53,'T4','Mr.Yang'
UNION
SELECT 'S2','Smith','K1','Math',65,'T1','Mr.Liu'
UNION
SELECT 'S2','Smith','K2','Chinese',89,'T2','Mr.Wang'
UNION
SELECT 'S2','Smith','K3','English',50,'T3','Mr.Lee'
UNION
SELECT 'S2','Gates','K4','Politics',60,'T4','Mr.Yang'
UNION
SELECT 'S3','Gates','K1','Math',78,'T1','Mr.Wang'
UNION
SELECT 'S3','Gates','K2','Chinese',98,'T2','Mr.Wang'
UNION
SELECT 'S3','Gates','K3','English',71,'T3','Mr.Lee'
UNION
SELECT 'S3','Gates','K4','Politics',45,'T4','Mr.Liu'
UNION
SELECT 'S4','Tom','K1','Math',95,'T1','Mr.Wang'
UNION
SELECT 'S4','Tom','K2','Chinese',84,'T2','Mr.Wang'
UNION
SELECT 'S5','Bill','K1','Math',95,'T1','Mr.Wang'
UNION
SELECT 'S5','Bill','K3','English',97,'T3','Mr.Lee'
UNION
SELECT 'S5','Bill','K4','Politics',77,'T4','Mr.Liu'
UNION
SELECT 'S6','Tim','K1','Math',93,'T1','Mr.Wang'
UNION
SELECT 'S6','Tim','K3','English',45,'T3','Mr.Lee'
UNION
SELECT 'S6','Tim','K4','Politics',53,'T4','Mr.Liu'
UNION
SELECT 'S7','YangXin','K1','Math',61,'T1','Mr.Wang'
UNION
SELECT 'S7','YangXin','K2','Chinese',81,'T2','Mr.Wang'
UNION
SELECT 'S7','YangXin','K4','Politics',53,'T4','Mr.Liu'
UNION
SELECT 'S8','Blade','K2','Chinese',81,'T2','Mr.Wang'
UNION
SELECT 'S8','Blade','K4','Politics',53,'T4','Mr.Liu'
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ 学生ID │ 学生姓名 │ 课程ID │ 课程名 │ 成绩 │ 教师ID │ 教师姓名 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S3 │ 王五 │ K4 │ 政治 │ 53 │ T4 │ 杨老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K1 │ 数学 │ 61 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S2 │ 李四 │ K3 │ 英语 │ 88 │ T3 │ 李老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K4 │ 政治 │ 77 │ T4 │ 杨老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S2 │ 李四 │ K4 │ 政治 │ 67 │ T5 │ 周老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S3 │ 王五 │ K2 │ 语文 │ 90 │ T2 │ 王老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S3 │ 王五 │ K1 │ 数学 │ 55 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K2 │ 语文 │ 81 │ T2 │ 王老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S4 │ 马六 │ K2 │ 语文 │ 59 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S1 │ 张三 │ K3 │ 英语 │ 37 │ T3 │ 李老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ S2 │ 李四 │ K1 │ 数学 │ 81 │ T1 │ 刘老师 │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ .... │ │ │ │ │ │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ .... │ │ │ │ │ │ │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┘
以一句 T-SQL 作答!
1.如果 T 表有一字段 F0 数据类型为自动增量整型(唯一,不重复),
而且 T 表中含有除 F0 字段外,请删除其它字段完全相同的重复多余的数据(要保留其中的一条):
2.查询打打印各科成绩最高和最低的记录: (就是各门课程的最高、最低分的学生和老师)
课程ID,课程名称,最高分,学生ID,学生姓名,教师ID,教师姓名,最低分,学生ID,学生姓名,教师ID,教师姓名
3.按成绩从高到低顺序,查询打印所有学生四门(数学、语文、英语、政治)课程成绩: (就是每个学生的四门课程的成绩)
学生ID,学生姓名,数学,语文,英语,政治,有效课程数,有效平均分
(注: 有效课程即在 T 表中有改学生的成绩计入,如不明白可不打印"有效课程数"和"有效平均分")
4.查询打印数学成绩第十名到第十五名学生成绩单
或打印平均成绩第十名到第十五名的学生成绩单
[学生ID],[学生姓名],数学,语文,英语,政治,平均成绩
5.按各科不及格率的百分数低到高和平均成绩从高到低顺序,查询各科平均成绩和不及格率的百分?(用"N行"表示): (就是分析哪门课程难)
课程ID,课程名,平均成绩,及格百分数
6.查询打印四门课程平均成绩和及格率的百分数(用"1行4列"表示): (就是分析哪门课程难)
数学平均分,数学及格百分数,语文平均分,语文及格百分数,英语平均分,英语及格百分数,政治平均分,政治及格百分数?
7.按不同老师所教不同课程平均分从高到低,查询打印: (就是分析哪个老师的哪门课程水平高)
教师ID,教师姓名,课程程ID,课程名称,平均分 (平均分按去掉一个最高分和一个最低分后取)
8.查询打印各科成绩,各分数段人数:
课程程ID,课程名,[100-85],[85-70],[70-60],[<60]
9.查询打印学生平均成绩及其名次
10.查询打印各科成绩前三名的记录:(不考虑成绩并列情况)
学生ID,学生姓名,科程ID,科程名,成绩,教师ID,教师姓名
11.查询打印参加了所有考试科目的学生
12.查询打印"至少"与学生"S3 (王五)"参加了相同考试科目的学生
--建立表的脚本
CREATE TABLE T (SSNO INT IDENTITY (1001,1),StudentID VARCHAR(20),StudentName VARCHAR(20),
CourseID VARCHAR(20),CourseName VARCHAR(20),Result int,TeacherID VARCHAR(20),TeacherName VARCHAR(20))
INSERT INTO T (StudentID,StudentName,CourseID,CourseName,Result,TeacherID,TeacherName)
SELECT 'S1','Pitt','K1','Math',62,'T1','Mr.Liu'
UNION
SELECT 'S1','Pitt','K2','Chinese',81,'T2','Mr.Wang'
UNION
SELECT 'S1','Pitt','K3','English',37,'T3','Mr.Lee'
UNION
SELECT 'S1','Pitt','K4','Politics',53,'T4','Mr.Yang'
UNION
SELECT 'S2','Smith','K1','Math',65,'T1','Mr.Liu'
UNION
SELECT 'S2','Smith','K2','Chinese',89,'T2','Mr.Wang'
UNION
SELECT 'S2','Smith','K3','English',50,'T3','Mr.Lee'
UNION
SELECT 'S2','Gates','K4','Politics',60,'T4','Mr.Yang'
UNION
SELECT 'S3','Gates','K1','Math',78,'T1','Mr.Wang'
UNION
SELECT 'S3','Gates','K2','Chinese',98,'T2','Mr.Wang'
UNION
SELECT 'S3','Gates','K3','English',71,'T3','Mr.Lee'
UNION
SELECT 'S3','Gates','K4','Politics',45,'T4','Mr.Liu'
UNION
SELECT 'S4','Tom','K1','Math',95,'T1','Mr.Wang'
UNION
SELECT 'S4','Tom','K2','Chinese',84,'T2','Mr.Wang'
UNION
SELECT 'S5','Bill','K1','Math',95,'T1','Mr.Wang'
UNION
SELECT 'S5','Bill','K3','English',97,'T3','Mr.Lee'
UNION
SELECT 'S5','Bill','K4','Politics',77,'T4','Mr.Liu'
UNION
SELECT 'S6','Tim','K1','Math',93,'T1','Mr.Wang'
UNION
SELECT 'S6','Tim','K3','English',45,'T3','Mr.Lee'
UNION
SELECT 'S6','Tim','K4','Politics',53,'T4','Mr.Liu'
UNION
SELECT 'S7','YangXin','K1','Math',61,'T1','Mr.Wang'
UNION
SELECT 'S7','YangXin','K2','Chinese',81,'T2','Mr.Wang'
UNION
SELECT 'S7','YangXin','K4','Politics',53,'T4','Mr.Liu'
UNION
SELECT 'S8','Blade','K2','Chinese',81,'T2','Mr.Wang'
UNION
SELECT 'S8','Blade','K4','Politics',53,'T4','Mr.Liu'
相关文章推荐
- SQL语句查询:把数据库中的表(表名)列出来
- SQL语句 如何把从一个表中查出来数据插入到另一个表中
- 整理出来的 sql 语句
- ListUI中增加了分录的字段后,query中的sql语句显示出来的是按照顺序显示出来的,而ListUI中显示出来的数据确实乱的
- 如何在sql/plus中把select语句查询显示出来的结果中的显示字段长度缩小
- 一道练习题引申出来的知识点(五) 常用的sql语句 以及相关概念
- 一条sql语句分别统计出来两张表的数据
- 队伍分组统计 (双重循环遍历出来)或 (sql语句查出来
- 通过sql语句查询出来的结果字段没有到对应实体类时的处理方法
- effective c++ Item 17: 在一个独立的语句中将 new 出来的对象存入智能指针
- 用Sql语句怎么 将分组查询得到的记录数 统计出来
- 控制sql语句查询出来的浮点类型数据小数点后的位数
- 两个sql语句查询出来的值相除
- 控制sql语句查询出来的浮点类型数据小数点后的位数
- sql语句里有中文字符,JDBC查询不出来结果
- 在sql语句中怎样将数据库字段横着显示出来
- MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?
- Oracle数据库应用SQL语句进行分页,以及引申出来对rownum的理解
- SQL语句:两个时间区间段,只要有交集,就能筛选出来
- 为什么在tpshop中用getlastsql 打印不出来sql语句,