欢迎来到天天文库
浏览记录
ID:9666223
大小:49.00 KB
页数:2页
时间:2018-05-05
《用关系数据库标准语言sql实现数据查询(多表查询)的应用研究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、用关系数据库标准语言SQL实现数据查询(多表查询)的应用研究用关系数据库标准语言SQL实现数据查询(多表查询)的应用研究关系数据库是基于关系模型作为数据的组织方式的,它借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。它是由埃德加科德于1970年首先提出的,并配合科德十二定律。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 1数据查询 所谓数据查询(数据检索)就是从关系数据库的数据表中找出用户
2、所需的数据,只要表(关系)中存在,则可以通过各种各样的方式将它找出来,SQL的查询功能就是实现这一功能的。本文主要研究讨论多表查询。 在实际应用中,由于一个关系数据库根据需求分析后得到很多表,而且表与表之间互相存在一对一,一对多或是多对多的表间关系,这些表中的数据往往互相有较为紧密的复杂联系,在这种情况下,要查找用户所需的数据时就得用多表查询才能实现用户的查询目的和要求,比如在仓库数据库中分别有四张表,仓库表,职工表,订单表和供应商表,这四个表两两存在一对多的表间关系,一个仓库可以有多名职工,一名职工只能属于一个仓库;一名职工可以经手多笔订单,一笔订单只能由一名职工经
3、手;一家供应商可以完成多表订单,一笔订单只能由一家供应商完成,在实际应用中,如果要根据仓库表中的数据作为条件查询检索供应商表中的数据时,必须得用基于多表的连接查询才能完成。 1.1简单连接查询。简单连接查询的SQL语句格式可总结如下。Select<查找数据所在的字段名,字段间用逗号隔开,如果是一个表的所有字段,则用*号表示,但必须通过表名.*的方式做限定是哪个表的所有字段,如果不做限定,直接一个*,则表示要查找的是from后面跟的所有表的所有字段>from<至少两张或两张以上的表名,这些表之间往往存在着一对一或是一对多,或是多对多的表间关系的>
4、>注:连接条件是两个表的主外键相等,主表表名.主键=子表表名.外键如:仓库表.仓库号=职工表.仓库号。 如果from后面跟两张表,则是两个表的简单连接查询,有一个连接条件,如果from后面跟三张表,则有两个连接条件,如果from后面跟四张表,则有三个连接条件,依此类推。而且查找数据的条件和连接条件必须用and连接,连接条件之间也用and连接。 示例:在仓库管理数据库的四张表中检索出回民所在仓库的仓库信息。对应的SQL语句为:select仓库表.*from仓库表,职工表-仓库表职工表<主表表名>on<连接条件>[仓库表fulljoin职工
5、表on仓库表.仓库号=职工表.仓库号JOIN连接格式在连接多个表时的书写方法要特别注意,在这种格式中JOIN的顺序和ON的顺序正好是相反的。 2三种多表查询的特点及规律 在以上研究的三种多表查询中,基于多表的简单连接查询中,要查询的数据所在的字段可以是来自于一张表的字段,也可以是来自于多张表的字段,而查找数据的条件可以来自于一张表的字段,也可以来自于多张表的字段,即使没有查找数据的条件,但连接条件必须得有,在其SQL语句格式中,where是必选项。 在嵌套查询中,通过实际应用可以得出,嵌套查询不管由几个查询语句块组成,它们都是基于单表的简单查询构成的,而且最内层的
6、查询结果就是其外层查询的条件,没有内层查询的结果,就不可能得到外层查询的结果,执行顺序都是由内往外执行的。 在超连接查询中,这种查询往往是在有关系的表中出现了所谓的不匹配数据时,根据用户的不同需要而使用的查询,到底选用哪一种主要取决于查询结果中要不要出现不匹配的数据和出现哪个表中的不匹配数据而定。 如果要查找的数据来自于多张表的多个字段,则可用连接查询和内连接查询,查询结果相同。如果要查找的数据来自于一张表的字段,而条件发生在不同的表中,则可用连接查询,嵌套查询和内连接查询,查询结果相同。 3结束语 SQL的查询功能,尤其是多表查询有很大的灵活性,在实际应用中要
7、视具体情况来决定用哪一类,这需要在实践中摸索总结,只有这样才能对SQL语句的查询功能运用的得心应手。
此文档下载收益归作者所有