实验五 连接查询、嵌套查询与联合查询 实验指导

实验五 连接查询、嵌套查询与联合查询 实验指导

ID:38698980

大小:76.00 KB

页数:7页

时间:2019-06-17

实验五 连接查询、嵌套查询与联合查询 实验指导_第1页
实验五 连接查询、嵌套查询与联合查询 实验指导_第2页
实验五 连接查询、嵌套查询与联合查询 实验指导_第3页
实验五 连接查询、嵌套查询与联合查询 实验指导_第4页
实验五 连接查询、嵌套查询与联合查询 实验指导_第5页
资源描述:

《实验五 连接查询、嵌套查询与联合查询 实验指导》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验五连接查询、嵌套查询与联合查询实验指导一、连接查询前面的查询都是在单个表中进行的查询。在数据库的实际编程应用中,往往需要查询许多数据,有可能这些数据出现在两个或两个以上的表中,而我们希望这些数据出现在一个结果集中,这就要用到连接查询。在SQLServer中,可以使用两种语法形式:一种是ANSI连接语法形式,连接写在FROM子句中,使用JOIN…ON关键字。另一种是早期SQLSERVER连接语法形式,连接写在WHERE子句中。在SQLSERER中可以设定兼容级别为80及以下(在对象资源管理器中展开相应的数据库,右

2、击,选择“属性”,在弹出的“数据库属性”对话框中选择“选项”,有兼容级别设置)才能使用这种形式。在SQLServer2008中推荐使用ANSI形式的连接。两种连接的语法格式如下。SQLServer连接的语法格式:SELECT<查询列表>FROM表1,表2WHERE表1.列1<比较运算符>表2.列2其中比较运算符可以是:=、>、<、>=、<=、<>等。说明:l连接的列(属性)名可不相同,但数据类型必须兼容。l当<比较运算符>是“=”时,称等值连接,否则为非等值连接。ANSI连接的语法形式如下:SELECT表名.列名[

3、,…n]FROM{表名1[连接类型]JOIN表名2ON连接条件}[,…n]WHERE查询条件连接查询包括以下几种类型。1.内连接从两个或两个以上的表的组合中,挑选出符合连接条件的数据。如果数据无法满足连接条件,则将其丢弃。通常称这种方法为内部连接INNERJOIN。在内部连接中,参与连接的表的地位是平等的。它有两种形式:等值连接和自然连接。等值连接会产生冗余列,因为它将连接条件中的共享列显示两次。而自然连接则清除了等值连接产生的冗余列,因此我们所说的内连接在没有特殊说明时都指的是自然连接。例1查询所有学生的选课信息

4、(包含学号、姓名、课程编号)。用SQLServer形式进行连接:7SELECTstudent.sno,sname,cnoFROMstudent,scWHEREstudent.sno=sc.sno用ANSI形式进行连接:SELECTstudent.sno,sname,cnoFROMstudentINNERJOINscONstudent.sno=sc.sno2.外连接在使用内连接查询时,只包含两表中都满足连接条件的行,而外连接会把某些不满足条件的行显示出来。在外部连接中,参与连接的表有主从之分。以主表的每行数据去匹配从

5、表的数据列,符合连接条件的数据将直接返回到结果集中。对那些不符合连接条件的列将被填上NULL值后再返回到结果集中。对BIT类型的列,由于BIT数据类型不允许NULL值,因此将会被填上0值再返回到结果中。外部连接分为左外连接LEFTOUTERJOIN、右外连接RIGHTOUTERJOIN和全连接三种。以主表所在的方向区分外部连接。(1)左外连接。左外连接指主表在左边,即在连接两表时,保留左表中的不匹配行,右表的相应行用NULL或0值。例2查询每个学生及其选修课程的情况包括没有选修课程的学生。SELECTStudent

6、.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudentLEFTOUTERJOINSCON(Student.Sno=SC.Sno)(2)右外连接。右外连接指主表在右边,即在连接两表时,保留右表中的不匹配行,左表的相应行用NULL或0值。(3)全连接。在连接两表时,保留两表中的不匹配行。全连接的语法只有ANSI形式一种,使用FULLOUTERJOIN关键字。全连接生成的结果记录集将会很多。一般不大使用,就不举例了。3.无限制连接也称为交叉连接,它可能会产生一个庞大的结果集,因为其

7、中包含了所连接的表中所有行的全部组合。如在某连接中,一个表的记录数是5,另一个表的记录数是6,那么结果集就有5*6(30)条记录。交叉连接在ANSI形式中使用CROSSJOIN关键字。4.自身连接连接除了可以在多个不同的表中进行外,也可以在同一个表中进行连接,即自身连接。自身连接可以看作一张表的两个副本之间进行的连接。在自连接中,必须为表指定两个别名,使之在逻辑上成为两张表。7例3查询每一门课的间接先修课(即先修课的先修课)。SELECTFIRST.Cno,SECOND.CpnoFROMCourseFIRSTINN

8、ERJOINCourseSECONDONFIRST.Cpno=SECOND.Cno二、嵌套查询子查询指在一个外层查询中包含另一个内层查询,即在一个SELECT语句中的WHERE子句中,包含有另一个SELECT语句,或者将一个SELECT语句作为另一个SELECT语句的新增列。外层的查询成为主查询,WHERE子句中包含的SELECT语句被称为子查询。一般将子查

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

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

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