H1-5SQL简单查询.ppt_第1页
H1-5SQL简单查询.ppt_第2页
H1-5SQL简单查询.ppt_第3页
H1-5SQL简单查询.ppt_第4页
H1-5SQL简单查询.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server 简单查询,学习目标,SELECT子句 FROM子句 WHERE子句 INTO子句 ORDER BY子句 GROUP BY子句 HAVING子句 COMPUTE子句 UNION子句,SELECT子句,语法: Select all/distincttop npercentwith ties ALL 指定在结果集中可以显示重复行。ALL 是默认设置。 DISTINCT 指定在结果集中只能显示唯一行。为了 DISTINCT 关键字的用途,空值被认为相等。 TOP n PERCENT 输出前 n 行。n 是介于 0 和 4294967295 之间的整数。PERCENT表示只从结果集

2、中输出前百分之 n 行。 WITH TIES 指定从基本结果集中返回附加的行,这些行包含与出现在 TOP n (PERCENT) 行最后的 ORDER BY 列中的值相同的值。如果指定了 ORDER BY 子句,则只能指定 TOP .WITH TIES。,消除重复行 查询表employee中的所有职位。 select distinct title from employee 注意:在一个SELECT语句中DISTINCT只能出现一次,并且DISTINCT必须在所有列名之前,否则会发生语法错误。与DISTINCT选项含义相反的是ALL选项,在SELECT语句中使用ALL选项,表示结果重复的行也将

3、显示。ALL选项是默认选项。,指定TOP关键字 SQL Server 2000 使用了TOP 关键字,用于查询时只显示前面几行数据。 【例】返回employee表中头3条记录 select top 3 * from employee 【例】返回employee表中头20%条记录 select top 20 percent * from employee,FROM子句,指定在 DELETE、SELECT 和 UPDATE 语句中使用的表、视图、派生表和连接表。 列出选择列表和 WHERE 子句中所引用的列所在的表和视图。可用 AS 子句为表和视图的名称指定别名。 例: select emp_na

4、me as 姓名,title as 职位 from employee,WHERE子句,WHERE子句指定数据检索的条件以限制返回的数据行 。 例: SELECT * FROM Tab1 WHERE Tab1.id 6,INTO子句,SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择 列表中表达式的特性定义。 例: select * into 新表 from 原表,对查询结果排序 SQL语言中用ORDER BY子句实现对查询结果的排序,可以根据包含的一列或者多列的表达式进行ASC(升序)或DESC(降序)的排列,默认值是ASC。 【例】查询所有员工的

5、姓名及月薪,结果按月薪的降序排列。 select emp_name as 姓名,wage as 薪水 from employee order by wage desc,ORDER BY子句,【例】查询所有员工的姓名、部门号及月薪,结果按部门号升序排列,同一部门按月薪降序排列。 select emp_name as 姓名,dep_id as 部门号,wage as 薪水 from employee order by dep_id asc,wage desc 注意: (1)ORDER BY子句不改变基本表中行或列的顺序,只改变查询显 示的顺序。 (2)ORDER BY子句指定排序的列必须出现在SE

6、LECT子句的列表达式中。 (3)排序是查询语句的最后一步工作,所以ORDER BY子句一般放在查询语句的最后。,数据分组 利用GROUP BY子句可以将查询结果按照一列或者多列分组,值相等的为一组。 基于单列的分组 【例】按部门号查询各部门的平均月薪。 select dep_id as 部门号,sum(wage) as 薪水 from employee group by dep_id,GROUP BY子句,基于多列的分组 GROUP BY子句还可以作用于多列上,此时的数据分组意义是分大组之后再分小组。 【例】分各部门各职位统计月薪总额。 select dep_id as 部门号,title

7、as 职位,sum(wage) as 薪水 from employee group by dep_id ,title 说明:先按照部门号分组,部门号相同的组再按职位细分,最后部门号和职位完全相同的行才会分在一组,然后每组统计一个月薪总额。,如果分组后还要根据一定条件对这些组进行筛选,则使用HAVING子句来实现。 【例】按部门号查询各部门的平均月薪,要求只显示平均月薪在10000以上的部门编号和平均月薪。 select dep_id as 部门号,sum(wage) as 薪水 from employee group by dep_id having sum(wage)10000 注意: WH

8、ERE子句和HAVING子句有相似之处,即后面都跟指定条件;但是它们又有区别:前者直接用于SELECT子句中,作用于基本表或视图;而后者一定跟在GROUP BY子句后面,作用于分组。,HAVING子句,COMPUTE子句,生成合计作为附加的汇总列出现在结果集的最后。当与 BY 一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。可在同一查询内指定 COMPUTE BY 和 COMPUTE。 【例】下列 SELECT 语句使用简单 COMPUTE 子句生成 employee表中 wage 的求和总计: select dep_id as 部门号,wage as 薪水 from emp

9、loyee order by dep_id compute sum(wage),【例】下列查询在 COMPUTE 子句中加入可选的 BY 关键字,以生成每个组的小计: select dep_id as 部门号,wage as 薪水 from employee order by dep_id compute sum(wage) by dep_id,UNION子句,UNION联合查询 【例】查询青山出版社的图书编号和曾经被借阅的图书编号。 select emp_name from employee union all select emp_name from employee 如果使用了ALL选项,则所有结果行包括重复行都将被显示。在SELECT语句中,ALL选项是默认值,而在UNION运算符中,ALL选项不是默认值,必须要明确指定。,2 联合查询结果排序 联合查询也可以对结果进行排序,这时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论