`
cooper100
  • 浏览: 13073 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 查询

 
阅读更多
练习一:导入数据
将上机作业中school.dmp文件中的数据导入到数据库中。
该文件中包含4个表数据,分别是:StudentInfo表,TeacherInfo表,ClassInfo表,StudentExam表。
select * from studentinfo;



练习二:单行函数练习
1、查询所有学员从入学到今天,一共度过了多少天
    select studentinfo.*, ceil(sysdate-stujointime) as time from studentinfo;
   
 
2、查询每月2号入学的学员信息
   select * from
    (select studentinfo.*,to_char(stujointime,'mm') from studentinfo ) where to_char(stujointime,'mm')=2
   
    select * from studentinfo where to_char(stujointime,'dd')=2
   
     select * from studentinfo where to_char(stujointime,'mm')=3
3、查询所有学员的毕业日期,假定按每个学员入学时间1年半之后将毕业。
    select stuname,add_months(stujointime,18) from studentinfo
4、查询星期四入学的学员姓名,性别,年龄,班级编号
    select stuname,stusex,stuage,sclassid from studentinfo where to_char(stujointime,'day')='星期四'
   

5、查询‘2007-3-10’之前入学的学员信息
   select * from studentinfo where stujointime < to_date('2007-3-10','yyyy-mm-dd')
6、查询所有学员姓名的长度
   select studentinfo.stuname,length(stuname) from studentinfo
7、查询身份证中第9,10位为‘89’的学员信息(要求使用字符串函数)
  
     select * from studentinfo where substr(stucard,instr(stucard,'89'),2)='89'

    
8、修改班主任信息,将邮箱中的‘yahoo’替换为‘accp’
          select * from teacherinfo 
          select replace(teacheremail,'yahoo','accp') from teacherinfo
         
         
9、查询所有班主任的邮箱的用户名
      select substr(teacheremail,1,instr(teacheremail,'@')-1) from teacherinfo
10、查询所有班主任的邮箱的所属网站
提示:如果邮箱为qtz@yahoo.com,用户名即qtz,所属网站即yahoo。可先查找出‘@’和‘.’的下标,再截取
     select substr(teacheremail,instr(teacheremail,'@')+1,instr(teacheremail,'.')-instr(teacheremail,'@')-1)
      from teacherinfo
  
11、编写查询语句去掉字符串‘   爱你  要你  我  爱  你   ’中的空格
     select replace('   爱你  要你  我  爱  你   ',' ','') from dual
12、计算每个学员身份证中字符‘1’出现的次数
       select length(stucard)-length(replace(stucard,'1')) from studentinfo where stuid = 8
13、求小于-58.9的最大整数
      select ceil(examresult) from studentexam where examresult<60
     
     
14、求大于78.8的最小整数
    select floor(examresult) from studentexam where examresult>78.8
15、求64除以7的余数
      select mod(64,7) from dual
16、查询所有学员入学时间,要求显示格式为‘2007年03月02日’
       select to_char(stujointime,'yyyy"年"mm"月"dd日')期 
17、查询当前时间,要求显示格式为‘22时57:37’
     select to_char(sysdate,'hh"时"mi":"ss') from dual;
18、查询2007年入学的学员信息
      select * from studentinfo where to_char(stujointime,'yyyy') = '2007'
triggers
练习三:分组函数练习
1、查询所有学员的平均年龄(要求保留两位小数)
    select trunc(avg(stuage),2) from studentinfo ;
2、查询所有考试的总成绩
    select examsubject, avg(examresult) from studentexam group by examsubject
   
3、查询SQL考试的最低分数
    select * from studentexam
    select examresult from ( select row_number()over(order by examresult)r,studentexam.* from studentexam where examsubject='SQL')
    where r=1
   
4、查询Java考试成绩最高的学员姓名
     select examresult from (select dense_rank()over(order by examresult desc)r ,studentexam.* from studentexam where examsubject='Java')
     where  r=1
    
    
5、查询学员‘火云邪神’一共参加了几次考试
     select * from studentinfo
     select * from studentexam
    
     select count(*) from studentinfo,studentexam where studentinfo.stuid=studentexam.estuid and stuname='火云邪神'
6、查询各科目的平均成绩
    select examsubject ,avg(examresult) from studentexam group by examsubject
   
7、查询每个班级学员的最小年龄
   
     select sclassid,min(stuage) from studentinfo  group by sclassid;
8、查询考试不及格的人数
     select count(*) from studentexam where examresult<60
9、查询各学员的总成绩,要求筛选出总成绩在140分以上的
     select * from studentexam
  select * from  (select sum(examresult)>140 from studentexam where group by estuid ) group by estuid

select * from ( select sum(examresult),estuid from studentexam 
group by estuid )m  where   


select * from
(select sum(examresult) total,estuid from studentexam 
group by estuid
)where total>140

10、查询男女学员的平均年龄
select stusex ,avg(stuage) from studentinfo group by stusex
11、查询每门功课的平均分,要求显示平均分在80分以上的(包括80分)

      select * from (select avg(examresult)total  from studentexam group by examsubject) where total>80

12、按班主任姓名分组,查所带班级的总成绩分(假定每个班主任只带一个班级)(提示:4表连接)
     

--查去来的值,类型也是一样的
      select sclassid from studentinfo --这个一个真正的集合,值是唯一的
      union
      select classid from classinfo; 
     
      select sclassid from studentinfo
      union all
      select classid from classinfo;--这是别种一集合,没有过滤相同的值,没有对值进行
     
      select * from studentexam
      union all
      select * from teacherinfo;


select sclassid from studentinfo
intersect
select classid from classinfo;  -- 这是一个交集




select sclassid from studentinfo
minus
select classid from classinfo;  


练习四:分析函数练习
查询学员成绩,按成绩排序,并计算出名次
1、  要求不论成绩是否相同,名次是连续的序号
     select studentexam.* , row_number()over(order by examresult)rown from studentexam
  
2、  要求成绩相等的排位相同,名次随后跳跃
       select studentexam.* ,rank()over(order by examresult)rank_ from studentexam
3、  要求成绩相等的排位相同,名次是连续的
 
    select studentexam.* , dense_rank()over(order by examresult)denserank from studentexam 
   
   
分享到:
评论

相关推荐

    Oracle查询优化改写技巧与案例2.zip

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    提高Oracle查询效率

    本文将重点讨论如何提高Oracle查询效率,主要基于提供的压缩包文件"ORACLE_SQL性能优化.ppt"中的内容,结合源码理解和工具应用。 1. **SQL优化基础** - **索引优化**:索引可以显著提升数据检索速度。正确选择索引...

    oracle查询用户信息

    oracle查询用户信息1.查看所有用户2.查看用户或角色系统权限3.查看角色4.查看用户对象权限5.查看所有角色

    oracle查询优化pdf

    Oracle查询优化是数据库管理中的关键环节,它涉及到提高数据检索速度、降低系统资源消耗和提升整体应用性能。这本书“Oracle查询优化PDF”很可能是对Oracle数据库查询优化技术的深入探讨,涵盖了一系列相关主题,...

    【oracle】oracle查询优化改写

    在"Oracle_chaxunyouhuagaixiejiqiaoyuanli_20180929.pdf"这份文档中,可能会详细讲解以上提到的概念,并提供实际案例和技巧,帮助你深入理解和应用Oracle查询优化改写。通过学习这些内容,你将能够更好地诊断和解决...

    oracle 查询部分ppt

    《玩转Oracle查询部分》这份PPT是针对Oracle数据库系统中的查询操作进行深入探讨的资料。Oracle数据库系统作为全球广泛使用的数据库管理系统之一,其查询语言SQL(Structured Query Language)是数据库管理员、开发...

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询优化改写 技巧与案例.pdf

    oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询树形结构

    Oracle 查询树形结构 Oracle 查询树形结构是一种特殊的查询方式,它可以将树形结构的数据从 Oracle 数据库中检索出来。这种结构广泛应用于各种应用系统中,例如管理系统、文件系统、组织结构等。 在 Oracle 中,...

    oracle查询死锁语句

    oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!

    Oracle查询优化改写 技巧与案例 .pdf

    Oracle查询优化是数据库管理中的关键环节,尤其是在大型企业级应用中,高效的查询性能直接影响到系统的整体性能和用户体验。Oracle数据库提供了多种工具和技术来帮助我们优化SQL查询,提高数据检索速度,减少资源...

    一个基于C#的Oracle 查询工具例子程序

    下面将详细介绍基于C#的Oracle查询工具例子程序以及相关的知识点。 首先,要连接到Oracle数据库,我们需要使用Oracle提供的ODP.NET(Oracle Data Provider for .NET)驱动。这个驱动程序允许C#应用程序与Oracle...

    Oracle查询取汉字拼音首字母

    Oracle查询取汉字拼音首字母Function

    Oracle查询优化改写 技巧与案例_高清带书签版本

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    oracle 查询列最大值

    oracle 查询列最大值,例如有n例值,但是要找出这些列中的最大值。

    Oracle查询处理in条件超过1000条

    Oracle查询处理in条件超过1000条的2种后台处理方式:A,后台拼接查询条件;B,每1000条查询一次,最后返回查询结果;

Global site tag (gtag.js) - Google Analytics