用关系数据库标准语言SQL实现数据查询(多表查询)的应用研究_第1页
用关系数据库标准语言SQL实现数据查询(多表查询)的应用研究_第2页
用关系数据库标准语言SQL实现数据查询(多表查询)的应用研究_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用关系数据库标准语言SQL实现数据查询多表查询的应用研究用关系数据库标准语言SQL实现数据查询多表查询的应用研究关系数据库是基于关系模型作为数据的组织方式的,它借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联络均用关系模型来表示。它是由埃德加科德于1970年首先提出的,并配合科德十二定律。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。1数据查询所谓数据查询数据检索就是从关系数据库的数据表中找出用户所需的数据,只要表关系中存在,那么可以通过各

2、种各样的方式将它找出来,SQL的查询功能就是实现这一功能的。本文主要研究讨论多表查询。在实际应用中,由于一个关系数据库根据需求分析后得到很多表,而且表与表之间互相存在一对一,一对多或是多对多的表间关系,这些表中的数据往往互相有较为严密的复杂联络,在这种情况下,要查找用户所需的数据时就得用多表查询才能实现用户的查询目的和要求,比方在仓库数据库中分别有四张表,仓库表,职工表,订单表和供给商表,这四个表两两存在一对多的表间关系,一个仓库可以有多名职工,一名职工只能属于一个仓库;一名职工可以经手多笔订单,一笔订单只能由一名职工经手;一家供给商可以完成多表订单,一笔订单只能由一家供给商完成,在实际应用中

3、,假如要根据仓库表中的数据作为条件查询检索供给商表中的数据时,必须得用基于多表的连接查询才能完成。1.1简单连接查询。简单连接查询的SQL语句格式可总结如下。Selet查找数据所在的字段名,字段间用逗号隔开,假如是一个表的所有字段,那么用*号表示,但必须通过表名.*的方式做限定是哪个表的所有字段,假如不做限定,直接一个*,那么表示要查找的是fr后面跟的所有表的所有字段fr至少两张或两张以上的表名,这些表之间往往存在着一对一或是一对多,或是多对多的表间关系的注:连接条件是两个表的主外键相等,主表表名.主键=子表表名.外键如:仓库表.仓库号=职工表.仓库号。假如fr后面跟两张表,那么是两个表的简单

4、连接查询,有一个连接条件,假如fr后面跟三张表,那么有两个连接条件,假如fr后面跟四张表,那么有三个连接条件,依此类推。而且查找数据的条件和连接条件必须用and连接,连接条件之间也用and连接。例如:在仓库管理数据库的四张表中检索出回民所在仓库的仓库信息。对应的SQL语句为:selet仓库表.*fr仓库表,职工表here民族=回and仓库表.仓库号=职工表.仓库号。从这个简单连接查询实例来看。在基于多表的简单连接查询中,第一先确定最终要查询的数据所在的字段来自于几张表的几个字段,查找数据的条件涉及到几个表的几个字段,其次根据表间关系确定查询涉及到几张表,然后确定连接条件。且here是必选项。1

5、.2嵌套查询。嵌套查询的意思是,一个查询语句selet-fr-here块可以嵌套在另外一个查询块的here子句中,称为嵌套查询。其中外层查询也称为父查询或主查询。内层查询也称子查询或从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询需要内层查询的结果来支持,但内层查询不需要外层查询的支持。例如:Selet城市fr仓库表here仓库号insele本文由论文联盟搜集整理t仓库号fr职工表here工资=4532。在这类嵌套查询中,带有IN或NTIN谓词的嵌套查询在实际应用中用的最多,这里的IN相当于集合运算符。本文在阐述嵌套查询中就以带有IN或NTIN谓词的嵌套查询进展阐述,带有比拟

6、运算符的子查询、带有ANY或ALL谓词的子查询、带有EXISTS谓词的子查询就再不做详细阐述了。1.3超连接查询。超连接查询分为内连接和外连接,外连接又分为左外连接,右外连接和全外连接。假如表中不匹配的数据不需要出如今查询结果中,那么用内连接。假如在查询结果中两个表中不匹配的数据都要出如今查询结果中的话,那么用全外连接,其对应表中对应字段用NULL表示。其SQL语句格式为以基于两张表的超连接为主:Selet跟简单连接查询的要求一样fr主表表名n连接条件here查找数据的条件。例如以全外连接为例:selet仓库.仓库号,城市,面积,职工号,工资fr仓库表fulljin职工表n仓库表.仓库号=职工

7、表.仓库号JIN连接格式在连接多个表时的书写方法要特别注意,在这种格式中JIN的顺序和N的顺序正好是相反的。2三种多表查询的特点及规律在以上研究的三种多表查询中,基于多表的简单连接查询中,要查询的数据所在的字段可以是来自于一张表的字段,也可以是来自于多张表的字段,而查找数据的条件可以来自于一张表的字段,也可以来自于多张表的字段,即使没有查找数据的条件,但连接条件必须得有,在其SQL语句格式中,here是必选项。在嵌套查询中,通过实际应用可以得出,嵌套查询不管由几个查询语句块组成,它们都是基于单表的简单查询构成的,而且最内层的查询结果就是其外层查询的条件,没有内层查询的结果,就不可能得到外层查询的结果,执行顺序都是由内往外执行的。在超连接查询中,这种查询往往是在有关系的表中出现了所谓的不匹配数据时,根据用户的不同需要而使用的查询,到底选用哪一种主要取决于查询结果中要不要出现不匹配的数据和出现哪个表中的不匹配数据而定。假如要查找的数据来自于多张表的多个字段,那么可用连接查询和内连接查询,查询结果一样。假如要查找的数据来自于一张表的字段,而条件发生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论