项目六 数据查询答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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层也是可能的。任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。
项目技能: