《第5章 SQL查询语句基础》由会员分享,可在线阅读,更多相关《第5章 SQL查询语句基础(85页珍藏版)》请在金锄头文库上搜索。
1、第 5_2 章 SQL查询语句基础,5.1 SELECT 条件列表5.2 FROM子句5.3 WHERE子句5.4 统计5.5 利用查询结果创建新表5.6 使用UNION运算符实现多查询联合5.7 连接5.8 子查询, 本章要点:,掌握简单的Transact-SQL查询语句。学会对查询结果进行分组统计、合计和排序等复杂的SELECT语句操作。,5.1 SELECT 条件列表,一、基本结构SELECT 记录显示范围 字段列表 INTO 新表名 FROM 表名或表名列表及其连接方式 WHERE 条件表达式 GROUP BY 分组字段名列表 HAVING 分组条件表达式 ORDER BY 排序字段名
2、列表 ASC | DESC COMPUTE 集合函数(列名1) BY 列名2 n 说明:SELECT语句中各子句的顺序: SELECT 记录范围 字段列表 INTO FROM WHERE GROUP BY HAVING ORDER BY COMPUTE lFROM用于指定数据来源: 单表查询简单格式:FROM 表名 多表查询时的格式:FROM 表名列表及其连接方式lCOMPUTE子句不能与INTO子句或GROUP BY子句同时使用。,SELECT 条件列表,(1) SELECT子句:指明目标列(字段、表达式、函数表达式、常量)。基本表中相同的列名表示为:表名.列名(2) FROM子句:指明数据
3、源。表间用“,”分割。数据源不在当前数据库中,使用“数据库名.表名”表示。一表多用,用别名标识。定义表别名:表名别名(3) WHERE子句:元组选择条件。(4) GROUP BY子句:结果集分组。当目标列中有统计函数,则统计为分组统计,否则为对整个结果集统计。子句后带上HAVING子句表达组选择条件(带函数的表达式)。(5) ORDER BY子句:排序。当排序要求为ASC时升序排序;排序要求为DESC时降序排列。,2. SELECT语句的操作符,(1) 算术操作符+(加号)、(减号)、*(乘号)和 /(除号)。(2) 比较操作符=(等于)、(大于)、(小于)、=(大于等于)、!=(不等于)、(
4、小于大于)、!(不大于)和 !、=、90;,自连接,自内连接简称自连接,是一张表自己对自己的内连接,即在一张表的两个副本之间进行内连接。用自连接可以将同一个表的不同行连接起来。 使用自连接时,必须为两个副本指定别名,使之在逻辑上成为两个表。 语法格式: SELECT 列名列表 FROM 表名 AS 别名1 join 表名.别名2 ON 别名1.列名=别名2.列名,查询每一门课的间接先行课。,例如,课程表中的先行课是在上学期应开设的,先行课的先行课,即间接先行课应提前一学年开设。如果求查询某门课的间接先行课或全部课程的间接先行课,就需要对课程表进行自身连接。SELECT A.课程号,A.课程名,
5、B.先行课 FROM 课程 A,课程 B WHERE A.先行课=B.课程号,例子,课程的先行关系链为:C5C4C3C2C1,课程的间接关系链为:C5C3C1。,A,B,结果,【例5-18】,自连接虽然使用一个表但有两个拷贝,在逻辑上是两个表而且字段完全相同,因此字段列表中字段名必须加上其中一个表的别名做前缀。使用自连接会产生许多重复行,一般加关键字DISTINCT过滤掉重复行。自连接默认按ON使用的连接字段排序(供货商ID,货号),为了按厂家顺序再按进货日期排序,本例使用了ORDER BY指定排序。由于使用了DISTINCT,所以不允许使用字段列表没有指定的“g1.进货日期”排序,也不允许使用别名“供货日期”进行排序,本例使用了字段列表中的表达式。,