首先,建立student1,sc,course表,如图

表 Student1

表 sc

表course

alter table sc add constraints fk_sno foreign key(sno) references studnet1(sno)#外键限制

  1. 查询以数据处理为先修课程的所有课程。

select  * from course where cpno=(select cno from course where cname='数据处理')

  1. 查询与张立在同一个系的所有学生姓名。

select *  from student1 where sdept=(select sdept from studnet1 where sname='张立' )

  1. 查询考试时间在2007-4-20至4-24日之间的参考学生姓名。

select  sname,testtime from sc where studnet1.sno=sc.sno and testtime between to_date('2007-4-20','yyyy-mm-dd') and to_date('2007-4-24','yyyy-mm-dd')  #一定要把类型转化为date型

  1. 查询所有学生参加考试的情况,按照课程划分,输出学生姓名、课程名称、考试时间及成绩。

select student1.cname,course.cname,testtime,grade from student1,sc,course where studnet1.sno=sc.sno and sc.cno=course,cno order by course

  1. 查询每门课程考试成绩最高的学生姓名,输出学生姓名、课程名称、成绩、课程学分,按照课程的学分数升序排列。

    select max(sname),cname,max(grade),max(credit) from sc,studnet1,sc ,course where studnet1.sno=sc.sno and sc.cno=course.cno group by cname order by max(credit)

    #GROUP BY 1.ORDER BY 必须放在group by后面

    2.group by 后面的属性必须是前面出现的所有属性(分组函数可以不出现),所以为了合理分组,我们把sname变成了分组函数max(sname) 以此类推

    1. 查询参加考试的学生所有课程的总成绩,输出学生姓名、参加考试课程数量、总成绩。

    select sname,count(cno),sum(grade) from studnet1,sc where studnet1.sno=sc.sno group by sname

    1. 查询参加了三次以上的学生姓名 需用子查询和联接两种方式实现

    1.select sname,count(cno) from student1,sc where student1.sno=sc.sno having count(cno)>=3

    2.select sname,count(cno) from student1,sc join sc on student1.sno=sc.sno having count(cno)>=3

    1. 查询参加过考试的每个学生考的最好的那次考试的情况 用子查询实现

      select max(grade),sname,max(cname) from student1,sc,course where student1.sno=sc.sno and course.cno=sc.cno group by sname


alter table sc add constraints




oracle入门操作3(关于查询 )相关推荐

  1. Oracle入门(十三C)之高级查询(下)

    上章:Oracle入门(十三B)之高级查询(上) 四.常见组函数 SUM.AVG.COUNT.MIN.MAX 分组函数忽略null 值. 不能在WHERE 子句中使用组函数. MIN 和MAX 可用于 ...

  2. Oracle入门(十三B)之高级查询(上)

    下章:Oracle入门(十三C)之高级查询(下) 一.多表格查询 (1)定义 将两个或两个以上的表格,按照一定的关系连接起来进行查询. (2)多表格查询分类 连接查询 嵌套查询 集合查询 二.连接查询 ...

  3. oracle图书操作、sql语句查询+授权、视图、索引、表操作

    oracle图书操作.sql语句查询+授权.视图.索引.表操作 一.创建一张表book,表结构为(总编号,分类号,书名,作者,出版单位,单价),插入若干记录 二.创建一张表reader,表结构为(借书 ...

  4. Oracle数据库中的级联查询、级联删除、级联更新操作教程

    这里整理了Oracle中的三种级联操作,其中Oracle定义外健的时候可以定义级联删除,但是没有级联修改的语法,当然可以用触发器实现,下面我们详细来看Oracle数据库中的级联查询.级联删除.级联更新 ...

  5. Oracle数据库多表连接查询操作以及查询操作的补充

    文章目录 一.查询语句概述 1.查询语句基本语法格式 2.伪表和伪劣 二.单表查询 1.select子句 2.FROM子句 3.WHERE子句 4.DISTINCT关键字 5.GROUP BY子句与聚 ...

  6. Oracle入门(十二)之SQL的DDL

    一.数据类型 Character 数据类型 Number 数据类型 Date 数据类型 Raw 和 Long Raw 数据类型 LOB 数据类型 注:Oracle数据类型详解 二.表 (1)创建表 c ...

  7. oracle入门之登录-创建用户

    推荐一个Oracle入门学习网站:http://www.51zxw.net/study.asp?vip=16229363 点击之后搜索Oracle 第一个就是小姐姐Oracle视频讲解课程 永久表空间 ...

  8. oracle入门到大神(备mysql、java基础、javaee必经之路)-任亮-专题视频课程

    oracle入门到大神(备mysql.java基础.javaee必经之路)-19178人已学习 课程介绍         Oracle10g的安装.orcale的基本概念介绍.命令行常用操作.Scot ...

  9. JMeter入门操作简介

    JMeter入门操作简介 1.JMter简介及作用 JMter是Apache公司用Java开发的一款测试工具 接口测试.性能测试.数据库测试.java程序测试. 可以对服务器.网络或者对象模拟巨大的负 ...

  10. Java小白的数据库爱情(二)Oracle 入门

    Java小白的数据库爱情(二)Oracle 入门 概述 随着互联网时代的到来,需要持久化数据呈现井喷式发 展,常规的 io 操作虽然可以满足持久化的需求,但是, 对于持久化的目的,对数据的操纵,显然力 ...

最新文章

  1. Newtonsoft.Json文件错误
  2. python编程基础知识点上的问题_python编程入门之二:必备基础知识
  3. vins中imu融合_双目版 VINS 项目发布,小觅双目摄像头作为双目惯导相机被推荐...
  4. 线下沙龙 × 上海 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习
  5. jenkins简单部署
  6. 德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU time
  7. 理解C#中的委托与事件
  8. lambda qt 参数 槽函数_C++中的lambda表达式用法
  9. MySQL Semisync
  10. 基础01类与对象、封装、构造方法
  11. 美媒:中国假冒芯片太假 致驻伊美军频繁坠机
  12. 多数元素 在数组中出险次数大于n/2
  13. [软件更新]CuteFTP 8.3.3.0054
  14. siblings筛选同胞元素
  15. 计算机看游戏显卡,如何看电脑显卡性能
  16. 发版流程及对外版本规范
  17. Coursera | Python for Everybody专项课程
  18. FFMPEG - 视频解码器
  19. js根据日期生成批次号
  20. 联手友盟+打造数据融合“样板间”, 好兔视频成功逆势突围

热门文章

  1. H-Index H指数
  2. struct和typedef struct的用法和区别
  3. 玩转Qt(14)-Qt与Web混合开发
  4. 微信可以用邮箱吗?邮箱无法分享到微信怎么办?微信邮箱从哪找呢
  5. 什么是无线WIFI空口
  6. Windows锁屏图片文件存放位置
  7. 【好奇心驱动力】APP每日打卡自动化测试
  8. bootstrap柱状图
  9. aruba交换机配置命令_ArubaOS交换机日常配置指导
  10. 硅谷丛林的故事 EDA篇