SQL Server 2008数据库管理与开发教程 第2版 教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章 数据查询与操作

上传人:E**** 文档编号:89399751 上传时间:2019-05-24 格式:PPT 页数:153 大小:1.72MB
返回 下载 相关 举报
SQL Server 2008数据库管理与开发教程 第2版  教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章  数据查询与操作_第1页
第1页 / 共153页
SQL Server 2008数据库管理与开发教程 第2版  教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章  数据查询与操作_第2页
第2页 / 共153页
SQL Server 2008数据库管理与开发教程 第2版  教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章  数据查询与操作_第3页
第3页 / 共153页
SQL Server 2008数据库管理与开发教程 第2版  教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章  数据查询与操作_第4页
第4页 / 共153页
SQL Server 2008数据库管理与开发教程 第2版  教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章  数据查询与操作_第5页
第5页 / 共153页
点击查看更多>>
资源描述

《SQL Server 2008数据库管理与开发教程 第2版 教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章 数据查询与操作》由会员分享,可在线阅读,更多相关《SQL Server 2008数据库管理与开发教程 第2版 教学课件 ppt 作者 王雨竹 张玉花 张星_ 第5章 数据查询与操作(153页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 2008 数据库管理与开发教程,第5章 数据查询与操作,本章主要介绍针对数据表记录的各种查询以及对记录的操作,主要包括选择查询、数据汇总、基于多表的连接查询、子查询以及向表中添加、修改和删除记录。 通过本章的学习,读者可以应用各种查询对数据表中的记录进行访问,可以使用SQL Server Management Studio或者调用Transact-SQL语句对数据表中的记录进行操作。,5.1 创建查询和测试查询,5.1.1 编写SQL语句 在SQL Server 2008中,用户可以在Microsoft SQL Server Manager Studio中编写SQL语句操

2、作数据库。,(1)单击“开始”/“程序”/“Microsoft SQL Server 2008”/“SQL Server Management Studio”命令,打开SQL Server Manager Studio窗口。,(2)使用“Windows身份验证”建立连接。 (3)单击“标准”工具栏上的“新建查询”按钮。 (4)输入如下SQL语句: Use student Select * From course,5.1.2 测试SQL语句,在新建的查询窗口中输入SQL语句之后,为了查看语句是否有语法错误,需要对SQL语句进行测试。 单击工具栏中的 按钮或直接按+组合键可以对当前的SQL语句进行

3、测试,如果SQL语句准确无误,在代码区下方会显示“命令已成功完成”,否则显示错误信息提示。,5.1.3 执行SQL语句,最后要执行SQL语句才能实现各种操作。 单击工具栏上的 按钮或直接按键可以执行SQL语句。 上面输入的SQL语句的执行结果如图5.1所示。,图5.1 显示Course表的所有记录,5.2 选 择 查 询,5.2.1 简单的SELECT查询 SELECT语句是从数据库中检索数据并查询,并将查询结果以表格的形式返回。,SELECT语句的基本语法如下: SELECT select_list INTO new_table FROM table_source WHERE search_

4、condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC| DESC ,1选择所有字段,Select语句后的第一个子句,即Select关键字开头的子句,用于选择进行显示的列。 如果要显示数据表中所有列的值时,Select子句后用星号(*)表示。,【例5-1】 查询包含所有字段的记录。 在Student数据库中,查询grade表的所有记录,查询结果如图5.2所示。 SQL语句如下: use student select * from grade,图5.2 查询显示gra

5、de表的内容,2选择部分字段,在查询表时,很多时候只显示所需要的字段。 这时在Select子句后分别列出各个字段名称就可以。 【例5-2】 查询包含部分字段的记录。,图5.3 显示grade表的部分列,查询前,查询后,SQL语句如下: use student select 学号,课程成绩 from grade,5.2.2 重新对列排序,对于表格比较小,不用ORDER BY子句,查询结果会按照在表格中的顺序排列的。 但对于表格比较大的,则必须使用ORDER BY子句,方便查看查询结果。,ORDER BY子句由关键字ORDER BY后跟一个用逗号分开的排序列表组成,语法如下: ORDER BY o

6、rder_by_expression ASC | DESC ,.n ,1单级排序,排序的关键字是order by,默认状态下是升序,关键字是asc。 可以按照某一个字段排序,排序的字段是数值型,也可以是字符型、日期和时间型。 【例5-3】 按照某一个字段进行排序。,图5.4 grade表按照“课程成绩”升序排序,SQL语句如下: use student select * from grade order by 课程成绩,2多级排序,按照一列进行排序后,如果该列有重复的记录值,则重复记录值这部分就没有进行有效的排序,这就需要再附加一个字段,作为第二次排序的标准,对没有排序的记录进行再排序。 【例

7、5-4】 按照多个字段进行排序。,图5.5 grade表按照多级字段排序,SQL语句如下: use student use student select * from grade order by 学期 desc, 课程成绩,5.2.3 使用运算符或函数进行列计算,某些查询要求在字段上带表达式进行查询,关于表达式中运算符和函数部分请参考Transact-SQL语法部分。,带表达式的查询语法如下:SELECT 表达式1,表达式2,字段1,字段2,.from 数据表名 【例5-5】 使用运算符进行列计算。,图5.6 表达式查询,5.2.4 利用WHERE参数过滤数据,WHERE子句是用来选取需要检

8、索的记录。 因为一个表通常会有数千条记录,在查询结果中,用户仅需其中的一部分记录,这时需要使用WHERE子句指定一系列的查询条件。,WHERE子句简单的语法如下: SELECT FROM WHERE,(1)比较运算符(如=、)。 (2)范围说明(BETWEEN和NOT BETWEEN)。 (3)可选值列表(IN和NOT IN)。 (4)模式匹配(LIKE和NOT LIKE)。 (5)上述条件的逻辑组合(AND、OR、NOT)。,1比较查询条件,比较查询条件由比较运算符连接表达式组成,系统将根据该查询条件的真假来决定某一条记录是否满足该查询条件,只有满足该查询条件的记录才会出现在最终的结果集中。

9、 SQL Server比较运算符如表5.3所示。,【例5-6】 使用运算符进行比较查询。,图5.7 查询grade表中课程成绩大于90分的信息,SQL语句如下: use student select * from grade where 课程成绩90,2范围查询条件,使用范围条件进行查询,是当需要返回某一个数据值是否位于两个给定值之间,通常使用BETWEENAND和NOTBETWEENAND来指定范围条件。,使用BETWEENAND查询条件时,指定的第1个值必须小于第2个值。 因为BETWEENAND实质是查询条件“大于等于第1个值,并且小于等于第2个值”的简写形式。 即BETWEENAND要

10、包括两端的值,等价于比较运算符(=)。,图5.8 显示grade表中年龄在2021岁之间的学生信息,SQL语句如下: use student select * from student where 年龄 between 20 and 21,【例5-8】 使用NOTBETWEENAND语句进行范围查询。,图5.9 显示grade表中年龄不在2021岁之间的学生信息,SQL语句如下: use student select * from student where 年龄 not between 20 and 21,3列表查询条件,当测试一个数据值是否匹配一组目标值中的一个时,通常使用IN关键字来指定

11、列表搜索条件。 IN关键字的格式是IN(目标值1,目标值2,目标值3,),目标值的项目之间必须使用逗号分隔,并且括在括号中。 【例5-9】 使用IN关键字进行列表查询。,图5.10 查询“课程编号”是k01,k03,k04的课程信息,SQL语句如下: use student select * from course where 课程代号in (k01,k03, k04),【例5-10】 使用NOT IN关键字进行列表查询。,图5.11 查询“课程编号”不是k01,k03,k04的课程信息,SQL语句如下: Use student select * from course where 课程代号

12、not in (k01,k03, k04),4模糊LIKE查询,有时用户对查询数据表中的数据了解的不全面,如不能确定所要查询人的姓名只知道他姓李、查询某个人的联系方式只知道是以“3451”结尾等,这时需要使用LIKE进行模糊查询。 LIKE关键字需要使用通配符在字符串内查找指定的模式,所以读者需要了解通配符及其含义。 通配符的含义如表5.4所示。,(1)“%”通配符,【例5-11】 使用%通配符进行模糊查询。,图5.12 student表中查询姓李的同学信息,SQL语句如下: use student select * from student where 姓名 like 李%,(2)“_”通配

13、符,【例5-12】 使用“_”通配符进行模糊查询。,图5.13 在student表中查询姓“刘” 并且名字是两个字的学生信息,SQL语句如下: use student select * from student where 姓名 like 刘_,(3)“ ”通配符,【例5-13】 使用“ ”通配符进行模糊查询。,图5.14 在student表中查询联系方式以“3451”结尾的学生,SQL语句如下: use student select * from student where 联系方式 like 1-53451,(4)“”通配符,【例5-14】 使用“”通配符进行模糊查询。,图5.15 在st

14、udent表中查询联系方式 以“3451”结尾但不以2开头的学生信息,SQL语句如下: use student select * from student where 联系方式 like 23451,5复合查询条件,很多情况下,在where子句中仅仅使用一个条件不能准确地从表中检索到需要的数据,这里就需要逻辑运算符AND、OR和NOT。,使用逻辑运算符时,遵循的指导原则如下: (1)使用AND返回满足所有条件的行; (2)使用OR返回满足任一条件的行; (3)使用NOT返回不满足表达式的行。,【例5-15】 使用AND和OR结合进行查询。,图5.16 复合搜索,SQL语句如下: use stu

15、dent select * from student where 年龄 21 and 性别=女 or 年龄=19 and 性别=男,5.2.5 消除重复记录,DISTINCT关键字主要用来从SELECT语句的结果集中去掉重复的记录。 如果用户没有指定DISTINCT关键字,那么系统将返回所有符合条件的记录组成结果集,其中包括重复的记录。,【例5-16】 使用DISTINCT关键字消除重复记录。,图5.17 显示course表中的课程类别,SQL语句如下: use student select distinct 课程类别 from course,5.3 数 据 汇 总,5.3.1 使用聚合函数

16、SQL提供一组聚合函数,它们能够对整个数据集合进行计算,将一组原始数据转换为有用的的信息,以便用户使用。 例如求成绩表中的总成绩、学生表中平均年龄等。,5.3.2 使用GROUP BY子句,(1)在SELECT子句的字段列表中,除了聚集函数外,其他所出现的字段一定要在GROUP BY子句中有定义才行。 (2)SELECT子句的字段列表中不一定要有聚集函数,但至少要用到GROUP BY子句列表中的一个项目。,(3)在SQL Server中text、ntext和image数据类型的字段不能作为GROUP BY子句的分组依据。 (4)GROUP BY子句不能使用字段别名。,1按单列分组,GROUP BY子句可以基于指定某一列的值将数据集合划分为多个分组,同一组内所有记录在分组属性上具有相同值。 【例5-17】 使用GROUP BY

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

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

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