1. 首页
  2. 文档大全

第7章 查询和视图

上传者:2****5 2022-07-26 19:39:04上传 PPT文件 136.50KB
第7章 查询和视图_第1页 第7章 查询和视图_第2页 第7章 查询和视图_第3页

《第7章 查询和视图》由会员分享,可在线阅读,更多相关《第7章 查询和视图(71页珍藏版)》请在文档大全上搜索。

1、第第 7 章章查询和视图查询和视图本章学习目标:本章学习目标:q掌握掌握T-SQL作为数据定义语言的语法与应用作为数据定义语言的语法与应用q掌握掌握WHERE、ORDER BY、GROUP BY、HAVING子句的使用子句的使用q掌握基本的多表查询掌握基本的多表查询q掌握内连接、外连接、交叉连接和联合查询的掌握内连接、外连接、交叉连接和联合查询的使用使用q掌握多行和单值子查询的使用掌握多行和单值子查询的使用q掌握嵌套子查询的使用掌握嵌套子查询的使用q了解表的视图了解表的视图7.1 连接、选择和投影连接、选择和投影nSQL Server 2008是一种关系数据库管理系统是一种关系数据库管理系统,

2、在关系数据库中,必须提供一种对二维表进,在关系数据库中,必须提供一种对二维表进行运算的机制。这种机制除了包括传统的集合行运算的机制。这种机制除了包括传统的集合运算中的并、交、差、广义笛卡尔积以外,还运算中的并、交、差、广义笛卡尔积以外,还包括专门的关系运算中的选择、投影和连接。包括专门的关系运算中的选择、投影和连接。7.1.1 选择(Selection)n选择是单目运算,它是按照一定的条件,从关系R中选择出满足条件的行为作为结果返回。选择运算的操作对象是一张二维表,其运算结果也是一张二维表。7.1.2 投影(Projection)n投影也是单目运算,该运算从表中选出指定的属性值组成一个新表,7

3、.1.3 连接(JOIN)n把两个表中的行按着给定的条件拼接而形成的新表。n连接也称为连接n连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组nA和B:分别为R和S上度数相等且可比的属性组7.2 数据查询语句数据查询语句(SELECT语句语句)n查询功能是查询功能是T-SQL的核心,通过的核心,通过T-SQL的查询的查询可以从表或视图中迅速、方便地检索数据。可以从表或视图中迅速、方便地检索数据。nT-SQL的查询最基本的方式是的查询最基本的方式是SELECT语句,语句,其功能十分强大。它能够以任意顺序、从任意其功能十分强大。它能够以任意顺序、从任意数目的列中查询数据,并在查询过

4、程中进行计数目的列中查询数据,并在查询过程中进行计算,甚至能包含来自其他表的数据。算,甚至能包含来自其他表的数据。n我们选取我们选取studentinfo数据库作为示例数据库,数据库作为示例数据库,以下例句均省略打开数据库的以下例句均省略打开数据库的USE studentinfo.nstudentinfo数据库有三张数据表:数据库有三张数据表:student、course和和sc。 nSELECT语句的完整语法格式为:语句的完整语法格式为:SELECT FROM |WHERE |GROUP BY HAVING ORDER BY ASC|DESCn其中的其中的SELECT和和FROM语句为必选子

5、句,而语句为必选子句,而WHERE、ORDER BY和和GROUP BY子句为可选子句为可选子句,要根据查询的需要去选用。子句,要根据查询的需要去选用。nSELECT语法中各参数进行说明:语法中各参数进行说明:qSELECT子句:用来指定由查询返回的列,并子句:用来指定由查询返回的列,并且各列在且各列在SELECT子句中的顺序决定了它们在子句中的顺序决定了它们在结果表中的顺序;结果表中的顺序;qFROM子句:用来指定数据来源的表;子句:用来指定数据来源的表;qWHERE子句:用来限定返回行的搜索条件;子句:用来限定返回行的搜索条件;qGROUP BY子句:用来指定查询结果的分组条子句:用来指定

6、查询结果的分组条件;件;qORDER BY子句:用来指定结果的排序方式。子句:用来指定结果的排序方式。nSELECT语句可以写在一行中。但对于复杂的查语句可以写在一行中。但对于复杂的查询,询,SELECT语句随着查询子句的增加不断增长,语句随着查询子句的增加不断增长,一行很难写下,此时可以采用分行的写法,即每一行很难写下,此时可以采用分行的写法,即每个子句分别在不同的行中。需要注意,子句与子个子句分别在不同的行中。需要注意,子句与子句之间不能使用符号分隔。句之间不能使用符号分隔。7.2.1 SELECT语句对列的查询语句对列的查询n对列的查询实质上是对关系的对列的查询实质上是对关系的“投影投影

7、”操作。操作。在很多情况下,用户只对表中的一部分列感兴在很多情况下,用户只对表中的一部分列感兴趣,可以使用趣,可以使用SELECT子句来指明要查询的列,子句来指明要查询的列,并可根据需要改变输出列显示的先后顺序。并可根据需要改变输出列显示的先后顺序。nT-SQL中对列的查询是通过对中对列的查询是通过对SELECT子句中子句中的列名选项进行设置完成的,具体格式为:的列名选项进行设置完成的,具体格式为:SELECT ALL|DISTINCT TOP n PERCENT *|表的名称表的名称.*|视图名称视图名称.* /*选择表或视图中的全部列选择表或视图中的全部列*/| 列的名称列的名称|列的表达

8、式列的表达式 AS 列的别名列的别名 /*选择指定的列选择指定的列*/,n1. 查询一个表中的全部列查询一个表中的全部列n选择表的全部列时,可以使用星号选择表的全部列时,可以使用星号“*”来表示所有来表示所有的列。的列。【例例7-9】检索检索students表、表、course表和表和sc表中的所有表中的所有纪录。纪录。nT-SQL语句为:语句为:USE StuInfoSELECT * FROM studentSELECT * FROM courseSELECT * FROM scn也可以将三个表的操作合并为一条语句,使结果在一也可以将三个表的操作合并为一条语句,使结果在一个表中显示:个表中显

9、示:SELECT student.*, course.*, sc.* FROM student, course, sc 2. 查询一个表中部分列查询一个表中部分列n若查询数据时要选择一个表中的部分列信息,若查询数据时要选择一个表中的部分列信息,则在则在SELECT后给出需要的列即可,各列名之后给出需要的列即可,各列名之间逗号分隔。间逗号分隔。【例例7-10】检索检索student表中学生的部分信息,表中学生的部分信息,包括学号、学生姓名和所属院系。包括学号、学生姓名和所属院系。nT-SQL语句为:语句为:SELECT sno, sname, sdept FROM student3. 为列设置别

10、名为列设置别名n通常情况下,当从一个表中取出列值时,该值与列的名称通常情况下,当从一个表中取出列值时,该值与列的名称是联系在一起的。如上例中从是联系在一起的。如上例中从student表中取出学号与学表中取出学号与学生姓名,取出的值就与生姓名,取出的值就与sno和和sname有联系。当希望查询有联系。当希望查询结果中的列使用新的名字来取代原来的列名称时,可以使结果中的列使用新的名字来取代原来的列名称时,可以使用以下方法:用以下方法:q列名之后使用列名之后使用AS关键字来更改查询结果中的列标题名。关键字来更改查询结果中的列标题名。如如sno AS 学号;学号;q直接在列名后使用列的别名,列的别名可

11、带双引号、单直接在列名后使用列的别名,列的别名可带双引号、单引号或不带引号。引号或不带引号。【例例7-11】检索检索student表中学生的表中学生的Sno、Sname、Sage和和Sdept,结果中各列的标题分别指定为学号、学生姓名、,结果中各列的标题分别指定为学号、学生姓名、年龄和所属院系。年龄和所属院系。nT-SQL语句为:语句为:SELECT sno as 学生学号学生学号, sname 学生姓名学生姓名, sage 年年龄龄 ,sdept 所属院系所属院系 FROM student4. 计算列值计算列值n使用使用SELECT语句对列进行查询时,语句对列进行查询时,SELECT后可以跟


文档来源:https://www.renrendoc.com/paper/212731582.html

文档标签:

下载地址