Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx

Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx

ID:51777070

大小:596.85 KB

页数:62页

时间:2020-03-07

Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx_第1页
Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx_第2页
Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx_第3页
Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx_第4页
Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx_第5页
资源描述:

《Access数据库应用与VBA编程 教学课件 作者 黎升洪 03 Access中SQL查询语言2.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.2.3多表自然连接查询1.多表自然连接查询的工作原理 所谓多表查询是指FROM子句包括多个数据表。为简化问题,我们先看看两个表查询的问题。两表自然连接查询工作原理【例3-33】select* from班级表,学生表;结果非常庞大,有17个字段,180条记录。这是因为如果SELECT从两表检索结果,且不带WHERE子句时,首先从前一个表(此处为“班级表”)中取一条记录然后与后面的表(此处为“学生表”)中的每条记录进行逐一匹配,结果存在组合爆炸的问题,这会产生很多无用的垃圾数据。两表自然连接查询工作原理2二个表之间自然连接(内连)与主键、外键约束的关系:SELECT从两表检索结

2、果时,要得到有效的数据必须带WHERE子句,通常二个表之间必须有主外键的约束,即二个表中有共同的字段(或字段集),这个字段或字段集在一个表中为主键,在另一个表中为外键。如果二表是多对多的关系,也可以转化为二个一对多的关系。两表自然连接查询【例3-34】【例3-34】将学生表和课程表进行自然连接,求结果集。select* from班级表innerjoin学生表on班级表.班号=学生表.班号;上述SELECT语句的等价SQL语句如下:select*; from班级表,学生表where班级表.班号=学生表.班号;两表自然连接查询【例3-34】2例3-34中的子句“from班级表inn

3、erjoin学生表on班级表.班号=学生表.班号”(或“from班级表,学生表where班级表.班号=学生表.班号”)表示的是“班级表”和“学生表”进行自然连接操作。自然连接操作是数据库SQL检索语句中最常用的操作。要求参与自然连接操作的两个关系表间存在一对多的约束,即两个关系表间存在外键约束,这样的自然连接才有意义。两表自然连接查询与数据库模式关系仅教学管理数据库模式中存在主外键约束的将两个表可以进行自然连接查询两表自然连接查询规则一对多的自然连接的结果是一个关系表,关系表的结果为:横向上(字段数)为两表的字段相叠加;纵向上(记录数)以多表的记录为最终结果。以“学生表”与“成

4、绩表”的关联为例,由于“成绩表”中有60条记录,故使用SELECT中的子句“WHERE学生表.学号=成绩表.学号”表示将两表进行自然连接操作,其结果中字段为13个(3个在班级表,11个在学生表),记录为60条。两表自然连接查询【例3-35】【例3-35】不关心课程,求成绩在85分以上人的学号、姓名和成绩。select学生表.学号,姓名,成绩from学生表,成绩表where学生表.学号=成绩表.学号and成绩>=85;两表自然连接查询---别名例子为简化SELECT的书写,SQL中允许使用表的别名,表别名的含义是给表取个小名。例如上例中我们可以写成如下SELECT语句。selec

5、ta.学号,姓名,成绩from学生表ainnerjoin成绩表b ona.学号=b.学号where成绩>=85;这里a表示是数据表“学生表”的别名,b是数据表“成绩表”的别名。多表自然连接查询【例3-36】将两表的自然连接推广到多表【例3-36】将“学生表”、“成绩表”和“课程表”进行自然连接,求结果。select* from(学生表innerjoin成绩表on学生表.学号=成绩表.学号) innerjoin课程表on课程表.课程号=成绩表.课程号;本例中你也可以理解为先进行“课程表”与“成绩表”的自然连接,然后再用得到的关系与“学生表”进行自然连接。多表自然连接查询【例3-3

6、6】2例3-36的另一种书写方式为:select* from学生表,成绩表,课程表where学生表.学号=成绩表.学号and课程表.课程号=成绩表.课程号;多表自然连接查询一般方法通过例子我们知道,我们必须首先知道数据库模式,才能编写正确的SQL语句。数据库导航概念就是根据给出的已知条件,求需要的数据。这里已知条件是在一个表中的某个字段取值,所求数据是我们感兴趣的字段。那么我们要从已知的数据表出发,通过表间的关联到达目的表,最后根据题目要求筛选相关的字段和记录。多表的自然连接查询【例3-37】【例3-37】求“杨小建”的成绩表。根据给出的数据库模式,我们知道已知条件为“学生表”

7、的“姓名”字段,其内容等于“杨宏俊”,待求的是“课程表”中的“课程号、课程名”和“成绩表”中的“成绩”。这样我们使用三表的自然连接。多表的自然连接查询【例3-37】select课程表.课程号,课程名,成绩from(学生表innerjoin成绩表on学生表.学号=成绩表.学号) innerjoin课程表on课程表.课程号=成绩表.课程号where姓名=“杨小建”;多表的自然连接查询【例3-38】【例3-38】求会计学081班的所有成绩单。分析:已知条件为“班级表”中的“专业名称”,待求为“学生

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

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

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