sqlserver2008数据库应用与开发教学课件作者李新德第三章

上传人:E**** 文档编号:102551845 上传时间:2019-10-03 格式:PPT 页数:86 大小:1.25MB
返回 下载 相关 举报
sqlserver2008数据库应用与开发教学课件作者李新德第三章_第1页
第1页 / 共86页
sqlserver2008数据库应用与开发教学课件作者李新德第三章_第2页
第2页 / 共86页
sqlserver2008数据库应用与开发教学课件作者李新德第三章_第3页
第3页 / 共86页
sqlserver2008数据库应用与开发教学课件作者李新德第三章_第4页
第4页 / 共86页
sqlserver2008数据库应用与开发教学课件作者李新德第三章_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《sqlserver2008数据库应用与开发教学课件作者李新德第三章》由会员分享,可在线阅读,更多相关《sqlserver2008数据库应用与开发教学课件作者李新德第三章(86页珍藏版)》请在金锄头文库上搜索。

1、第三章 数据表查询,项目四 查询表中的数据,返回,项目四 查询表中的数据,一、关系运算 SQL Server 2008 是一个关系数据库管理系统。关系数据库建立在关系模型的基础之上,具有严格的数学理论基础。关系数据库对数据的操作除了集合代数的并、差等运算之外,更定义了一组专门的关系运算:连接、选择和投影。关系运算的特点是运算的对象和结果都是表。对表中数据进行查询实际上就是对表进行相关的关系运算,如select 语句的条件查询就是选择运算,选择特定的列就是投影运算,多表连接查询就是连接运算。 1. 选择(selection) 选择是单目运算,其运算对象是一个表。,下一页,返回,项目四 查询表中的

2、数据,该运算按给定的条件,从表中选出满足条件的行,形成一个新表作为运算结果。 选择运算的记号为F(R)。 其中, 是选择运算符,下标F 是一个条件表达式,R 是被操作的表。 2. 投影(projection) 投影也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为A(R)。 其中,A 是属性名(即列名)表,R 是表名。,上一页,下一页,返回,项目四 查询表中的数据,3. 连接(join) 连接是把两个表中的行按照给定的条件进行拼接而形成新表,记为 其中,R、S 是被操作的表,F 是条件。 两个表连接最常用的条件是两个表的某些列值相等,这样的连接称为等值连接,上面的例子就是等值连接。

3、数据库应用中最常用的是“自然连接”。进行自然连接运算要求两个表有共同属性(列),自然连接运算的结果表是在参与操作的两个表的共同属性上进行等值连接后再去除重复的属性后所得的新表。自然连接运算记为 ,其中 R和 S是参与运算的两个表。,上一页,下一页,返回,项目四 查询表中的数据,二、在查询分析器中使用SQL 命令执行数据查询 若要使用SQL 命令对数据进行查询操作,需要使用查询分析器。 (1) 打开SQL Server 2008 管理控制台,单击工具栏上的“新建查询”按钮,打开查询分析器,如图31 所示。 (2) 选择要操作的表所在的数据库,如图32 所示,本书中使用“学生成绩管理系统”中的ST

4、UDY 数据库。 (3) 在查询分析器中输入SQL 查询语句,单击工具栏上的“执行”按钮或按F5 快捷键,在结果栏中显示查询结果,如图33 所示。,上一页,下一页,返回,项目四 查询表中的数据,任务一 对数据表的简单查询 【知识准备】 1. 选择特定列 语法格式: select 列名1,列名2,.|* from 表名 2. 限制结果集中返回行数 语法格式: select top npercent列名1,.from 表名,上一页,下一页,返回,项目四 查询表中的数据,3. 以特定列标题显示查询结果 语法格式: select 列名1 as 标题1,列名2 as 标题2,.from 表名 4. 去除

5、结果集中的重复行 语法格式: select distinct 列名1,.from 表名 5. 根据特定条件选择结果集 语法格式: select 列名1,.from 表名 where 条件表达式,上一页,下一页,返回,项目四 查询表中的数据,1)比较运算符 比较运算符用于比较两个表达式的值,返回True 或者False。常用比较运算符见表310。 2)范围运算符 当查询的条件是某个值的范围的时候,可以使用范围运算符。用于范围比较的关键字有两个:between 和in。范围运算符的常见用法见表311。 3)模式匹配 当查询的条件不够明确时,要使用模糊查询功能,SQL 语句使用like 关键字来对带

6、通配符的字符串进行模式匹配从而实现模糊查询。,上一页,下一页,返回,项目四 查询表中的数据,常见的通配符及其作用见表312。 4)逻辑运算符 当查询的条件为复合条件时,就需要使用逻辑运算符,常用的逻辑运算符有3 个:逻辑与and、逻辑或or 和逻辑非not,它们的优先级由高到低的顺序为:not,and,or,详见表313。 5)空值判断 当需要判定一个表达式的值是否为空时,需要使用is NULL 或者is not NULL 进行空值判断,NULL 代表空值。 【任务实施】,上一页,下一页,返回,项目四 查询表中的数据,(1) 查询所有学生信息。 分析:使用“*”代表所有列。查询命令如下,查询结

7、果如图34 所示: select*from tb_student (2) 查询表中所有学生的学号和姓名信息。 分析:使用字段名显示相应字段信息。查询命令如下,查询结果如图35 所示: select studentid,name from tb_student (3) 查询表中前面5 名学生的信息。,上一页,下一页,返回,项目四 查询表中的数据,分析:使用top 关键字。查询命令如下,查询结果如图36 所示: select top 5*from tb_student (4) 查询表中所有学生的学号和姓名,并以“学号”和“姓名”作为列标题替换原来的列标题“studentid”和“name”。 分析

8、:使用as 关键字修改用于显示的列名。查询命令如下,查询结果如图37 所示: select studentid as 学号,name as 姓名 from tb_student (5) 查询表中学生的专业信息,专业不可重复显示。,上一页,下一页,返回,项目四 查询表中的数据,分析:使用distinct 关键字去除重复行。查询命令如下,查询结果如图38 所示: select distinct specialty from tb_student (6) 查询表中所有男生的信息。 分析:使用where 子句进行条件查询。查询命令如下,查询结果如图39 所示: select*from tb_stude

9、nt where sex=1 (7) 查询总学分小于50 的学生的信息。 分析:使用比较运算符。查询命令如下,查询结果如图310 所示:,上一页,下一页,返回,项目四 查询表中的数据,select*from tb_student where sumcredit=50 and sumcredit=60,上一页,下一页,返回,项目四 查询表中的数据,(9) 查询备注信息不为空的学生的信息。 分析:使用空值判断。查询命令如下,查询结果如图312 所示: select*from tb_student where note is not null (10)查询所有姓李的学生的信息。 分析:使用like

10、关键字模式匹配进行模糊查询。查询命令如下,查询结果如图313 所示: select*from tb_student where name like 李% (11)查询计算机软件专业的所有男生的信息。,上一页,下一页,返回,项目四 查询表中的数据,分析:使用逻辑运算符进行多条件查询。查询命令如下,查询结果如图314 所示: select*from tb_student where sex=1 and specialty=计算机软件 (12)查询计算机软件专业和网络工程专业的学生的信息。 分析:使用范围运算符或者逻辑运算符。查询命令如下,查询结果如图315 所示: 使用范围运算符: select*

11、from tb_student where specialty in(计算机软件,网络工程),上一页,下一页,返回,项目四 查询表中的数据, 使用逻辑运算符: select*from tb_student where specialty=计算机软件 or specialty=网络工程 (13)查询计算机软件专业的男生和网络工程专业的女生的信息。 分析:使用逻辑运算符进行多条件查询。查询命令如下,查询结果如图316 所示: select*from tb_student where(sex=1 and specialty=计算机软件)or(sex=0 and specialty=网络工程) 任务二

12、 对数据表的复杂查询,上一页,下一页,返回,项目四 查询表中的数据,【知识准备】 一、子查询 在进行条件查询时,可以使用另一个查询的结果作为条件的一部分,作为查询条件一部分的查询称为子查询。子查询通常与in、exists 及比较运算符结合使用。 1. in 子查询。 条件表达式为:表达式notin(子查询) 2. 比较子查询。 条件表达式为:表达式 条件运算符 all|some|any(子查询),上一页,下一页,返回,项目四 查询表中的数据,3. exists 子查询 条件表达式为:notexists(子查询) 二、多表连接查询 1. 自然连接 自然连接是将要连接的列用作等值比较的连接,作为连

13、接的列只显示一次。自然连接是去掉重复属性的等值连接。 2. 带选择条件的连接 在进行多表连接查询时,除了指定的连接条件之外,还可以包括其他的选择条件。,上一页,下一页,返回,项目四 查询表中的数据,3. 自连接 如果所连接的表为同一张表,即表跟表自身相连,那么这种连接称为自连接。 4. 使用join 关键字进行连接 1)内连接 语法格式:select表名.列名,.from 表1innerjoin 表2 on 条件 2)外连接 语法格式:select表名.列名,.from 表1 left|right|fullouterjoin 表2 on 条件,上一页,下一页,返回,项目四 查询表中的数据,3)

14、交叉连接 语法格式:select表名.列名,.from 表1 cross join 表2 【任务实施】 (1) 查询学号为001101 的学生的计算机基础课程的成绩,显示学号、课程号和成绩。 分析:课程名称在课程表中,首先需要对课程表进行课程号的查询,将返回的结果值作为对成绩表进行查询的条件。查询命令如下,查询结果如图317 所示:,上一页,下一页,返回,项目四 查询表中的数据,(2) 查询选修了课程号为102 的课程的学生的信息。 分析:学生信息在学生表中,选修信息在成绩表中,需要对这两张表进行查询。可以使用子查询,或带选择条件的连接,或使用join 关键字进行内连接。查询命令如下,查询结果

15、如图318 所示: 使用子查询: select*from tb_student,上一页,下一页,返回,项目四 查询表中的数据,where studentid in(select studentid from tb_score where courseid=102) 使用带选择条件的连接: select tb_student.* from tb_student,tb_score where tb_student.studentid=tb_score.studentid and courseid=102 使用join 关键字进行内连接: select*from tb_student join tb

16、_score on tb_student.studentid=tb_score.studentid and courseid=102,上一页,下一页,返回,项目四 查询表中的数据,(3) 查询学号为001101 的学生所选修的课程的信息,要求显示课程号和课程名称。 分析:课程信息在课程表中,选修信息在成绩表中,需要对这两张表进行查询。可以使用子查询,或带选择条件的连接,或使用join 关键字进行内连接。查询命令如下,查询结果如图319所示: 使用子查询: select courseid,coursename from tb_course where courseid in(select courseid from tb_score where studentid=001101) 使用带选择条件的连接:,上一页,下一页,返回,项目四 查询表中的数据,select distinct tb_course.courseid

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

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

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