第14章 SQL数据查询与操纵 内容提要 本章知识点 用户使用数据库的目的是为了随时查询需要的数据信息,因此,数据查询是数据库的核心操作。本章主要介绍简单查询、高级查询中的联合查询、连接查询、嵌套查询及在表中插入数据、更新数据和删除数据的数据操纵。 本章知识点 掌握SQL简单查询 掌握SQL高级查询 掌握数据操纵
14.1 SELECT语句概述 14.1.1 SQL语句结构 SELECT语句是是查询数据的基本方法。SELECT语句可以从数据库中查 询行,并允许从一个或多个表中选择一个或多个行或列。 SELECT语句的结构: SELECT FROM WHERE SELECT语句中各子句的作用如下: SELECT子句,指定由查询返回的列。 INTO子句,创建新表并将查询的结果行插入新表中。 FROM子句,指定从其中查询行的表。 WHERE子句,指定用于限制返回的行的搜索条件。 GROUP BY子句,指定查询结果的分组条件。 HAVING子句,指定组或聚合的搜索条件。 ORDER BY子句,指定结果集的排序方式。 COMPUTE子句,在结果集的末尾生成一个汇总数据行。
14.2 简单查询 14.2.1 使用SELECT子句选取列 14.2.2 使用WHERE子句 1.查询特定的列 2.查询所有的列 1.比较运算符 2. BETWEEN运算符
14.3 高级查询 14.2.3 使用ORDER BY子句 14.3.1 联合查询 3.IN运算符 4.LIKE运算符 ORDER BY子句用于对查询结果进行排序。升序(ASC)或降序 (DESC),其中ASC为缺省设置。如果对查询结果未指定ORDER BY子句, SQL SERVER2000则按照记录在表中的存储顺序输出查询结果。 14.3 高级查询 14.3.1 联合查询 使用UNION子句的查询称为联合查询,它可以将两个或更多查询的结 果集组合为一个单个结果集,该结果集包含联合查询中所有查询结果集中 的全部行数据。
14.3.2 连接查询 带UNION子句的SELECT语句的主要用法是: SELECT SELECT_LIST FROM TABLE_SOURCE [WHERE SEARCH_CONDITION] {UNION SELECT SELECT_LIST FROM TABLE_SOURCE [WHERE SEARCH_CONDITION] } [ ,...N ] ORDER BY {ORDER_BY_EXPRESSION [DESC]}[,...n] 14.3.2 连接查询 在进行一个查询时,用户往往需要从多个表中查询相关数据,这就需要用到连接查询。可以在FROM或WHERE子句中指定连接,建议在FROM子句中指定连接,因为这样可以将指定的连接条件与WHERE子句中可能指定的搜索条件分开。连接查询的主要用法是:
1.内连接(INNER JOIN) 2. 外连接 3.交叉连接 (1) 左外连接(LEFT OUTER JOIN) SELECT SELECT_LIST FROM FIRST_TABLE JOIN_TYPE SECOND_TABLE [ON (JOIN_CONDITION)] [WHERE SEARCH_CONDITION] [ORDER BY ORDER_EXPRESSION [DESC]] 其中:JOIN_TYPE指定所执行的连接类型;JOIN_CONDITION指定连接条件。 连接类型可分为内联接(INNER JOIN)、外联接(OUTER JOIN)和交叉联接 (CROSS JOIN)三类。 1.内连接(INNER JOIN) 2. 外连接 (1) 左外连接(LEFT OUTER JOIN) (2) 右外连接(RIGHT OUTER JOIN) (3)全连接 (FULL OUTER JOIN) 3.交叉连接
14.4 数据操纵 14.3.3 嵌套查询 14.4.1 插入数据 1. 使用IN的子查询 2.使用 EXISTS 的子查询 嵌套查询是指将一个查询块嵌套在另一个查询块的WHERE子 句或HAVING子句中的查询,嵌套查询又称为子查询 。 1. 使用IN的子查询 2.使用 EXISTS 的子查询 3.使用比较运算符的子查询 14.4 数据操纵 14.4.1 插入数据 1.使用企业管理器添加数据信息 2.使用T-SQL语句添加表数据
14.4.2 更新数据 14.4.3 删除数据 在SQL SERVER2000中,可以用T-SQL语句中的UPDATE命令来更新表中 UPDATE TABLE_NAME SET COLUMN=MODIFIED_VALUE1[,COLUMN2=MODIFIED_VALUE2,...] [WHERE COLUMN1=VALUE1][COLUMN2=VALUE2,...] 14.4.3 删除数据 在T-SQL语句中,使用DELETE命令来删除表中的数据信息。DELETE命 令的语法声明如下所示: DELETE [FROM] TABLE_NAME
如果不打算查询数据,那么存储数据也就失去了意 14.5 小结 本章主要介绍了SQL数据的查询与操纵,介绍了简 单查询、高级查询中的联合查询、连接查询、嵌套查 询,并且介绍了在SQL中插入数据、更新数据和删除 数据的方法。 如果不打算查询数据,那么存储数据也就失去了意 义,关系数据库之所以得到人们的广泛接受,主要是 因为它使用户能够方便地查询数据,而不必对大量数 据一一扫描。再次强调数据库查询是数据库的核心操 作,希望大家多上机练习,熟悉每一个环节。