4select_多表查询_子查询.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4select_多表查询_子查询

第4章 SELECT查询 第二部分 学习目标 掌握基本的多表查询 掌握内连接、外连接、交叉连接和联合查询 了解自连接的使用 掌握多行和单值子查询的使用 了解嵌套子查询的使用 4.2 多表查询 连接分类 按连接条件的不同,连接分为: 内连接(INNER JOIN):使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。 根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等值连接三种。 外连接:又分为左外连接、右外连接和完全连接。 SQL Server 2005默认情况下为内连接。 3. 交叉连接 交叉连接:将生成来自这两个表的各行的所有可能组合。 不带where子句时,返回到结果集中的行数等于第一个表中符合查询条件的行数乘以第二个表中符合查询条件的行数。 带有where子句时,返回连接两个表的行数的积减去where子句所限定而省略的行数。 交叉连接中表名用关键字cross join隔开。 内连接只保留交叉积中满足连接条件的那些行。如果某行在一个表中存在,但在另一个表中不存在,则结果表中不包括该信息。 外连接是内连接和左表和/或右表中未包括内连接中的那些行的并置。 4.3 子查询 指子查询是一个SELECT语句 多行子查询 IN、Exists、比较运算符 单值子查询 嵌套子查询 1.语法结构 SELECT 属性列表--它可以是星号(*)、表达式、列表、变量等。 [INTO新表] --用查询结果集合创建一个新表 FROM 基本表(或视图序列)--最多可以指定16个表或者视图,用逗号相互隔开。 [WHERE条件表达式] [GROUP BY 属性名表] --分组子句 [HAVING 组条件表达式] --组条件子句 [ORDER BY 属性名[ASC|DESC]..] --排序子句 [COMPUTE 集函数(列名)] --汇总子句 3.语句执行过程 1)读取FROM子句中的基本表、视图和数据,执行各种操作。 2)选取满足WHERE子句中给出的条件表达式的元组。 3)按GROUP BY子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。 4)按SELECT子句中给出的列名或列表达式求值输出。 5)ORDER BY子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。 * * 多表查询指的是从多个源表中检索数据 。FROM子句中的数据源表要给出所有源表表名,各个表名之间要用逗号分隔。 (1)多表查询的FROM子句格式 FROM 源表表名集 例如,若一个查询用到三个表,表名分别为Students、Enrollment,Courses。 则FROM子句为: FROM Students,Enrollment,Courses (2)多表查询中的SELECT子句 与单表查询的SELECT子句功能基本相同,也是用来指定查询结果表中包含的列名;不同的是,如果多个表中有相同的列名,则需要用:表名.列名来限定列是那个表的列。 例如,Students表和Enrollment表中都有Sno列,为了在结果表中包含Students表的Sno列,则要用 Students.Sno表示。 还可用表名.* :表示表名指定的表中的所有列。例如Students. *,表示Students表的所有列。 (3)多表查询中的GROUP BY、HAVING、ORDER BY子句 与单表查询中的用法相同。 不同的是:如果列名有重复,则要用 表名.列名来限定列是那个表的列。 (4) 多表查询中的WHERE子句 要设置多表的连接条件,还有表的一个或多个行选择条件。 连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。连接操作给用户带来很大的灵活性,为不同实体创建新的表,尔后通过连接进行查询出存放在多个表中的不同实体的信息。 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,而在FROM子句中指出连接时有助于将连接操作与WHERE子句中的有哪些信誉好的足球投注网站条件区分开来。所以,在Transact-SQL中推荐使用这种方法。 FROM join_table join_type join_table [ON (join_condition)] 1. 内连接 等值连接与自然连接 等值连接:即根据两个表的对应列值相等的原则进行连接。连接条件的形式往往是“主键=外键”。即按一个表的主键值与另一个表的外键值相同的原则进行连接。 常用的等值连接条件形式: 表名1.列名1=表名2 . 列名2 【例】查询每个学生的基本信息以及他/她选课的情况。 SELECT St

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档