oracle数据库对象管理.ppt





《oracle数据库对象管理.ppt》由会员分享,可在线阅读,更多相关《oracle数据库对象管理.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LCXZZU第第7 7章章 数据库对象管理数据库对象管理SELECT语句的基本应用语句的基本应用 SELECT语句的基本语法结构如下:语句的基本语法结构如下:SELECT DISTINCT 子句子句 INTO 子句子句 FROM 子句子句 WHERE 子句子句 GROUP BY 子句子句 HAVING 子句子句 ORDER BY 子句子句 LCXZZU第第7 7章章 数据库对象管理数据库对象管理SELECT 查询查询单表查询单表查询多表连接查询多表连接查询LCXZZU第第7 7章章 数据库对象管理数据库对象管理SELECT 查询查询单表查询单表查询v单表查询指的是在一个源表中查找所需的数据。单
2、表查询指的是在一个源表中查找所需的数据。因此,单表查询时,因此,单表查询时,FROMFROM子句中的子句中的 只需要给出一个源表表名。只需要给出一个源表表名。1.SELECT1.SELECT子句子句 (1 1)选择表中若干列)选择表中若干列(2 2)选择表中所有列)选择表中所有列(3 3)使用表达式)使用表达式(4 4)设置列的别名)设置列的别名(5 5)使用)使用DISTINCTDISTINCT消除结果表中完全重复的行消除结果表中完全重复的行 LCXZZU第第7 7章章 数据库对象管理数据库对象管理2.FROM子句 单单表表查查询询中中,源源表表只只有有一一个个,因因此此,FROMFROM子
3、子句句FROM FROM SELECT 查询查询单表查询单表查询3.WHERE3.WHERE子句子句 WHEREWHERE 查询体条件中没有多表连接条件,只有一个表的行筛选条件查询体条件中没有多表连接条件,只有一个表的行筛选条件 。中常用的运算符:比较运算符和逻辑运算符。中常用的运算符:比较运算符和逻辑运算符。#比比较较运运算算符符用用于于比比较较两两个个数数值值之之间间的的大大小小是是否否相相等等。常常用用的的比比较较运运算算符符有有:=(=(等等于于)、(大于大于)、(=(=(大于等于大于等于)、=(=(小小于等于于等于)、(不不等于等于)。LCXZZU第第7 7章章 数据库对象管理数据库
4、对象管理#逻辑运算符逻辑运算符主要有:主要有:范范围围比比较较运运算算符符:BETWEEN BETWEEN AND AND,NOT NOT BETWEEN ANDBETWEEN AND集合比较运算符:集合比较运算符:IN IN,NOT INNOT IN字符匹配运算符:字符匹配运算符:LIKELIKE,NOT LIKENOT LIKE空值比较运算符:空值比较运算符:IS NULLIS NULL,IS NOT NULLIS NOT NULL条件连接运算符:条件连接运算符:ANDAND,OROR,NOT NOT 下面举例说明下面举例说明LCXZZU第第7 7章章 数据库对象管理数据库对象管理4.GR
5、OUP BY 子句子句 有有时时我我们们需需要要把把FROM、WHERE子子句句产产生生的的表表按按某某种种原原则则分分成成若若干干组组,然然后再对每个组进行统计。后再对每个组进行统计。GROUP BY子句在子句在WHERE子句后边子句后边。一般形式为一般形式为:GROUP BY ,n 其其中中 是是分分组组的的依依据据。分分组组原原则则是是 的的列列值值相相同同,就就为为同同一一组组。当当有有多多个个 时时,则则先先按按第第一一个个列列值值分分组组,然然后后对对每每一一组组再再按按第第二个列值进行分组,依此类推。二个列值进行分组,依此类推。SELECT 查询查询单表查询单表查询5.HAVIN
6、G子句子句 HAVING子句指定子句指定GROUP BY生成的组表的选择条件。生成的组表的选择条件。它的一般形式为:它的一般形式为:HAVING HAVING子子句句在在GROUP BY子子句句之之后后,并并且且必必须须与与GROUP BY子子句句一一起起使用使用LCXZZU第第7 7章章 数据库对象管理数据库对象管理6.ORDER BY子句子句 指定整个指定整个SELECT语句的输出结果中记录的排序依据。语句的输出结果中记录的排序依据。ORDER BY排序子句的格式为:排序子句的格式为:ORDER BY ASC|DESC ,n 其其中中指指定定排排序序的的依依据据,ASC表表示示按按列列值值
7、升升序序方方式式排排序序,DESC表表示示按按列列值值降降序序方方式式排排序序。如如果果没没有有指指定定排排序序方方式式,则则默默认认的的排排序序方方式式为为升升序序排排序。序。在在ORDER BY子句中,可以指定多个用逗号分隔的列名。子句中,可以指定多个用逗号分隔的列名。SELECT 查询查询单表查询单表查询LCXZZU第第7 7章章 数据库对象管理数据库对象管理v多表查询指的是从多个源表中检索数据多表查询指的是从多个源表中检索数据。因此,多表查询时,。因此,多表查询时,FROM子句中的子句中的要给出所有源表表名,各个表名之间要用逗号分要给出所有源表表名,各个表名之间要用逗号分隔。隔。(1)
8、(1)多表查询的多表查询的FROMFROM子句格式子句格式 FROM 例例如如,若若一一个个查查询询用用到到三三个个表表,表表名名分分别别为为Students、Enrollment,Courses。则则FROM子句为:子句为:FROM Students,Enrollment,CoursesSELECT 查询查询多表连接查询多表连接查询LCXZZU第第7 7章章 数据库对象管理数据库对象管理(2)(2)多表查询中的多表查询中的SELECTSELECT子句子句不不同同的的是是:如如果果多多个个表表中中有有相相同同的的列列名名,则则需需要要用用:.来限定列是那个表的列。来限定列是那个表的列。SELE
9、CT 查询查询多表连接查询多表连接查询(3)(3)多表查询中的多表查询中的GROUP BYGROUP BY、HAVINGHAVING、ORDER BYORDER BY子句子句 与单表查询中的用法相同。与单表查询中的用法相同。不同的是:不同的是:如果列名有重复,则要用如果列名有重复,则要用 .来限定列是那个表的列。来限定列是那个表的列。LCXZZU第第7 7章章 数据库对象管理数据库对象管理(4)(4)多表查询中的多表查询中的WHEREWHERE子句子句与单表查询中的用法差别较大。与单表查询中的用法差别较大。多表查询中往往要有多表的连接条件,当然还有表的一个或多多表查询中往往要有多表的连接条件,
10、当然还有表的一个或多个行选择条件,两者用个行选择条件,两者用AND操作符组合。操作符组合。这里着重介绍这里着重介绍多表的连接条件多表的连接条件。按连接条件的不同,连接分为:内连接、外连接。外连接又按连接条件的不同,连接分为:内连接、外连接。外连接又分为左外连接、右外连接。分为左外连接、右外连接。SELECT 查询查询多表连接查询多表连接查询LCXZZU第第7 7章章 数据库对象管理数据库对象管理1.1.1.1.非相关子查询非相关子查询非相关子查询非相关子查询 非非非非相相相相关关关关子子子子查查查查询询询询,也也称称嵌嵌套套子子查查询询,可可以以多多层层嵌嵌套套。这这种种子子查查询询的的执执行
11、行不不依依赖赖于于外外查查询询。执执行行过过程程是是,先先执执行行子子查查询询,子子查查询询的的结结果果并并不不显显示示出出来,而是作为外查询的条件值,然后执行外查询。来,而是作为外查询的条件值,然后执行外查询。非非非非相相相相关关关关子子子子查查查查询询询询的的的的特特特特点点点点:子子查查询询只只执执行行一一次次,其其查查询询结结果果不不依依赖赖于于外外查查询询。而而外外查查询询的的查查询询条条件件依依赖赖于于子子查查询询的的结结果果,因因此此,也也可可以以说说外外查查询询的的查查询结果依赖于子查询的结果。询结果依赖于子查询的结果。非非相相关关子子查查询询的的结结果果可可以以是是一一行行或
12、或多多行行。返返回回一一行行的的非非相相关关子子查查询询通通常常用用在在比比较较运运算算符符之之后后;返返回回多多行行的的非非相相关关子子查查询询通通常常用用在在比比较较运运算算符符与与ANY、ALL组成的运算符、组成的运算符、IN、NOT IN之后。之后。SELECT 查询查询子查询子查询LCXZZU第第7 7章章 数据库对象管理数据库对象管理(1)(1)返回一行的非相关子查询返回一行的非相关子查询【例例】查询与查询与SueSue在同一个系学习的学生学号、姓名在同一个系学习的学生学号、姓名SELECT Sno,Sname FROM StudentsWHERE Sdept=(SELECT Sd
13、ept FROM Students WHERE Sname=Sue)LCXZZU第第7 7章章 数据库对象管理数据库对象管理(2)(2)返回多行的非相关子查询返回多行的非相关子查询如如果果子子查查询询返返回回多多个个值值,即即一一个个集集合合,则则外外查查询询条条件件中中不不能能直直接接用用比比较较运运算算符符中中的的任任意意一一个个,因因为为某某一一行行的的一一个个列列值值不不能能与与一一个个集集合合比比较较。必必须在比较运算符之后加须在比较运算符之后加ANY或或ALL关键字。使用格式为:关键字。使用格式为:列名列名比较符比较符ANY|ALLANY|ALL子查询子查询 ANY的的含含义义为为
14、:将将一一个个列列值值与与子子查查询询返返回回的的一一组组值值中中的的每每一一个个比比较较。若若在在某某次次比比较较中中结结果果为为TRUE,则则ANY测测试试返返回回TRUE,若若每每一一次次比比较较的的结结果均为果均为FALSE,则,则ANY测试返回测试返回FALSE。ALL的的含含义义为为:将将一一个个列列值值与与子子查查询询返返回回的的一一组组值值中中的的每每一一个个比比较较。若若每每一一次次比比较较中中结结果果均均为为TRUE,则则ALL测测试试返返回回TRUE,只只要要有有一一次次比比较较的结果为的结果为FALSE,则,则ALL测试返回测试返回FALSE。LCXZZU第第7 7章章
15、 数据库对象管理数据库对象管理【例例】查查询询其其他他系系中中比比计计算算机机系系所所有有学学生生年年龄龄都都小小的的学学生生基基本情况。本情况。SELECT*FROM StudentsWHERE SdeptComputer AND Sage ALL(SELECT Sage FROM Students WHERE Sdept=Computer)LCXZZU第第7 7章章 数据库对象管理数据库对象管理【例例】查查询询其其他他系系中中比比计计算算机机系系某某一一学学生生年年龄龄小小的的学生的基本情况。学生的基本情况。SELECT*FROM StudentsWHERE SdeptComputer A
16、ND Sage 80)LCXZZU第第7 7章章 数据库对象管理数据库对象管理【例例】查查询询选选修修了了课课程程名名为为English的的课课程程并并且且成成绩大于绩大于80 分的学生学号、姓名。分的学生学号、姓名。SELECT Sno,Sname FROM StudentsWHERE Sno IN(SELECT Sno FROM Enrollment WHERE Grade 80 AND Cno=(SELECT Cno FROM Courses WHERE Cname=English)LCXZZU第第7 7章章 数据库对象管理数据库对象管理2.2.相关子查询相关子查询 相关子查询,即子查询
17、的执行依赖于外查询。相关子查询执行过程是先相关子查询,即子查询的执行依赖于外查询。相关子查询执行过程是先外查询,后内查询,然后又外查询,再内查询,如此反复,直到外查询外查询,后内查询,然后又外查询,再内查询,如此反复,直到外查询处理完毕。处理完毕。使使用用EXSISTS 或或NOT EXSISTS关关键键字字来来表表达达相相关关子子查查询询。格格式式为为:EXISTS EXISTS表表示示存存在在量量词词,用用来来测测试试子子查查询询是是否否有有结结果果,如如果果子子查查询询的的结结果果集中非空集中非空(至少有一行至少有一行),则,则EXISTS条件为条件为TRUE,否则为,否则为FALSE。
18、由由于于EXISTS的的子子查查询询只只测测试试子子查查询询的的结结果果集集是是否否为为空空,因因此此,在在子子查查询询中中指指定定列列名名是是没没有有意意义义的的。所所以以在在有有EXISTS的的子子查查询询中中,其其列列名名序序列列通常都用通常都用“*”表示。表示。SELECT 查询查询子查询子查询LCXZZU第第7 7章章 数据库对象管理数据库对象管理【例例】查询选修了查询选修了C2课程的学生的学号和姓名。课程的学生的学号和姓名。SELECT Sno,Sname FROM StudentsWHERE EXISTS(SELECT*FROM EnrollmentWHERE Sno=Stude
19、nts.Sno AND Cno=C2)LCXZZU第第7 7章章 数据库对象管理数据库对象管理【例例】查询没有选修查询没有选修C2课程的学生的学号、姓名。课程的学生的学号、姓名。SELECT Sno,Sname FROM StudentsWHERE NOT EXISTS(SELECT*FROM EnrollmentWHERE Sno=Students.Sno AND Cno=C2)LCXZZU第第7 7章章 数据库对象管理数据库对象管理在在标标准准SQL中中,集集合合运运算算的的关关键键字字分分别别为为UNION(并并)、INTERSECT(交交)、MINUS(或或EXCEPT)(差差)。因因
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 数据库 对象 管理

限制150内