数据库基础及其应用 计算机类 教学课件 ppt 作者 李法春 任务四

上传人:E**** 文档编号:89516724 上传时间:2019-05-26 格式:PPT 页数:91 大小:2.57MB
返回 下载 相关 举报
数据库基础及其应用 计算机类  教学课件 ppt 作者 李法春 任务四_第1页
第1页 / 共91页
数据库基础及其应用 计算机类  教学课件 ppt 作者 李法春 任务四_第2页
第2页 / 共91页
数据库基础及其应用 计算机类  教学课件 ppt 作者 李法春 任务四_第3页
第3页 / 共91页
数据库基础及其应用 计算机类  教学课件 ppt 作者 李法春 任务四_第4页
第4页 / 共91页
数据库基础及其应用 计算机类  教学课件 ppt 作者 李法春 任务四_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《数据库基础及其应用 计算机类 教学课件 ppt 作者 李法春 任务四》由会员分享,可在线阅读,更多相关《数据库基础及其应用 计算机类 教学课件 ppt 作者 李法春 任务四(91页珍藏版)》请在金锄头文库上搜索。

1、,4.1 数据查询 4.2 创建视图,任务四 数据库的查询和视图,任务单,任务四 数据库的查询和视图,4.1 数据查询 4.2 创建视图,4.1 数据查询,SELECT 列名1 ,n INTO 新表名 FROM 表名1 , n WHERE 条件 GROUP BY 列名1 , n HAVING 条件 ORDER BY 列名1|列号1ASC|DESC , n,4.1 数据查询,(1)使用企业管理器进行查询 1)启动企业管理器,在窗口左边的目录树结构中选择要查询数据的表所在的数据库文件夹。 2)选择并打开其中的“表”对象,并在右边的窗口选择所要查询数据的表。 3)选择“操作”菜单中“Open Tab

2、le”子菜单下的“Return all rows”命令,打开表的数据记录窗口。 4)单击工具栏上的 快捷按钮,打开SQL查询窗口。 5)在SQL查询窗口中输入SQL查询命令。 6)单击工具栏上的 快捷按钮,执行SQL查询命令,并在查询结果窗口中显示查询结果。,(2)使用查询分析器进行查询,1)从“开始”菜单中的SQL Server程序组中启动SQL Server查询分析器,打开“SQL查询分析器”窗口。 2)在SQL查询分析器右上角的下拉框中选择要操作的数据库。 3)在查询窗口中输入SQL查询命令。 4)单击工具栏上的 快捷按钮,执行SQL查询命令,并在查询结果窗口中显示查询的结果。,4.1.

3、1 选择列,1、使用通配符(*) 使用(*)可以指定表中所有的列,注 意: 虽然,使用“*”便于查询表中所有的列,但在使用“*”的许多查询中,查询的效率是较低的。而且在一个查询中,可能只需要访问表中的部分列而不是所有的列,减少一些列能够大大地减少查询所耗费的时间。即使要检素表中所有的列也最好指定列名,以便使查询更具有描述性。,2、指定列,SELECT 列名1 , . . . n FROM 表名1 , . . . n ,4.1.1 选择列,3、使用列表达式 使用算术运算符对数字型数据列进行+、-、*、/和%运算,构造列表达式,来获取经过计算机的查询结果。 注意,取模运算时,的两边必须是整数型数据

4、。,4、改变查询结果中的列名,1)在列表达式前冠以一个后接等号(=)的字符串来为列表达式指定列名。 2)在列表达式后用AS按一个字符串为列表达式指定列名。 注:字符串可以用单引号括起来,也可不括。,4.1.1 选择列,5使用DISTINCT关键字消除重复记录 例如:SELECT DISTINCT 类别 FROM GOODS,6TOP n的使用,在查询时,可以使用TOP n指定返回查询结果的前n行记录,如果使用TOP n PERCENT,则是指定返回查询结果的前n%行记录。,5.1.2 FROM子句,FROM子句的语法: FROM 表名 | 视图名 | ,. . . n 说明: 1)当有多个数据

5、源时,用逗号分隔,但最多只能有16个数据源。 2)可为数据源指定别名,其方法为: 数据源名 AS 别名 其中AS可省略,该别名只在当前SELECT语句中起作用。,4.1.3 选择行,SELECT 列名1 ,. . . n FROM 表名1 , . . . n WHERE 查询条件,1. 使用比较运算符,、=、!=、!、!,注 意: (1)数据类型为char、nchar、varchar、nvarchar、text、datetime和smalldatetime的数据,引用时必须用单引号括起来,否则出错(一定注意不能用双引号括起来。 (2)当对字符类型的列进行英文字母串相等与否的比较时,系统是不区分

6、大小写的。如查询数据库pubs中authors表city列值等于“OAKLand”的数据记录,但是在查询结果中出现的是该列值为“Oakland”的数据记录。,2. 使用字符串模糊匹配,SELECT 列名1 ,. . . n FROM 表名1 , . . . n WHERE 列名 LIKE 匹配字符串,2. 使用字符串模糊匹配,注 意: (1)当使用LIKE关键字进行模糊匹配查找时,它通知SQL Server比较所指定的字符串,并且查询与所提供的字符串匹配的数据记录,查询符合条件的数据记录的时间会很长,因此,不推荐在大型表上使用模糊匹配。 (2)对于text类型列,由于不能直接比较,因此只能使用

7、模糊匹配,只要其值不为NULL,都可以查询到。,3. 用逻辑运算符,SELECT 列名1 ,. . . n FROM 表名1 ,. . . n WHERE NOT 查询条件 AND|OR|NOT查询条件 ,. . . n ,逻辑或OR表示查询表中所有满足OR两边任一个查询条件的数据记录行 逻辑与AND表示查询表中所有同时满足AND两边的查询条件的数据记录行。,4. 使用查询范围,SELECT 列名1 ,. . . n FROM 表名1 ,. . . n WHERE 列名 BETWEEN 取值范围下界 AND 取值范围上界,5. 使用查询集合,SELECT 列名1 ,. . . n FROM 表

8、名1 ,. . . n WHERE 列名 IN (列值1 ,. . . n ),5.1.5 排序,通常情况下SQL Server数据库中的数据记录行在显示时是无序的,它按照数据记录插入数据库时的顺序排列,因此查询的结果也是无序的。如果我们要求数据记录按照一定的顺序显示,如升序或降序,我们可以使用两种方法对查询结果进行排序显示。,1利用索引,第一种对查询结果进行排序的方法是为表中的列建立聚集索引或普通索引。 注意:一个表只能有一个聚集索引。 当查询指定的是单个列,且该列有索引时,查询结果按照该列的索引定义的顺序显示,否则都按照表的聚集索引顺序显示,使用强制索引,(1)使用索引名 SELECT 列

9、名, n FROM 表名1, n WITH (INDEX(索引名) WHERE 逻辑表达式,使用强制索引,(2)使用索引号 SELECT 列名, n FROM 表名1, n WITH (INDEX = 索引号) WHERE 逻辑表达式,索引号表示第几个索引。如果索引号为0,表示以堆方式扫描表,即不使用任务索引;如果索引号为1,表示使用聚集索引;如果索引号为2251中的某个值,表示使用指定的非聚集索引。,从系统表sysindexes中可以查出各索引号所代表的具体索引(查看该表的name列和indid列,name列为索引名,indid列为索引号)。,2使用ORDER BY子句 排序,SELECT

10、列名1 , . . . n FROM 表名1 , . . . n ORDER BY 列名1|列号1ASC|DESC , . . . n ,注 意:,WHERE子句要写到ORDER BY子句的前面,今后还要学习其他子句的使用,当多个子句联用时,一定要注意各子句书写的顺序。,5.1.4 数据汇报总,使用聚合函数,2. 使用分组汇总子句,SELECT 列名1 , . . . n FROM 表名1 , . . . n GROUP BY 列名1 , . . . n HAVING 逻辑表达式,注:SELECT子句中指定的列必须是GROUP BY子句中指定的列,或者和聚合函数一起使用。,注 意,如果GROU

11、P BY子句中指定了多个列,则表示基于这些列的惟一组合来进行分组。在该分组过程中,首先按第一列进行分组并按升序排列,然后再按第二列进行分组并按升序排列,依此类推,最后在分好的组中进行汇总。因此当指定的列顺序不同时,返回的结果也不同。 AVING是作为GROUP BY子句的条件出现的,所以HAVING子句必须与GROUP BY子句同时出现,必须在GROUP BY子句之后出现,并且HAVING必须是汇总条件或分组条件。 当SELECT语句中同时存在WHERE、GROUP BY及HAVING时,其执行顺序为:先WHERE,后GROUP BY,再HAVING。,3. 使用WITH ROLLUP 和WI

12、TH CUBE选项,1)WITH ROLLUP:通过对指定列从第一列到最后一列的顺序分组,然后对这些超级组进行汇总。 2)WITH CUBE:通过对指定列进行交叉分组,然后对这些超级组进行汇总。 注:当使用这两个选项时,HAVING选项必须放在其后,且HAVING选项中的逻辑表达式只能包含使用了聚合函数的列。,3. 使用WITH ROLLUP 和WITH CUBE选项,3. 使用WITH ROLLUP 和WITH CUBE选项,4. 使用明细汇总子句,SELECT 列名1 , . . . n FROM 表名1 , . . . n WHERE 逻辑表达式 GROUP BY 列名1 , . . .

13、 n ORDER BY 列名1|列号1ASC|DESC , . . . n COMPUTE 聚合函数(列名1) , . . . n BY 列名1 , . . . n ,4. 使用明细汇总子句,说明: 1)如果使用GROUP BY子句,那么SELECT子句中指定的列必须在GROUP BY子句中指定,或者是和聚合函数一起使用。 2)COMPUTE子句中的列必须出现在SELECT子句的列表中,不能用别名。 3)使用COMPUTE BY子句就不能同时使用SELECT INTO子句,因为包括COMPUTE BY的语句不能产生相关输出。 4)BY选项表示按指定的列进行明细汇总,使用BY选项时必须同时使用O

14、RDER BY子句,且BY选项后的列必须具有和ORDER BY后的列相同的顺序,且不能跳过其中的列。,4.1.6 INTO子句,SELECT 列名1 , . . . n INTO 新表名 FROM 表名1 , . . . n WHERE 逻辑表达式,作 用: 1、用于创建表的副本或临时表。 2、新表的列为SELECT子句指定的列,且不改变原表中列的数据类型和允许空属性,但是忽略其他的所有信息,如默认值、约束等信息。,4.1.7 连接查询与联合查询,1.连接查询 定义:连接查询就是将多个表通过某个或某些列为条件进行连接,从中查询数据。,1. 连接查询,1)ANSI连接: SELECT 列名1 ,

15、 . . . n FROM 表名1 连接类型JOIN 表名2 ON 连接条件 , . . . n WHERE 逻辑表达式,2)SQL Server连接语法: SELECT 列名1 , . . . n FROM 表名1 , . . . n WHERE 查询条件 AND |OR 连接条件 , . . . n ,(1)内连接,多个表通过连接条件中共享列的相等值进行的匹配连接。 两种形式: 1)等值连接:产生冗余列,因为它将连接条件中的共享列显示两次。 2)自然连接:清除等价连接连接产生的冗余列。,注:在没有特殊说明时都指的是自然连接,在ANSI中,内连接使用的关键字为:INNER JOIN,(2)外连接,内连接查询时,只包含两表中都满足连接条件的行,而外连接则把某些不满足条件的行显示出来。 1)左连接 ANSI连接语法:LEFT OUTER JOIN SQL Server连接语法:*=,(2)外连接,2)右连接 ANSI连接语法:RIGHT OUTER JOIN SQL Server连接语法:=*,(2)外连接,3)全连接 ANSI连接语法:FULL OUTER JOIN,(3)自连接,自连接就是使用内连接或外连接把一个表中的行同该表中另外一些行连接起来,它主要用在查询比较相同的信息。 【例4-40】利用自连接在订单表orders中查

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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