《多表查询》word版

《多表查询》word版

ID:33194814

大小:46.00 KB

页数:4页

时间:2019-02-22

《多表查询》word版_第1页
《多表查询》word版_第2页
《多表查询》word版_第3页
《多表查询》word版_第4页
资源描述:

《《多表查询》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、多表查询1.多表连接使用关系数据库的主要优点是可以通过构造多个表中的数据来消除数据冗余。在数据库设计阶段,由于一致性、方便性及性能的要求,表中的一列数必须有限制,而不能将所有数据都存储在一个表中,因此,许多信息将分散存储在不同的表中,以防止数据冗余、更新复杂等问题的产生。要从多个表中查询数据,就需要使用连接操作,连接操作给用户带来很大的灵活性,它们可以在任何时候增加新的数据类型,而能够从多个表中选择和操作数据。(1)笛卡尔乘积查询笛卡尔乘积就是从多个表中取数据时,在WHERE子句中没有指定多个表的公共关

2、系。笛卡尔乘积查询实际上就是在两个表之间的交叉连接实现查询的方式,此连接不带WHERE子句,返回到结果集合中的数据行数等于一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例如:A表中有M条记录,B表中有N条记录,其笛卡尔乘积是M×N条记录。在关系数据库中,表就是一个联合,当从两个(或多个)表中查询数据时,如果没有指定条件,那么这种查询结果就是笛卡尔乘积。例1将学生课程数据库中的表Student和表SC进行笛卡尔乘积查询(即交叉查询)。Select*fromStudent,SC或Sel

3、ectStudent.*,SC.*fromStudentCrossJoinSC(2)通过WHERE子句连接多表在连接中,可以实现3个表或者多个表的连接。通过WHERE子句实现多表连接,首先在FROM子句中连接多个表的名称,然后将任意两个表的连接条件分别写在WHERE子句后即可。语法格式如下:Select字段名表From表1,表2,表3…Where表1.字段=表2.字段And表2.字段=表3.字段and…说明:在交叉连接查询语句中使用了WHERE子句时,返回的结果集是被连接的两个基表所有行的笛卡尔积中满足

4、WHERE子句条件搜索到的行数的所有行数。例2将学生课程数据库中的表Student和表SC进行按照WHERE子句的条件进行笛卡尔乘积查询(即交叉查询)。Select*fromStudent,SCwhereStudent.Sno=SC.Sno或SelectStudent.*,SC.*fromStudentCrossJoinSCwhereStudent.Sno=SC.Sno(3)通过FROM子句连接多表FROM子句连接多个表就是内连接的扩展。在FROM子句中连接多个表的语法如下:Select字段名表From

5、表1Join表2Join表3…ON表3.字段=表2.字段ON表2.字段=表1.字段and…注意:在FROM子句中连接多个表时,FROM子句中所列出表的顺序(如:表1、表2和表3),一定要与ON语句后所列表的顺序相反(例如:表3、表2和表1),否则查询语句将不会执行。例3将学生课程数据库中的表Student、表SC和Course实现这3个表的连接查询,查询3个表中学号相同的学生选修课的有关信息和学生有关信息。SelectStudent.*,SC.*,Course.*fromStudentJoinSCJoi

6、nCourseONCourse.Cno=SC.CnoONSC.Sno=Student.Sno2.内连接内连接就是使用比较运算符进行表与表之间列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。内连接可以用来组合两个或者多个表中的数据。一般用INNERJOIN或JOIN关键字来指定内连接,它是连接查询默认的连接方式。内连接的语法格式如下:SELECTselect_listFROM表名1INNERJOIN表名2[ONjoin_condition][WHEREsearch_conditions][ORD

7、ERBYorder_expression]在内连接中,根据使用的比较方式不同,可以将内连接分为以下3种。①等值连接:在连接条件中使用等于运算符比较被连接的列。②不等值连接:在连接条件中使用除等于运算符外的其他比较运算符比较被连接的列。③自然连接:它是等值连接的一种特殊情况,用来把目标中重复的属性列去掉。使用Join运算时,应当注意以下两点:①在Join运算中,可以连接任何两个相同类型的数值列。如果被连接列不是数值型的,则它们必须具有相同的数据类型,并且包含相同类型的数据,但是列名称不必相同。②如果两个来

8、源表中包含名称相同的列,用SELECT子句选取这些列时就应当冠以表名,否则会出现错误提示信息:列名“XXXXXX”不明确。(1)等值连接等值连接就是在连接条件中使用比较运算符等于号(=)来比较连接列的列值,其查询结果中将列出被连接表中的所有列,并且包括重复列。等值连接用于返回所有连接表中具有匹配值的行,而排除所有其他的行。等值连接查询有两种表示方法。例4使用等值连接从两个表中检索数据。在学生课程数据库中,从表Student、表SC检索学生的

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

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

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