oracle入门操作3(关于查询 )
首先,建立student1,sc,course表,如图
表 Student1
表 sc
表course
alter table sc add constraints fk_sno foreign key(sno) references studnet1(sno)#外键限制
查询以数据处理为先修课程的所有课程。
select * from course where cpno=(select cno from course where cname='数据处理')
查询与张立在同一个系的所有学生姓名。
select * from student1 where sdept=(select sdept from studnet1 where sname='张立' )
查询考试时间在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型
查询所有学生参加考试的情况,按照课程划分,输出学生姓名、课程名称、考试时间及成绩。
select student1.cname,course.cname,testtime,grade from student1,sc,course where studnet1.sno=sc.sno and sc.cno=course,cno order by course
查询每门课程考试成绩最高的学生姓名,输出学生姓名、课程名称、成绩、课程学分,按照课程的学分数升序排列。
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) 以此类推
查询参加考试的学生所有课程的总成绩,输出学生姓名、参加考试课程数量、总成绩。
select sname,count(cno),sum(grade) from studnet1,sc where studnet1.sno=sc.sno group by sname
查询参加了三次以上的学生姓名 需用子查询和联接两种方式实现
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
查询参加过考试的每个学生考的最好的那次考试的情况 用子查询实现
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(关于查询 )相关推荐
- Oracle入门(十三C)之高级查询(下)
上章:Oracle入门(十三B)之高级查询(上) 四.常见组函数 SUM.AVG.COUNT.MIN.MAX 分组函数忽略null 值. 不能在WHERE 子句中使用组函数. MIN 和MAX 可用于 ...
- Oracle入门(十三B)之高级查询(上)
下章:Oracle入门(十三C)之高级查询(下) 一.多表格查询 (1)定义 将两个或两个以上的表格,按照一定的关系连接起来进行查询. (2)多表格查询分类 连接查询 嵌套查询 集合查询 二.连接查询 ...
- oracle图书操作、sql语句查询+授权、视图、索引、表操作
oracle图书操作.sql语句查询+授权.视图.索引.表操作 一.创建一张表book,表结构为(总编号,分类号,书名,作者,出版单位,单价),插入若干记录 二.创建一张表reader,表结构为(借书 ...
- Oracle数据库中的级联查询、级联删除、级联更新操作教程
这里整理了Oracle中的三种级联操作,其中Oracle定义外健的时候可以定义级联删除,但是没有级联修改的语法,当然可以用触发器实现,下面我们详细来看Oracle数据库中的级联查询.级联删除.级联更新 ...
- Oracle数据库多表连接查询操作以及查询操作的补充
文章目录 一.查询语句概述 1.查询语句基本语法格式 2.伪表和伪劣 二.单表查询 1.select子句 2.FROM子句 3.WHERE子句 4.DISTINCT关键字 5.GROUP BY子句与聚 ...
- Oracle入门(十二)之SQL的DDL
一.数据类型 Character 数据类型 Number 数据类型 Date 数据类型 Raw 和 Long Raw 数据类型 LOB 数据类型 注:Oracle数据类型详解 二.表 (1)创建表 c ...
- oracle入门之登录-创建用户
推荐一个Oracle入门学习网站:http://www.51zxw.net/study.asp?vip=16229363 点击之后搜索Oracle 第一个就是小姐姐Oracle视频讲解课程 永久表空间 ...
- oracle入门到大神(备mysql、java基础、javaee必经之路)-任亮-专题视频课程
oracle入门到大神(备mysql.java基础.javaee必经之路)-19178人已学习 课程介绍 Oracle10g的安装.orcale的基本概念介绍.命令行常用操作.Scot ...
- JMeter入门操作简介
JMeter入门操作简介 1.JMter简介及作用 JMter是Apache公司用Java开发的一款测试工具 接口测试.性能测试.数据库测试.java程序测试. 可以对服务器.网络或者对象模拟巨大的负 ...
- Java小白的数据库爱情(二)Oracle 入门
Java小白的数据库爱情(二)Oracle 入门 概述 随着互联网时代的到来,需要持久化数据呈现井喷式发 展,常规的 io 操作虽然可以满足持久化的需求,但是, 对于持久化的目的,对数据的操纵,显然力 ...
最新文章
- Newtonsoft.Json文件错误
- python编程基础知识点上的问题_python编程入门之二:必备基础知识
- vins中imu融合_双目版 VINS 项目发布,小觅双目摄像头作为双目惯导相机被推荐...
- 线下沙龙 × 上海 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习
- jenkins简单部署
- 德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU time
- 理解C#中的委托与事件
- lambda qt 参数 槽函数_C++中的lambda表达式用法
- MySQL Semisync
- 基础01类与对象、封装、构造方法
- 美媒:中国假冒芯片太假 致驻伊美军频繁坠机
- 多数元素 在数组中出险次数大于n/2
- [软件更新]CuteFTP 8.3.3.0054
- siblings筛选同胞元素
- 计算机看游戏显卡,如何看电脑显卡性能
- 发版流程及对外版本规范
- Coursera | Python for Everybody专项课程
- FFMPEG - 视频解码器
- js根据日期生成批次号
- 联手友盟+打造数据融合“样板间”, 好兔视频成功逆势突围