数据库复杂查询.doc

数据库复杂查询.doc

ID:53874909

大小:127.50 KB

页数:22页

时间:2020-04-10

数据库复杂查询.doc_第1页
数据库复杂查询.doc_第2页
数据库复杂查询.doc_第3页
数据库复杂查询.doc_第4页
数据库复杂查询.doc_第5页
资源描述:

《数据库复杂查询.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、复杂查询复杂查询通常指从两张或两张以上的表进行的连接查询和相关联的子查询一.Oracle中表的连接1.笛卡尔积:如果From子句指定了两张表,则这两张表就合并在一起进行查询。两张表的合并的算法叫做笛卡尔积(与矩阵相乘类似)。笛卡尔积的算法是,将表A的第一行与表B的所有行分别合并,得到与表B的行数相等的一系列新行;然后将表A的第二行与表B的所有行分别合并,得到与表B的行数相等的一系列新行,。。。。。。依次类推,直至将表A的最后一行与表B的所有行分别合并,得到与表B的行数相等的一系列新行。故最终结果集的列数为两个表的列数之和,其行

2、数为两张表的行数的乘积。2.实际应用中表的连接实际应用中表的连接需要加上限制条件,对结果集进行某种限制。其中等值连接使用最多。连接通常用于不同表之间的连接,但是也可以用于同一表之间的连接。2.1.Oracle用于不同表之间的等值连接语法:Selectdept.*,mens.*Fromdept,mensWheredept.部门号=mens.所在部门[And部门号=’01’]2.2.Oracle用于同一张表之间的等值连接语法除了连接两个或多个不同的表,连接操作也可用于连接单个的表(即连接自身),此时必须使用别名来区分同一个表出现的

3、情况。例如:selectt.姓名,t1.性别,t2.所在部门fromment1,ment2wheret1.所在部门=t2.所在部门又例如:学校开运动会,要求各系派出男女同学组成混合选手,写一查询语句,找出所有可能的组合2.3.Oracle中的外连接一个外连接返回两种记录:A.满足连接条件的那些记录B.来自其中一个表的纪录,这些记录因不满足条件而不能与另一个表的记录连接Oracle中的外连接包含两种类型:左外连接和右外连接.查询所有女生所在的系,同时返回那些没有女生的系的信息.Select姓名,性别,dept.系名Fromstu

4、dent,deptWhere性别=’女’andstudent.系号(+)=dept.系号注意:连接符号(+)放在连接条件等号的哪一边,其含义是不同的.例如,上述语句改为Select姓名,性别,dept.系名Fromstudent,deptWhere性别=’女’andstudent.系号=(+)dept.系号则输出结果是女生所在系的信息,以及目前暂时没有系的女生信息.例1:获取与至少一个其它部门拥有相同所在地的所有部门的全部细节。selectt1.*fromdepartmentt1,departmentt2wheret1.loc

5、ation=t2.locationandt1.dept_no!=t2.dept_no例2:显示居住在同一城市的所有员工--selectt1.*fromemployeet1,employeet2wheret1.domicil=t2.domicilandt1.emp_no!=t2.emp_no--selectdomicil,count(*)fromemployeet1groupbydomicilhavingcount(*)>1selectt1.*fromemployeet1wheret1.domicilin(selectt2.do

6、micilfromemployeet2wheret1.emp_no!=t2.emp_no)selectt1.*fromemployeet1whereexists(selectt2.domicilfromemployeet2wheret1.domicil=t2.domicilandt1.emp_no!=t2.emp_no)查询物理课不及格的学生名单,输出其学号,姓名及成绩(三表连结查询)selectstudent.xh,student.xm,t2.成绩Fromstudent,课程,成绩t2Where课程.km=’物理’andt2

7、.成绩<60and课程.kh=成绩.khAnd成绩.xh=student.xh2.内连接是指满足连接条件的连接操作,即在内连接的结果集中都是满足条件的记录。语法:Selectcolumn_ListFromtable_Name1innerjointable_Name2Onjoin_Condition例如:Selectpi.province,pi.shortName,ci.city,ci.tele,ci.postFromprovinceInfopiInnerjoincityInfociOnpi.provinceID=ci.prov

8、inceID该语句与下列语句等价,但上面的语法更正式。Selectpi.province,pi.shortName,ci.city,ci.tele,ci.postFromprovinceInfopi,cityInfociWherepi.provinceID=ci.provin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。