用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件

上传人:日度 文档编号:149720920 上传时间:2020-10-29 格式:PPT 页数:89 大小:1,006.50KB
返回 下载 相关 举报
用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件_第1页
第1页 / 共89页
用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件_第2页
第2页 / 共89页
用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件_第3页
第3页 / 共89页
用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件_第4页
第4页 / 共89页
用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件》由会员分享,可在线阅读,更多相关《用SELECT语句查询记录-《SQLServer2005程序设计语言》培训课件(89页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 2005 数据库程序设计语言,第8章 数据操作,8.1 用SELECT语句查询记录 1、检索数据 2、数据分组与汇总 3、其它操作,1、检索数据,1.1 使用 SELECT 语句检索数据 1.2 过滤数据 1.3 设置结果集格式 1.4 需要考虑的性能问题 1.5 推荐操作,1.1 使用 SELECT 语句检索数据,1.1.1 使用 SELECT 语句 1.1.2 指定列 1.1.3 使用 WHERE 子句指定行,SELECT ALL | DISTINCTTOP n FROM ,n WHERE GROUP BY ,n HAVING ORDER BY ,n,基本语法,使用

2、SELECT 语句,用 括起来的是可选项,SELECT 是必需的 选择列表指定了要返回的列 WHERE 子句指定限制查询的条件 在搜索条件中,可以使用比较操作符、字符串、逻辑操作符来限制返回的行数,1.1.1 使用 SELECT 语句,使用 SELECT 语句(续),FROM 子句知道了返回的行和列所属的表 DISTINCT 选项从结果集中消除了重复的行,TOP n 选项限定了要返回的行数 GROUP BY 子句是对结果集进行分组 HAVING 子句是在分组的时候,对字段或表达式指定搜索条件 ORDER BY 子句对结果集按某种条件进行排序,1.1.1 使用 SELECT 语句,指定列,1.1

3、.2 指定列,在选择列表中指定要从表中返回的列 在选择列表中可以包含字段名、表达式、所选关键字或要赋值的局部变量。其语法为, := *| 表名 | 视图名 | 表的别名.* |字段名 | 表达式 |$IDENTITY | $ROWGUID AS 字段别名 | 字段别名 = 表达式 ,.n,指定要检索的字段时,请注意 选择列表将按照指定顺序查找并显示所查询的字段 不同的字段名用“,”分开 在选择列表中,避免或尽量少使用符号“ * ”。该符号代表选择表中所有的字段,使用 WHERE 子句指定行,1.1.3 使用 WHERE 子句指定行,通过使用 WHERE 子句,可以得到基于搜索条件的行, :=

4、NOT | ( ) AND | ORNOT | ( ) ,.n,列出了可以在 WHERE 子句中包含的表达式列表 使用 WHERE 子句指定行时,请注意 在所有数据类型为 char、nchar、varchar、nvarchar、text、datetime和 smalldatetime 的数据周围,必须使用单引号() 在使用 SELECT 语句时,尽量使用 WHERE 语句限制将要返回的行,使用 WHERE 子句指定行(续),示例,1.1.3 使用 WHERE 子句指定行,1、检索数据,1.1 使用 SELECT 语句检索数据 1.2 过滤数据 1.3 设置结果集格式 1.4 需要考虑的性能问题

5、 1.5 推荐操作,过滤数据,1.2 过滤数据,使用比较运算符,1.2.1 使用比较运算符,使用比较操作符来比较表中的值与指定的值或表达式的值,USE northwind SELECT lastname, city FROM employees WHERE country = USA GO,使用字符串比较符,1.2.2 使用字符串比较符,在比较字符串时,可以使用 LIKE 和通配符来查找需要的行,通配符的种类,使用字符串比较符(续),1.2.2 使用字符串比较符,使用逻辑运算符,1.2.3 使用逻辑运算符,用逻辑操作符 AND、OR 和 NOT 来连接一系列的表达式,及优化查询过程。使用逻辑运

6、算符时,遵循下列原则 使用 AND 返回满足所有条件的行 使用 OR 返回满足任一条件的行 使用 NOT 返回不满足条件的行 有多个表达式时,使用圆括号 为表达式分组 改变表达式求值顺序 增加表达式的可读性,使用逻辑运算符(续),搜索条件的顺序 Microsoft SQL Server 首先求 NOT 表达式的值,然后是 AND,最后是 OR 当表达式中所有的操作符优先级相同时,求值顺序由左到右,1.2.3 使用逻辑运算符,(productname LIKE T% OR productid = 46) AND (unitprice 16.00) (productname LIKE T% ) O

7、R (productid = 46 AND unitprice 16.00),检索一定范围内的值,使用 BETWEEN 来查询在一定范围内的值,使用 BETWEEN 时,注意 SQL Server 返回的结果集中,包含范围内的边缘值 尽量使用 BETWEEN,而不用 AND 和比较操作符表示的表达式(=x AND x AND y) 要返回不在指定区域的行时,使用 NOT BETWEEN,1.2.4 检索一定范围内的值,unitprice BETWEEN 10 AND 20,使用值列表作为搜索条件,1.2.5 使用值列表作为搜索条件,使用 IN 语句指定一个值的列表作为查询条件。使用 IN 时,

8、注意 使用 IN 搜索条件和使用由 OR 操作符连起来的一系列比较操作符,其效果是等价的 在搜索条件中不能包含 NULL 值,这将返回不可预测的结果集 使用 NOT IN 搜索条件来返回值不在指定列表中的行。使用 NOT 会降低数据检索速度,country IN (Japan, Italy) country= Japan or country= Italy,检索未知值,1.2.6 检索未知值,输入数据时,没有指定一个字段的值,且此字段没有定义默认值的值,称此字段含有空值(NULL) 使用 IS NULL 搜索条件来查询某指定列没任何信息的行。需要返回含有空值的行时,注意 把空值和任何表达式比较

9、都会失败,因为空值不等于任何表达式 在 CREATE TABLE 语句里,定义一个字段是否允许空值的存在 使用 IS NOT NULL 来查询指定列中非空的行,Score IS NULL,1、检索数据,1.1 使用 SELECT 语句检索数据 1.2 过滤数据 1.3 设置结果集格式 1.4 需要考虑的性能问题 1.5 推荐操作,设置结果集格式,对数据进行排序 消除重复行 改变列名 使用字面值 FOR子句 UNION ALL,1.3 设置结果集格式,对数据进行排序,1.3.1 对数据进行排序,使用 ORDER BY 子句为结果集中的行排序时,有升序和降序两种。使用ORDER BY 时,注意 除

10、非使用 ORDER BY 指定顺序,SQL Server 并不主动为结果集中的行排序 SQL Server 缺省地按升序排列 ORDER BY 子句中指定的列并不一定要出现在选择列表中 可以按照字段名、计算出的值或表达式进行排序 可以在 ORDER BY 子句中引用某字段在选择列表中的位置而进行排序 ORDER BY 子句不能用于数据类型 text 、ntext或 image 字段,对数据进行排序(续),USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY catego

11、ryid, unitprice DESC GO,示例,1.3.1 对数据进行排序,消除重复行,1.3.2 消除重复行,用 DISTINCT 可以消除重复行,使结果集列出惟一的值。使用 DISTINCT 时,注意 除非指定 DISTINCT 子句,否则 SELECT 语句将返回所有满足搜索条件的行 选择列表中所有列的组合值将决定其惟一性 包含任何惟一组合值的行都将被检索到并被返回到结果集中 除非使用了 ORDER BY 子句,否则 DISTINCT 子句将按随机的顺序显示结果集中的行,消除重复行(续),USE northwind SELECT DISTINCT country FROM supp

12、liers ORDER BY country GO,示例,1.3.2 消除重复行,改变列名,1.3.3 改变列名,为了提高可读性,可以为选择列表中的字段名起别名 改变字段名时,应注意 缺省情况下,结果集所显示的字段名,就是在 CREATE TABLE 语句中指定的字段名 如果字段名中有空格,或字段名不符合 SQL Server 命名规则,用单引号来标识这个字段名 可以为经过计算的包含函数、字符符号的字段起别名 字段名中至多可以包含128个字符,改变列名(续),USE northwind SELECT firstname AS First, lastname Last ,Employee ID:

13、 =employeeid FROM employees,1.3.3 改变列名,示例,使用字面值,1.3.4 使用字面值,使用字面值可以增加结果集的可读性,符号可能是字母、数字或标识,它们被用作特定的值。其语法为,SELECT 字段名 |字符串符号 ,字段名 |字符串符号 FROM 表名,USE northwind SELECT firstname, lastname ,Identification number:, employeeid FROM employeesGO,FOR子句,FOR子句用来指定BROWSE或XML选项,主要在应用程序的开发中经常使用。FOR子句生成XML的详细使用介绍请

14、参考第24章。本节通过一个使用FOR子句的示例,简单说明其一般的功能。,1.3.5 FOR子句,UNION ALL,将两个或更多查询的结果合并为单个结果集,该结果集包含联合查询中的所有查询的全部行。UNION 运算不同于使用联接合并两个表中的列的运算。,1.3.6 UNION ALL,USE AdventureWorks SELECT ProductModelID, Name FROM Production.ProductModel UNION SELECT ProductModelID, Name FROM dbo.ProductModel2 ORDER BY Name ;,使用 UNION

15、 合并两个查询结果集的基本规则: 所有查询中的列数和列的顺序必须相同。 数据类型必须兼容。,需要考虑的性能问题,非逻辑操作会降低查询速度 比如:NOT BETWEEN 、NOT IN 和 IS NOT NULL LIKE 搜索条件会降低查询速度 使用精确查询或在一定范围的查询可能会提高数据查询速度 ORDER BY 子句可能降低数据查询速度 因为 SQL Server 在返回第一行前,必须对结果集中所有的行进行计算并排序,1.4 需要考虑的性能问题,推荐操作,32,提出问题,我们遇到了下面的问题:我们拥有桌子和椅子两种产品,每种产品都有红色和蓝色两种颜色。 每种颜色的桌子有多少库存,每种颜色的

16、椅子有多少库存。 椅子有多少库存,不论它是什么颜色;桌子有多少库存,不论它是什么颜色。 红色的商品一共有多少库存,蓝色的商品一共有多少库存。 这个时候大家发现,我们需要的是以不同商品种类和颜色进行排列组合的小计报表。,8.2、 数据分组与汇总,使用 TOP n 列出前 n 个记录 使用 TABLESAMPLE 限制结果集 使用聚合函数 GROUP BY 的基础知识 在结果集中生成汇总值 使用 COMPUTE 和 COMPUTE BY 子句 推荐操作,使用 TOP n 列出前 n 个记录,8.2.1 使用 TOP n 列出前 n 个记录,关键字 TOP n 只列出结果集中前 n 个或 前 n% 的记录。使用 TOP n 或 TOP n PERCENT 时,应注意 在 ORDER BY 子句中指定值的范围 关键字 TOP 后使用无符号的整数 如果 TOP n PERCENT 生成小数,则 SQL Server 将把这个数取整 可以在结果集中用 WITH TIES 子句包含那些值相等的记录,这时结果集中可以包含任意数目的行,部分语法: SELE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号