




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经典表关联和多表查询目的:1.掌握从多个表中查询数据的基本知识2.理解和学习加入3.掌握内部联系课程内容:1.多个表的数据查询1.1实际上,在数据库应用程序中,数据存在于多个关联的表中。基本上,只有一个表中没有数据。小型应用系统通常有十几个表,而大型系统通常有几千个表。1.2您通常需要做的是查询多个表中的数据。1.3 Oracle使用表连接进行多表查询1.4表格连接的基本条件:(1)两个表必须有公共字段(具有相同名称或不同名称段的字段)(2)在表中,该公共字段必须是主键1.5两个表中的公共字段是一个表中的主键和另一个表中的外键(FK)。1.6在双表关联中,公共字段为主键的表称为父表(主表)。外键表称为子表(详细表)。1.7研究环境管理计划和部门表之间的关系。1.8研究运行经验下的表格:类别_标签客户存货命令订单_项目产品描述产品_信息1.9多表查询的语法Select子句从表1别名、表2别名、查看别名、(选择子句)别名Where连接语句和其他条件语句按分类项目分类的组条款订单条款1.10任务:查询每个员工的编号、姓名、部门名称和部门位置选择empno、ename、dname、loc来自emp a,dept b其中a.DEPTNO=b.DEPTNO1.11多表查询原则:对于N个表连接,必须至少有N-1个相等的条件。每个表的公共字段必须出现一次。1.12在多表关联中,如果没有指定关联等式,将生成无效结果。它将每个关联表的记录与其他表的所有记录结合起来,生成笛卡尔乘积数据。测试:选择empno、ename、dname、loc来自emp a,dept b1.13测试运行经验用户查询公司库存信息,显示仓库名称、产品名称、库存数量和库存金额。选择c .仓库_名称,b .产品_名称,a .数量_现有量,a .数量_现有量*b .清单_价格来自库存a,产品_信息b,仓库c其中,仓库标识=仓库标识,产品标识=产品标识2.自我加入1.当多表关联使用一个表进行数据查询时,这种连接称为自连接。2.自联接的主要功能是查询除主键外的表中是否有重复记录。3.任务:查询员工表中姓名和职位相同的员工信息(编号、项目、职位和薪资)。选择a.empno,a.ename,a.job来自emp a,emp b其中a.empnob.empno和a.deptno=b.deptno和a.job=b.job4.日常生活中的数据录入错误(1)由于工作错误,一个数据被输入系统两次或多次。(2)通常,在自动数据导入期间会生成大量重复记录。5.子连接要求:自连接至少需要两个或更多的相等条件,一个用于相关,另一个用于表示重复数据。3.Outjoin :1.1连接表的公共字段值必须相同,并且没有所有不同值的记录。1.2外部联接是值一个表中公共字段的值可能与另一个表中公共字段的值不同。通常是空的。1.3任务:查询员工表,显示员工的项目、部门名称和部门位置,要求显示所有员工,即使员工没有部门。选择a.ename,b.dname,b.loc从左外连接部bon a.deptno=b.deptno注意:此任务不能使用正常的内部连接。因为一个员工没有部门,所以其部门号为空。常见任务,如信息系统中的文档、申请审批,当它第一次创建时,所有审批信息都为空.然而,一些批准已经完成。如果与审批者表相关联,则必须使用外部连接来显示所有应用程序。1.4外部连接语法:(1)左连接:取出左边表格的所有记录Select子句从表1在表1中。公共字段=表2。公共领域(2)右连接:取出右表中的所有记录Select子句从表1右外连接表2在表1中。公共字段=表2。公共领域(3)全连接(左右连接):记录左右两边的表格。Select子句从表1 fulloutpertjoin连接表2在表1中。公共字段=表2。公共领域选择a.empno,a.deptno,b.deptno,b.dname从左外连接部bon a.deptno=b.deptno选择a.empno,a.deptno,b.deptno,b.dname从emp a右外连接部bon a.deptno=b.deptno选择a.ename,b.dname,b.loc从emp a完全外部连接部门bon a.deptno=b.deptno选择a.dname,b.ename从a部门完全外部加入emp bon a.deptno=b.deptno通常,使用以下语法代替上述语法:选择a.dname,b.ename来自a部门,emp b其中a.deptno()=b.deptno -在正常情况下,()被放在关联表的主键的一侧以具有实际意义。如果没有()表,将获取所有记录。如果关联表中有记录对应,将显示关联值。如果没有关联值,将显示空值。但是,当使用()时,无法实现完全连接。因为()不能同时用于左右。选择a.ename,b.dname来自emp a,dept b其中a.deptno=b.deptno()无法传递以下语句:选择a.ename,b.dname来自emp a,dept b其中a.deptno()=b.deptno()1.5任务:4.自加入4.1在某些情况下,需要关联一个表。这种联系被称为自我联系。4.2自联想通常用于检查表中的记录是否重复。在信息管理系统中,有时会出现数据输入错误。同一数据已输入两次以上。除了主键,其他字段基本相同。也就是说,查询重复的记录。4.3可能出现的数据输入错误:(1)自动数据导入。新系统批量从旧系统导入数据,导致大量重复记录。(2)用户输入了错误的数据,并且输入了一个数据两次。(3)4.4与SCOTT的员工表EMP中一样,MGR字段是员工经理的员工编号。查询每位员工的经理姓名。你需要使用自我联想。选择a.ename,b.ename来自emp a,emp b其中a.mgr=b.empno4.5在emp表中查询同名员工的记录。选择a.empno,a.ename来自emp a,emp b其中a.empnob.empno和a.ename=b.ename4.6查询员工表emp的重复记录:选择a.empno,a.ename来自emp a,emp b其中a.empnob.empno和a.ename=b.ename和a.job=b.job和a.sal=b.sal4.7虚拟化将导致表上的大量操作,需要大量内存。其他用户将等待很长时间来操作自连接表。一般来说,最好不要使用自我联想。4.8表的自相关不同于内部相关。自相关需要至少2个或更多的相等条件。5.查询结果的联合(联合全部)-连接多个查询结果:-UNION合并多个结果集以删除重复记录-UNION ALL合并多个结果,而不删除重复记录表7-1:集合运算符操作员描述联合所有返回查询检索的所有行,包括重复的行。联盟返回查询检索的所有非重复行。横断返回由两个查询检索的行。负的当从第一个查询检索的行中减去第二个查询检索的行时,返回剩余的行。-union语法:挑选联盟挑选联盟挑选示例1:选择empno,ename来自电磁脉冲其中deptno=10联盟选择deptno,dname来自部门示例2:从emp中选择*其中deptno=10联盟从emp中选择*其中job=CLERK-union all语法挑选联合所有挑选联合所有挑选示例1:从emp中选择*其中deptno=10联合所有从emp中选择*其中job=CLERK6.查询结果的交集:-将多个查询结果集连接在一起,只保留相同的记录。删除不同的记录-语法:选择指令横断挑选横断挑选示例:从emp中选择*其中deptno=10横断从emp中选择*其中job=CLERK7.查询结果减:-合并多个结果集,记录它们的差异,并减去包含第二个结果集的记录。-语法:挑选负的挑选负的挑选示例:从emp中选择*其中deptno=10负的从emp中选择*其中job=CLERK注意:1.当甲骨文合并两个结果集时,甲骨文不关心合并运算符两边的列名。合并的结果集使用第一个结果集的列名作为新的列名。2.select语句必须具有相同的列。如果查询的结果集具有不同的列,则可以使用Oracle的内置表达式来合成相同数量的列。3.“选择”的相应列必须是同一类型。长度可以不同。4.在对输出进行排序时,Oracle使用第一个select语句的列名来给出查询结果,因为只有第一个select语句的列被用作查询结果,所以只有第一个select语句的列名出现在order by子句中。8.Oracle9i实现了在SQL Server 2000中选择前n位的SQL语句:Oracle9i中没有类似的select top n语句。但是,它提供了ROWNUM内置函数。可以实现前n位的查询语句。挑选从其中rownum=n当进行查询时,行序号由甲骨文自动计算。它随着记录集的变化而动态变化。ROWNUM返回首次从表中选择时返回的行的序列号。第1行的ROWNUM是1。如果要返回复杂查询的结果集的前n位,请将结果集作为中间结果集放入from,然后使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无人机考试题库和部份考题带答案(典型题)
- 小儿视网膜母细胞瘤E期护理查房
- 安丘市2024-2025学年八年级下学期语文期中模拟试卷
- 2016年7月国开电大法律事务专科《行政法与行政诉讼法》期末纸质考试试题及答案
- 七夕主题活动总结2025年
- 广东省2025年下半年电机装配工:基础理论试题
- 社区网格化管理课件
- 江苏省无锡金桥双语实验学校2024-2025学年九年级下学期期中考试英语试卷(含答案)
- Unit 2 School life单元测试卷(含解析)译林版(2024)八年级英语上册
- 岩石基坑开槽合同范本
- DB32-T 4849-2024 压力管道注册登记编码规则
- 工程造价预算书
- 六年级数学下册期末试卷及答案【可打印】
- 湖北省高中名校联盟2025届高三上学期8月第一次联考 化学试题(解析版)
- 2024义务教育语文新课标课程标准2022版考试题库附含答案
- 电子学会2024年3月青少年软件编程Python等级考试试卷二级真题(含答案)
- 内蒙古自治区赤峰市红山区2023-2024学年八年级下学期7月期末历史试题
- 弱电安全技术交底【范本模板】
- 员工荣誉证书模板
- 无人机应急通信
- 生物化学之蛋白质化学(唐炳华)
评论
0/150
提交评论