select ACCOUNT
,sum(RENT),sum() from USERLIST a ,CHARGE b where aTELEPHONE
=bTELEPHONE(+)
group by aACCOUNT
上面是oracle用的
通用的是
select ACCOUNT
,sum(RENT),sum() from USERLIST a left join CHARGE b on aTELEPHONE
=bTELEPHONE
group by aACCOUNT
1,Access数据库可以由___和___什么构成 [库,表]
2,先单击所需的第一个工作表标签,然后按住___键不放,单击所需的最后一个工作表标签,可以选定多个连续的工作表。按住___键不放,单击所需的工作表标签,可以选定多个不连续的工作表。[shift,ctrl]
3,在单元格中输入文字,系统默认为___对齐;输入数字,系统默认为___对齐;用户也可以自行设定对齐方式。 [左、右]
4,可以使用___或___进行填充 *** 作。 [CTRL+D、CTRL+R]
5,___ *** 作将把单元格连同其中的数据一同删除;___ *** 作则只消除单元格的数据,不删除单元格。[删除、清除]
6,使用___功能,可以查看工作表的打印效果。[打印预览]
7,在“页面设置”对话框中可以设置打印方面、缩放比例和纸张大小。系统默认的打印方向为___,还可设置为___,默认的缩放比例为____。 [纵向、横向、100%]
8,可以使用___和___法创建图表。 [插入图表 图表向导]
9,使用___下拉菜单中的___命令可以隐藏和显示网格线。[工具,选项]
10,使用___下拉菜单中的___命令,可以自动套用表格格式。 [格式、自动套用格式 ]
11,单元格引用包括___引用、___引用、___引用。 [绝对、相对、混合]
12。E$123是___引用,AB43是___引用,$C$7是___引用。[混合、相对、绝对]
原文链接: >
本篇文章主要是对SQL经典50题进行详细解析。
解析包含:1、解题思路,2、考核知识点,3、答案;
首先,表结构用脑图输出出来,如下所示:
先进行数据准备,建表以及插入数据。
1查询"01"课程比"02"课程成绩高的学生的信息及课程分数
解题思路:
第一步:关键词有“课程编号”、“课程成绩”、“学生信息”,锁定使用表:学生表、成绩表。
第二步:给出学生信息及课程分数,通过主键sid关联学生表和课程表。
第三步:比较同一个学生不同课程的成绩,再关联一次课程表,利用sid、cid进行关联。
第四步:根据题目,用where比较分数筛选结果。
考核知识点: join,where
答案:
11 查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )
解题思路:
第一步:关键词有“课程编号”、“学生编号”,锁定使用表:成绩表。
第二步:分别查询出存在" 01 "课程的学生和存在" 02 "课程的学生。
第三步:对两个子查询进行关联,用sid进行左联接。
考核知识点: where, 子查询,left join
答案:
12 查询同时存在01和02课程的情况
解题思路: 同11,把left join改为join
考核知识点: where, 子查询,join
答案:
13 查询选择了02课程但没有01课程的情况
解题思路: 类似11,把left join改为right join
考核知识点: where, 子查询,right join
答案:
小结: 上面的题主要考察join、left join、right join。
2查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
解题思路:
第一步:关键词有“平均成绩”、“学生编号”、“学生姓名”,锁定使用表:成绩表、学生表。
第二步:给出学生信息及课程分数,通过主键sid关联学生表和课程表。。
第三步:根据题目,用group by聚合计算出平均成绩,然后筛选出大于等于60分的学生。
考核知识点: join、group by、avg()
答案:
3查询在 SC 表存在成绩的学生信息
解题思路:
第一步:关键词有“SC”、“学生信息”,锁定使用表:成绩表、学生表。
第二步:用EXISTS判断在SC表存在成绩的学生信息
考核知识点: EXISTS语句
答案:
4查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和
解题思路:
第一步:关键词有“学生编号”、“学生姓名”、“选课总数”、“课程成绩”,锁定使用表:成绩表、学生表。
第二步:通过主键sid关联学生表成绩表,得到学生信息、学生成绩的宽表
第三步:根据题目,用group by聚合计算选课总数和总成绩
考核知识点: left join、group by、count()、sum()、ifnull()
答案:
5查询「李」姓老师的数量
解题思路:
第一步:关键词有“老师的数量”,锁定使用表:教师表。
第二步:先筛选出「李」姓老师,再汇总统计「李」姓老师的数量
考核知识点: like、where、%、count()
答案:
6查询学过「张三」老师授课的同学的信息
解题思路:
第一步:关键词有“老师”、“学生信息”,锁定使用表:教师表、学生表、成绩表、课程表。
第二步:通过sid关联学生表、成绩表,再通过cid关联课程表,最后通过tid关联教师表。
第三步:用where筛选出「张三」老师授课的同学的信息。
考核知识点: 多重连接join
答案:
7查询没有学全所有课程的同学的信息。
解题思路:
第一步:关键词有“课程”、“学生信息”,锁定使用表:学生表、成绩表、课程表。
第二步:先统计学生的课程数量,再筛选出小于所有课程数量的学生。
考核知识点: left join、group by、count()
答案:
8查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息。
解题思路:
第一步:关键词有“课程”、“学生信息”,锁定使用表:学生表、成绩表。
第二步:先查询学号“01”的同学学习的课程。
第三步:通过sid关联学生表和成绩表,获取所有学生信息、课程信息。
第四步:用EXISTS筛选出至少1门课相同的同学信息。
考核知识点: left join、子查询、EXISTS
答案:
9查询和" 01 "号的同学学习的课程完全相同的其他同学的信息
解题思路:
第一步:关键词有“课程”、“学生信息”,锁定使用表:学生表、成绩表。
第二步:用“01”号的同学学习的课程左关联学生课程表,筛选出关链课程数一致的其他同学的sid
第三步:通过sid关联学生表和成绩表,获取完整的学生信息。
考核知识点: left join、子查询、group by
答案:
10查询没学过"张三"老师讲授的任一门课程的学生姓名
解题思路:
第一步:关键词有“老师”、“学生姓名”,锁定使用表:学生表、成绩表、课程表、教师表。
第二步:反向求解。先查询至少学过“张三”老师讲授的课程的学生sid
第三步:用NOT EXISTS筛选出不在第二步查询结果的学生信息,。
考核知识点: 多重连接join、NOT EXISTS、子查询
答案:
11查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
解题思路:
第一步:关键词有“姓名”、“平均成绩”,锁定使用表:学生表、成绩表。
第二步:通过sid关联学生表和成绩表,得到学生成绩信息宽表
第三步:用group by聚合统计,having对聚合的结果进行筛选。
考核知识点: join、group by、having、case when语句、avg()
答案:
12检索" 01 "课程分数小于 60,按分数降序排列的学生信息
解题思路:
第一步:关键词有“课程分数”、“学生信息”,锁定使用表:学生表、成绩表。
第二步:通过sid关联学生表和成绩表,得到学生成绩信息宽表
第三步:用where筛选" 01 "课程分数小于 60的记录,并按照分数降序排列。
考核知识点: join、where、order by
答案:
13按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
解题思路:
第一步:关键词有“平均成绩”,锁定使用表:成绩表。
第二步:用group by将学生课程的成绩由行转换为列并计算平均成绩。
第三步:按照平均成绩降序显示学生的所有课程的成绩以及平均成绩。
考核知识点: join
答案:
14查询各科成绩最高分、最低分和平均分,以如下形式显示:
以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,
优良率,优秀率
及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
解题思路:
第一步:关键词有“课程name”、“最高分”,锁定使用表:课程表、成绩表。
第二步:用group by聚合计算课程最高分、最低分、平均分。
第三步:用case语句判断及格、中等、优良、优秀,并结合group by计算。
考核知识点: join、group by、max()、min()、avg()、sum()、case when语句
答案:
15按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺
解题思路:
第一步:关键词有“各科成绩”,锁定使用表:成绩表。
第二步:用rank()排名。
考核知识点: rank() over(partition by)
答案:
151 按各科成绩进行行排序,并显示排名, Score 重复时合并名次
解题思路:
第一步:关键词有“各科成绩”,锁定使用表:成绩表。
第二步:用dense_rank()排名。
考核知识点: dense_rank() over(partition by)
答案:
16查询学生的总成绩,并进行排名,总分重复时保留名次空缺
解题思路:
第一步:关键词有“总成绩”,锁定使用表:成绩表。
第二步:用group by统计学生的总成绩。
第三步:用left join自关联进行排名。
考核知识点: group by、 left join
答案:
161 查询学生的总成绩,并进行排名,总分重复时不保留名次空缺
解题思路:
第一步:关键词有“总成绩”,锁定使用表:成绩表。
第二步:用group by统计学生的总成绩。
第三步:用变量进行排名。
考核知识点: group by、变量
答案:
17 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[60-0] 及所占百分比
解题思路:
第一步:关键词有“各科成绩”、“课程名称”,锁定使用表:成绩表、课程表。
第二步:通过cid关联课程表和成绩表,得到课程、成绩信息宽表。
第三步:用group by聚合统计各分段的人数及百分比。
考核知识点: join、group by、case when条件语句
答案:
18查询各科成绩前三名的记录
解题思路:
第一步:关键词有“各科成绩”,锁定使用表:成绩表。
第二步:筛选出各科比当前成绩高的人数小于3的学生记为各科的前三名。
考核知识点: 子查询
答案:
19查询每门课程被选修的学生数
解题思路:
第一步:关键词有“每门课程”、“学生数”,锁定使用表:课程表、成绩表。
第二步:用left join关联课程表和成绩表,再用group by分组汇总各科的学生数。
考核知识点: left join、group by
答案:
20查询出只选修两门课程的学生学号和姓名
解题思路:
第一步:关键词有“选修课程”、“学生姓名”,锁定使用表:学生表、成绩表。
第二步:用join关联学生表和成绩表,再用group by分组汇总每个学生的选修课程数,最后用having对分组汇总结果筛选出选修两门课程的学生。
考核知识点: join、group by、having
答案:
21 查询男生、女生人数
解题思路:
第一步:关键词有“男生、女生”,锁定使用表:学生表。
第二步:通过ssex学生表用group by分组汇总男生、女生人数。
考核知识点: group by
答案:
22 查询名字中含有「风」字的学生信息
解题思路:
第一步:关键词有“学生信息”,锁定使用表:学生表。
第二步:用like匹配姓名中含有风」字的学生。
考核知识点: like、%
答案:
23查询同名同性学生名单,并统计同名人数
解题思路:
第一步:关键词有“学生名单”,锁定使用表:学生表。
第二步:使用group by,汇总同名同性人数,再用having筛选出大于1的记录
考核知识点: group by、having
答案:
24查询 1990 年出生的学生名单
解题思路:
第一步:关键词有“学生名单”,锁定使用表:学生表。
第二步:用where筛选出1990年出生的学生名单
考核知识点: where、year
答案:
25查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编
号升序排列。
解题思路:
第一步:关键词有“平均成绩”,锁定使用表:成绩表。
第二步:用group by分组计算各科平均成绩,再用order by完成多列排序
考核知识点: group by、order by
答案:
26查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩
解题思路:
第一步:关键词有“平均成绩”、“学生姓名”,锁定使用表:成绩表、学生表。
第二步:用join关联学生表和成绩表
第三步:用group by分组汇总计算每个学生的平均成绩,再用having筛选平均成绩>=85的记录
考核知识点: join、group by、having
答案:
27查询课程名称为「数学」,且分数低于 60 的学生姓名和分数
解题思路:
第一步:关键词有“课程名称”、“分数”、“学生姓名”,锁定使用表:课程表、成绩表、学生表。
第二步:用join关联学生表、成绩表、课程表,再用where筛选
考核知识点: 多重join、where
答案:
28 查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)
解题思路:
第一步:关键词有“所有学生”、“分数”,锁定使用表:学生表、成绩表
第二步:用left join关联学生表、成绩表
考核知识点: left join
答案:
29查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数
解题思路:
第一步:关键词有“课程成绩”、“姓名”、“课程名称”,锁定使用表:学生表、成绩表、课程表
第二步:用join关联学生表、成绩表、课程表,再筛选出课程成绩在70分以上的。
考核知识点: 多重join
答案:
30查询不及格的课程
解题思路:
第一步:关键词有“不及格的课程”,锁定使用表:成绩表、课程表
第二步:关联课程表和成绩表,再条件筛选出不及格的课程信息。
考核知识点: join、where、去重
答案:
31查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名
解题思路:
第一步:关键词有“课程编号”、“课程成绩”、“姓名”,锁定使用表:成绩表、学生表
第二步:关联成绩表和学生表,再条件筛选出结果。
考核知识点: join、where
答案:
32求每门课程的学生人数
解题思路:
第一步:关键词有“课程”、“学生人数”,锁定使用表:成绩表
第二步:用group by分组汇总各科的学生人数。
考核知识点: group by
答案:
33成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
解题思路:
第一步:关键词有“成绩”、“「张三」老师”、“学生信息”,锁定使用表:成绩表、课程表、学生表、教师表
第二步:关联所有表,筛选出选修「张三」老师所授课程的学生。
第三步:因为成绩不重复,对学生成绩由高到低排序,筛选出第一行记录。
考核知识点: 多重join、order by、limit
答案:
34成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生
信息及其成绩
解题思路:
第一步:关键词有“成绩”、“「张三」老师”、“学生信息”,锁定使用表:成绩表、课程表、学生表、教师表
第二步:关联所有表,筛选出选修「张三」老师所授课程的学生。
第三步:因为成绩有重复,先求出最高成绩,再匹配最高成绩对应的学生信息。
考核知识点: 多重join、max()
答案:
35查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
解题思路:
第一步:关键词有“成绩”,锁定使用表:成绩表
第二步:自联接,筛选出不同课程成绩相同的记录
考核知识点: 自联接join
答案:
36 查询每门成绩最好的前两名
解题思路:
第一步:关键词有“成绩”,锁定使用表:成绩表
第二步:自联接,筛选出各科低于自身成绩的人数为2的。
考核知识点: left join
答案:
37 统计每门课程的学生选修人数(超过 5 人的课程才统计)。
解题思路:
第一步:关键词有“选修人数”,锁定使用表:成绩表
第二步:先用group by分组汇总各科的选修人数,再条件筛选出超过5人的课程。
考核知识点: group by、having
答案:
38检索至少选修两门课程的学生学号
解题思路:
第一步:关键词有“两门课程”,锁定使用表:成绩表
第二步:先用group by分组汇总每个学生的选修课程数,再用having筛选出至少2门课程的学生学号
考核知识点: group by、having
答案:
39查询选修了全部课程的学生信息
解题思路:
第一步:关键词有“全部课程”、“学生信息”,锁定使用表:成绩表、课程表、学生表
第二步:关联学生表和成绩表,再用group by分组统计每个学生的选修课程数
第三步:最后用having筛选出等于全部课程数的学生信息。
考核知识点: join、 group by、having、子查询
答案:
40查询各学生的年龄,只按年份来算
解题思路:
第一步:关键词有“学生的年龄”,锁定使用表:学生表
第二步:用year和now来统计
考核知识点: year、now
答案:
41 按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一
解题思路:
第一步:关键词有“出生日期”,锁定使用表:学生表
第二步:用timestampdiff()统计年龄
考核知识点: timestampdiff()
答案:
42查询本周过生日的学生
解题思路:
第一步:关键词有“过生日”,锁定使用表:学生表
第二步:用week函数
考核知识点: week()
答案:
43 查询下周过生日的学生
解题思路:
第一步:关键词有“过生日”,锁定使用表:学生表
第二步:用week函数
考核知识点: week()
答案:
44查询本月过生日的学生
解题思路:
第一步:关键词有“过生日”,锁定使用表:学生表
第二步:用month函数
考核知识点: month()
答案:
45查询下月过生日的学生
解题思路:
第一步:关键词有“过生日”,锁定使用表:学生表
第二步:用month函数
考核知识点: month()
答案:
这套笔试题你想拿上100分,也该悬赏上100分。
输上基本上都有答案,看看SQL2005的书
create database STU --创建数据库
use login1
go
create table STUDENT --建表
(
SNO char(10) primary key,
SNAME varchar(8),
SEX char(2) default 男,--默认值为男,只能输入男或女
SAGE int,
SDEPT VARCHAR(20)
)
别的表类似。
前两个不知道你说的什么
isnull函数是单行函数,对一列每个数据进行判断,数据为null,则用其他数据替换,不为null,则为原来的数据,例如:
isnull(列名, 其他数据)
not in是条件筛选的功能之一,形式为not in(),()内输出的为一列数据,例如:
select from Student
where Sno not in
(
select Sno from SC
where Cno = '0001'
)
上面的就是查询出学生表中未选修班号为0001的班级的学生
真题网>
以上就是关于SQL笔试试题全部的内容,包括:SQL笔试试题、后天有数据库笔试,谁能帮我回答几个问题!!!急、【MySQL】20个经典面试题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)