资源描述:
《oracle10g经典实战第4章 数据库的查询和视图.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第4章数据库的查询和视图4.1连接、选择和投影Oracle是一个关系数据库管理系统,关系数据库建立在关系模型基础之上,具有严格的数学理论基础。关系数据库对数据的操作除了包括集合代数的并、差等运算之外,还定义了一组专门的关系运算:连接、选择和投影,关系运算的特点是运算的对象和结果都是表。4.1.1选择选择(Selection),简单的说就是通过一定的条件把自己所需要的数据检索出来。选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表,作为运算结果。4.1.1选择【例4.1】学生情况表如表4.1所示。若要在学生情况表中找出
2、学生表中性别为女且平均成绩在80分以上的行形成一个新表,该选择运算的结果如表4.2所示。表4.1学生表表4.2查询后的结果4.1.2投影投影(Projection)也是单目运算。投影就是选择表中指定的列,这样在查询结果中只显示指定数据列,减少了显示的数据量也提高查询的性能。【例4.2】若在表4.1中对“姓名”和“平均成绩”投影,该查询得到如表4.3所示的新表。表4.3投影后的新表4.1.3连接连接(JOIN)是把两个表中的行按照给定的条件进行拼接而形成新表。【例4.3】若表A和B分别如表4.4和表4.5所示,则连接后结果如表4.6所示。表4.4A表表4.5
3、B表表4.6连接后的表4.1.3连接【例4.4】若表A和表B分别如表4.7和表4.8所示,自然连接后的新表C如表4.9所示。表4.7A表表4.8B表表4.9C表4.2数据库的查询使用数据库和表的主要目的是存储数据以便在需要时进行检索、统计或组织输出,通过PL/SQL的查询可以从表或视图中迅速方便地检索数据。PL/SQL的SELECT语句可以实现对表的选择、投影及连接操作,其功能十分强大。下面介绍SELECT语句,它是PL/SQL的核心。SELECT语句很复杂,主要的子句如下:语法格式:SELECTselect_list/*指定要选择的列或行及其限定*/FR
4、OMtable_source/*FROM子句,指定表或视图*/[WHEREsearch_condition]/*WHERE子句,指定查询条件*/[GROUPBYgroup_by_expression]/*GROUPBY子句,指定分组表达式*/[HAVINGsearch_condition]/*HAVING子句,指定分组统计条件*/[ORDERBYorder_expression[ASC
5、DESC]]/*ORDER子句,指定排序表达式和顺序*/4.2.1选择列选择表中的列组成结果表,通过SELECT语句的SELECT子句来表示。语法格式:SELECT[ALL
6、
7、DISTINCT]其中select_list指出了结果的形式,select_list的主要格式为:{*/*选择当前表或视图的所有列*/
8、{table_name
9、view_name
10、table_alias}.*/*选择指定的表或视图的所有列*/
11、{colume_name
12、expression}[[AS]column_alias]/*选择指定的列*/
13、column_alias=expression/*选择指定列并更改列标题*/}[,…n]1.选择一个表中指定的列使用SELECT语句选择一个表中的某些列,各列名之间要以逗号分隔。语法格
14、式:SELECTcolumn_name[,column_name…]FROMtable_nameWHEREsearch_condition其功能是在FROM子句指定的表中检索符合search_condition条件的列。4.2.1选择列【例4.5】查询XSCJ数据库的XS表中各个同学的XM、XH和ZXF。SELECTXH,XM,ZXFFROMXS;执行结果如图4.1所示。图4.1在XS表中选择列4.2.1选择列【例4.6】查询XS表中ZXF大于45同学的XH、XM和ZXF。SELECTXH,XM,ZXFFROMXSWHEREZXF>45;当在SELECT语
15、句指定列的位置上使用*号时,表示选择表的所有列。【例4.7】查询XS表中的所有列。SELECT*FROMXS;该语句等价于语句:SELECTXH,XM,ZYM,XB,CSSJ,ZXF,BZFROMXS;其执行后将列出XS表中的所有数据。4.2.1选择列2.修改查询结果中的列标题当希望查询结果中的某些列或所有列显示时使用自己选择的列标题时,可以在列名之后使用AS子句来更改查询结果的列标题名,其中column_alias是指定的列标题。【例4.8】查询XS表中计算机同学的XH、XM和ZXF,结果中各列的标题分别指定为学号、姓名和总学分。SELECTXHAS学号
16、,XMAS姓名,ZXFAS总学分FROMXSWHEREZYM=’计