项目六 数据查询答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目六数据查询

项目要求:

在“学籍管理”数据库中的院部信息表、班级信息表、学生信息表、教师信息表、课程信息表、选课信息表中进行简单查询、模糊查询、分组查询、联接查询以及子查询的操作。

项目支撑知识:

☺简单查询

查询是对存储在SQL Server2005中的数据的请求,用户可以通过查询来获得所需要的数据。查询可以通过执行SELECT语句实现,也可通过其他图形界面的程序实现,但它们最后都要将每个查询转换成SELECT语句,然后发送到SQL Server服务器执行。

SELECT语句的语法形式如下:

SELECT select_list

[ INTO new_table ] FROM table_source

[WHERE search_condition]

[GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

[COMPUTE 子句] [FOR 子句] [OPTION 子句]

其中:

●SELECT子句:用于指定所选择的要查询的特定表中的列,它可以是星

号(*)、表达式、列表、变量等。

●INTO子句:用于指定所要生成的新表的名称。

●FROM子句:用于指定要查询的表或者视图,最多可以指定16个表或

者视图,用逗号相互隔开。

●WHERE子句:用来限定查询的范围和条件。

●GROUP BY子句:是分组查询子句。

●HAVING子句:指定记录辅助过滤条件,从分组的结果中筛选行,即选取

满足条件的那些组。逻辑上讲,HAVING 子句从中间结果集(由SELECT 语

句中的 FROM、WHERE 或 GROUP BY 子句创建的)对行进行筛选。 HAVING

子句通常与 GROUP BY 子句一起使用,如果不使用 GROUP BY 子句,

HAVING 的行为与 WHERE 子句一样。

●ORDER BY子句:是对检索到数据进行排序;ASC 和 DESC 关键字用于指

定行是按升序还是按降序排序,默认升序。

●UNION 运算符:将两个或更多查询的结果组合为单个结果集,该结果集

包含联合查询中的所有查询的全部行。可以在查询之间使用 UNION 运

算符,以将查询的结果组合成单个结果集。

●COMPUTE 子句:生成合计作为附加的汇总行附加在结果集的最后。当与

BY 一起使用时,COMPUTE 子句在结果集内生成控制中断、明细和分类

汇总。可在同一查询内指定 COMPUTE BY 和 COMPUTE。

●FOR语句:指定数据的返回形式。

●OPTION 子句:指定应在整个查询中使用所指定的查询提示。

☺查询结果的显示方式

在SQL Server2005中,使用SELECT语句查询得到的结果有3种显示方式。第一种是网格显示方式,第二种是文本显示方式,第三种是将结果保存成数据文件。默认状态下以网格形式显示查询结果。如果要改变默认显示方式,可以按照如下步骤进行设置:

1.在SSMS环境中,执行“工具”菜单中的“选项”命令,打开“选项”对

话框,如图6.1所示。

图 6.1 “选项”对话框

2.在“选项”对话框中,依次展开“查询结果”、“SQL Server”节点,打

开显示结果的默认方式下拉列表框,从3种显示方式中选择一种设置为默认方式。

另外,还可以通过单击SQL编辑器工具栏上的相应按钮来进行临时显示设置,SQL编辑器工具栏如图6.2所示。

图 6.2 SQL编辑器工具栏

☺选择数据库的方式

在SSMS中执行SELECT语句需要选择数据库,选择数据库有两种方式:隐式和显式。

●隐式:使用当前数据库,可通过SSMS工具条上的“选择数据库”下拉

列表指定当前数据库,如图6.3所示。

图 6.3 选择数据库

●显式:使用“USE 数据库名”明确指定要操作的数据库。

☺集合函数

为进一步增强检索功能,SQL Server提供了许多集合函数,主要有:

●COUNT([DISTINCT |ALL ]*)统计记录个数。

●COUNT([DISTINCT |ALL ]<列名>)统计一列中值的个数。

●SUM([DISTINCT |ALL ]<列名>)计算一列值的总和。

●A VG([DISTINCT |ALL ]<列名>)计算一列值的平均值。

●MAX([DISTINCT |ALL ]<列名>)求一列值中的最大值。

●MIN([DISTINCT |ALL ]<列名>)求一列值中的最小值。

在SELECT子句中集合函数用来对结果集进行统计计算。DISTINCT是去掉指定列中的重复值,ALL是不取消重复值,默认状态下是ALL。

☺联接查询

通过联接,可以根据各个表之间的逻辑关系从两个或多个表中检索数据。

联接表示如何使用一个表中的数据来选择另一个表中的行。联接可以分为:内联接、外联接和交叉联接。

●内联接:仅显示两个联接表中的匹配行的联接,包括等值联接和自然联

接。

●外联接:包括在联接表中没有相关的行的联接,可分为以下3种:

1.左向外联接(LEFT OUTER JOIN):包括第一个命名表(“左”表,出现

在JOIN子句的最左边)中的所有行,不包括右表中的不匹配行。如果左表中的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

2.右向外联接(RIGHT OUTER JOIN):包括第二个命名表(“右”表,出现

在JOIN子句的最右边)中的所有行,不包括左表中的不匹配行。如果右表中的某行在左表中没有匹配行,则将为左表返回空值。

3.完整外部联接(FULL OUTER JOIN):包括联接表中的所有行,不论它们

是否匹配。

●交叉联接:在这类联接的结果集内,两个表中每两个可能成对行占一行,

也称作笛卡尔积。

☺子查询

子查询可以嵌套在外部SELECT、INSERT、UPDATE或DELETE 语句的WHERE或HAVING子句内,或者其他子查询中。尽管根据可用内存和查询中其他表达式的复杂程度不同,嵌套限制也有所不同,但嵌套到32层也是可能的。任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。

项目技能:

相关文档
最新文档