ORACLE(student)表习题与答案
因为答案都是小编自己写的,解法可能有多种,如果您觉得我的解法有误,希望您有时间给我留言。
题目:
1、 查询student表中的所有记录的sname、ssex和class列。
SELECT sname,ssex,class FROM student;
2、 查询教师所有的单位即不重复的depart列。
SELECT distinct depart FROM t_teacher;
3、 查询student表的所有记录。
SELECT * FROM student;
4、 查询t_score表中成绩在60到80之间的所有记录。
SELECT * FROM t_score where degree>60 and degree<80;
5、 查询t_score表中成绩为85,86或88的记录。
SELECT * FROM t_score where degree in (85,86,88)
6、 查询student表中“95031”班或性别为“女”的同学记录。
SELECT * FROM student where class="95031" and ssex='女'
7、 以class降序查询student表的所有记录。
SELECT * FROM student order by class
8、 以cno升序、degree降序查询score表的所有记录。
SELECT * FROM (SELECT * FROM t_score order by cno ) order by degree desc
9、 查询“95031”班的学生人数。
SELECT * FROM student where class="95031"
10、查询score表中的最高分的学生学号和课程号。
SELECT sno,cno FROM t_score where degree=(SELECT max(degree) FROM t_score )
--记录第一条: rownum= 1
11、查询‘3-105’号课程的平均分。
SELECT avg(degree) FROM t_score where cno='3-105'
12、查询score表中至少有5名学生选修的并以3开头的课程的平均分数。
SELECT * FROM (SELECT cno FROM t_score group by cno having count(*)>5 ) where cno like'%3%'
13、查询最低分大于70,最高分小于90的sno列。
SELECT sno FROM t_score where degree>70 and degree<90
14、查询所有学生的sname、cno和degree列。
SELECT t1.sname,t2.cno,t2.degree FROM student t1,t_score t2 where t1.sno=t2.sno
--学习表
SELECT * FROM student;
--课表表
SELECT * FROM t_course;
--分数表
SELECT * FROM t_score ;
15、查询所有学生的sno、cname和degree列。
SELECT t1.sname,t2.sno,t2.degree FROM student t1,t_score t2 where t1.sno=t2.sno
16、查询所有学生的sname、cname和degree列。
--SELECT * FROM t_course;
--SELECT * FROM t_score;
--SELECT * FROM student;
--SELECT sname FROM student;
--SELECT cname FROM t_course;
--SELECT degree FROM t_score;
SELECT t3.sname,t1.cname,t2.degree FROM t_course t1
inner join t_score t2 on t1.cno=t2.cno
inner join student t3 on t3.sno=t2.sno
17、查询“95033”班所选课程的平均分。
SELECT avg(degree) FROM (SELECT tt.class,yy.degree FROM student tt ,t_score yy where tt.sno=yy.sno) group byclass having class="95033" ;
18、查询所有同学的sno、cno和rank列。
--着题是多字段关链
SELECT t1.sno,t1.cno,t2.rank FROM t_score t1 left join t_grade t2 on t1.degree<=t2.upp and t1.degree>=t2.low
SELECT * FROM t_score
--评级
SELECT * FROM t_grade;
19、查询选修“3-105”课程的成绩高于“109”号同学课程最高成绩的所有同学的记录。
SELECT degree FROM t_score where cno= '3-105' and degree>(
SELECT max(degree) FROM t_score where sno=109 )
20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。
SELECT * FROM t_score where cno in (
SELECT cno FROM t_score group by cno having count(*)>1) ORDER BY degree desc
21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT * FROM (
SELECT * FROM t_score where cno='3-105')where degree>(SELECT degree FROM t_score where sno=109 and rownum=1 )
22、查询和学号为108的同学同年出生的所有学生的sno、sname和sbirthday列。
SELECT * FROM student where sno=108;
23、查询“张旭“教师任课的学生成绩。
SELECT pp.sno,ii.sname,pp.degree,pp.cno
FROM t_course oo,t_score pp ,student ii
where tno=(
SELECT tno FROM t_teacher where tname='张旭') and oo.cno=pp.cno and ii.sno=pp.sno
24、查询选修某课程的同学人数多于5人的教师姓名。
SELECT hh.tname FROM t_course gg left join t_teacher hh on gg.tno=hh.tno where cno=(
SELECT cno FROM t_score group by cno having count(sno)>5
)
25、查询95033班和95031班全体学生的记录。
SELECT vv.*,cc.cno,cc.degree FROM student vv left join t_score cc on vv.sno=cc.sno where class="95033" or class="95031"
26、查询存在有85分以上成绩的课程cno.
SELECT dd.*,ss.cname FROM t_score dd left join t_course ss on dd.cno=ss.cno where degree >85
27、查询出“计算机系“教师所教课程的成绩表。
--课程
SELECT * FROM t_score where cno in (
SELECT cno FROM t_course where tno in (
SELECT tno FROM t_teacher where depart='计算机系'
)
)
28、查询“计算机系”与“电子工程系“不同职称的教师的tname和prof。
SELECT * FROM t_teacher where prof in (SELECT prof FROM t_teacher ui group by prof having count(*)<2) and depart in ('电子工程系','计算机系')
29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的cno、sno和degree,并按degree从高到低次序排序。
SELECT * FROM t_score where cno='3-245' and degree>(SELECT degree FROM t_score where cno='3-105') order by degree
--等一下再做
30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的cno、sno和degree.
select * from t_score a where cno = '3-105' and a.degree>(
select b.degree from t_score b where cno = '3-245'and a.sno=b.sno)
31、查询所有教师和同学的name、sex和birthday.
SELECT t1.tname,t1.tsex,t1.tbirthday,t4.sname,t4.ssex,t4.sbirthday FROM t_teacher t1
inner join t_course t2 on t1.tno=t2.tno
inner join t_score t3 on t2.cno=t3.cno
inner join student t4 on t3.sno=t4.sno
32、查询所有“女”教师和“女”同学的name、sex和birthday.
SELECT t1.tname,t1.tsex,t1.tbirthday,t4.sname,t4.ssex,t4.sbirthday FROM t_teacher t1
inner join t_course t2 on t1.tno=t2.tno
inner join t_score t3 on t2.cno=t3.cno
inner join student t4 on t3.sno=t4.sno where t4.ssex='女' and t1.tsex='女'
33、查询成绩比该课程平均成绩低的同学的成绩表。
SELECT * FROM t_score q1 inner join (
SELECT cno,avg(degree) degree FROM t_score group by cno) q2 on q1.cno=q2.cno where q1.degree>q2.degree
34、查询所有任课教师的tname和depart.
SELECT distinct y1.tname,y1.depart FROM t_teacher y1 left join t_course y2 on y1.tno=y2.tno
35、查询所有未讲课的教师的tname和depart.
SELECT distinct y1.tname,y1.depart FROM t_teacher y1 left join t_course y2 on y1.tno!=y2.tno
36、查询至少有2名男生的班号。
SELECT * FROM student where class in (SELECT class FROM student group by class having count(*)>2) and ssex='男'
37、查询student表中不姓“王”的同学记录。
SELECT * FROM student where sname not like '%王%'
38、查询student表中每个学生的姓名和年龄。
SELECT sname,to_char(sysdate,'yyyy')-to_char(sbirthday,'yyyy') FROM student
39、查询student表中最大和最小的sbirthday日期值。
SELECT max(sbirthday),min(sbirthday) FROM student ;
40、以班号和年龄从大到小的顺序查询student表中的全部记录。
SELECT sno,sname,ssex, class,to_char(sysdate,'yyyy')-to_char(sbirthday,'yyyy')nl FROM student ORDER BY class,nl desc
41、查询“男”教师及其所上的课程。
SELECT ii.cname FROM t_course ii inner join (
SELECT tno FROM t_teacher where tsex='男'
) oo on ii.tno=oo.tno
42、查询最高分同学的sno、cno和degree列。
SELECT tt.* FROM (
SELECT sno,cno,degree FROM t_score ORDER BY degree desc)tt where rownum=1
43、查询和“李军”同性别的所有同学的sname.
SELECT sname FROM student where ssex=(
SELECT ssex FROM student where sname='李军')
44、查询和“李军”同性别并同班的同学sname.
SELECT tq.*,qw.class FROM student tq inner join (
SELECT ssex,class FROM student where sname='李军') qw on tq.ssex=qw.ssex and tq.class=qw.class
45、查询所有选修“计算机导论”课程的“男”同学的成绩表
SELECT fg.*,gh.degree,gh.sno,hj.ssex FROM t_course fg
inner join t_score gh on fg.cno=gh.cno
inner join student hj on gh.sno=hj.sno
where cname='计算机导论' and hj.ssex='男'
46、查询出选修课程号为3-245和6-166的课程的学生学号与姓名
SELECT vc.sname,vc.sno FROM student vc inner join t_score xc on vc.sno=xc.sno where cno in ('3-245','6-166')
47、查询出没有选修课程号为3-245和6-166的课程的学生学号与姓名
SELECT distinct hd.sno,dd.sname FROM t_score hd left join student dd on hd.sno=dd.sno where cno!='3-245' or cno!='6-166'
48、查询学号为'101'的学生的所有课程的成绩,如果没有选修该课程,则成绩为0
select nvl(sno,'101'),cname,nvl(degree,0) from
t_score t2 right join t_course t1
on t1.cno=t2.cno and t2.sno='101'
附加题:
查询 班级为3-105所有学生的成绩
SELECT q1.sno,q1.cno,q3.degrees FROM t_score q1 inner join (
SELECT sno ,sum(degree)degrees FROM t_score group by sno
) q3 on q1.sno=q3.sno where cno='3-105'
欢迎关注小编的公众号,更多学习视频、模板、工具(wind激活工具)!!!
ORACLE(student)表习题与答案的更多相关文章
- ORACLE(emp)表习题与答案
因为答案都是小编自己写的,解法可能有多种,如果您觉得我的解法有误,希望您有时间给我留言. 一.习题 (1) 查询20部门的所有员工信息. SELECT * FROM emp where deptno ...
- 另一套Oracle SQL练习题,更新参考答案
题干: create table student( sno ) primary key, sname ), sage ), ssex ) ); create table teacher( tno ) ...
- Oracle数据库——表的创建与管理
一.涉及内容 1.掌握使用OEM工具创建.修改和删除表. 2.掌握使用SQL语句创建.修改和删除表. 3.掌握使用SQL语句插入.修改和删除数据. 4.理解各种约束的作用,并能够使用OEM工具和SQL ...
- ORACLE外部表总结
外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表 ...
- oracle大表添加字段default经验分享
当oracle单表数据量上亿时,对表进行alter table aa add column_1 varchar2(2) defalut 'Y';时,效率及安全性是必须考虑的因素. 本帖以2亿的数据表a ...
- sql经典习题及其答案(纠正错误版)
--网上有好多这套题的答案,但是经过我的验证,有很多都是错的,误人子弟--这是我自己纠正以后的版本 然后呢如果我写的还有不对的欢迎批评指正!--(1)查询2006年以后(包括2006年)的投稿情况,列 ...
- Oracle创建表空间和表
创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablesp ...
- shell实现查询oracle数据库表,并写到本地txt文件
1.表结构 create table t_student( id ) primary key, name ), birthday date ); increment ; insert into t_s ...
- Oracle修改表结构字段名和字段长度
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...
随机推荐
- Docker 入门基础
Docker是一个能把开发的应用程序自动部署到容器的开源引擎.Docker是新的容器化技术,轻巧,易移植[Build Once, Configure Once And Run Anywhere].Do ...
- [Servlet]Servlet工作流程及注意事项
Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...
- 取消Jquery mobile自动省略的文本
在使用jquery moblie做移动客户端app时,listview控件下的列表文本不能完全显示,只能显示一行,超过字数jquery mobile会自动用省略号代替.很是纠结啊. 最后在一个岛国网站 ...
- MySQL SYS CPU高的案例分析(一)
原文:MySQL SYS CPU高的案例分析(一) [现象] 最近关注MySQL CPU告警的问题时,发现有一种场景,有一些服务器最近都较频繁的出现CPU告警,其中的现象是 SYS CPU占比较高. ...
- wpf datagrid设置右键菜单打开时选中项的背景色
原文:wpf datagrid设置右键菜单打开时选中项的背景色 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/artic ...
- Asp.net-MyFirstMVCProject详细解释
一个URL要求, ASP.NET MVC引擎将分析URL要使用Controller, 这个Controller(取而代之的是,真实的方法Controller的Action)从数据库或者其它数据源获取数 ...
- asp.net (webapi) core 2.1 跨域配置
原文:asp.net (webapi) core 2.1 跨域配置 官方文档 ➡️ https://docs.microsoft.com/zh-cn/aspnet/core/security/cors ...
- WPF 四种尺寸单位
原文:WPF 四种尺寸单位 像素 px 默认单位可以省略 厘米cm 英寸 in 点 pt 1in = 96px 1cm=96/2.42px 1pt=96/72px
- 使用StringBuilder与SqlParameter
好处: 防止sql注入:占用内存更少 例子: 传参有业务查询条件startDate,endDate,A,每页数据个数pageSize,当前查询页码pageIndex string sql = @&qu ...
- MultiBinding
<StackPanel> <Slider x:Name="sl1" Minimum="10" Maximum="100"/ ...