书签 分享 收藏 举报 版权申诉 / 54
上传文档赚钱

类型第08章+数据查询课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5066531
  • 上传时间:2023-02-07
  • 格式:PPT
  • 页数:54
  • 大小:767KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第08章+数据查询课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    08 数据 查询 课件
    资源描述:

    1、第八章第八章 数据查询数据查询计算机基础教学部计算机基础教学部本章内容本章内容8.1 8.1 查询分析器简介查询分析器简介8.2 SELECT8.2 SELECT语句简介语句简介8.3 SELECT8.3 SELECT基本查询基本查询8.4 SELECT8.4 SELECT嵌套查询嵌套查询8.5 8.5 连接查询连接查询8.6 8.6 在在INSERTINSERT、UPDATEUPDATE和和DELETEDELETE语句中使用子查询语句中使用子查询8.1 8.1 查询分析器简介查询分析器简介J通过开始菜单启动通过开始菜单启动J通过企业管理器启动通过企业管理器启动l启动查询分析器启动查询分析器8

    2、.1 8.1 查询分析器简介查询分析器简介l查询分析器的工作界面查询分析器的工作界面8.1 8.1 查询分析器简介查询分析器简介l查询分析器的常用操作查询分析器的常用操作l执行执行SQL语句语句在【输入在【输入SQL区域】中输入区域】中输入SQL语句或打开一个语句或打开一个SQL文件,单击工具栏执行按钮文件,单击工具栏执行按钮 或按或按F5。l查看和修改表中的数据查看和修改表中的数据8.1 8.1 查询分析器简介查询分析器简介l控制查询结果的显示方式控制查询结果的显示方式菜单菜单工具栏工具栏8.1 8.1 查询分析器简介查询分析器简介l新建查询窗口新建查询窗口J 单击工具栏【新建查询】按钮单击

    3、工具栏【新建查询】按钮 。J 选择菜单【文件】选择菜单【文件】|【新建【新建】l保存在查询窗口中输入的保存在查询窗口中输入的SQL语句语句将光标置于输入将光标置于输入SQL区域区域J 单击工具栏保存按钮单击工具栏保存按钮 J 选择菜单【文件】选择菜单【文件】|【保存【保存】l保存查询结果保存查询结果将光标置于查询结果显示区域将光标置于查询结果显示区域J 单击工具栏保存按钮单击工具栏保存按钮 J 选择菜单【文件】选择菜单【文件】|【保存【保存】8.1 8.1 查询分析器简介查询分析器简介l对象搜索对象搜索单击工具栏对象搜索按钮单击工具栏对象搜索按钮 或选择菜单【工具】或选择菜单【工具】|【对象搜

    4、索】【对象搜索】|【新建】。【新建】。8.2 SELECT8.2 SELECT语句简介语句简介l数据查询是数据库最重要也是最主要数据查询是数据库最重要也是最主要的功能,在数据库中,数据查询是通的功能,在数据库中,数据查询是通过过SELECT语句来完成的。语句来完成的。lSELECT查询语句只有一条语句,却查询语句只有一条语句,却能实现各种需求的查询。能实现各种需求的查询。l功能非常强大,依赖于其子句。功能非常强大,依赖于其子句。lSELECT语句的框架:语句的框架:8.2 SELECT8.2 SELECT语句简介语句简介 ALL|DISTINCT;ALL|DISTINCT;TOP n PERC

    5、ENT;TOP n PERCENT;.ASAS,ASAS;,;INNER/LEFT/RIGHT/FULL JOIN INNER/LEFT/RIGHT/FULL JOIN;ON ON ;,2 ;ASC/DESC,ASC/DESC,列名列名2ASC/DESC2ASC/DESC 集合函数集合函数(),1),集合函数集合函数(),2),2,SELECT和和FROM是必备是必备的,其他子句根据实际情况设定。的,其他子句根据实际情况设定。8.3 SELECT8.3 SELECT基本查询基本查询l无条件简单查询无条件简单查询 ALL|DISTINCT TOP n PERCENT table_namel查询结

    6、果:从查询结果:从table_name中返回数据。中返回数据。l各选项含义:各选项含义:lALL:表示输出所有记录,包括重复记录。:表示输出所有记录,包括重复记录。lDISTINCT:输出无重复结果的记录。:输出无重复结果的记录。lTOP n:返回查询结果的前:返回查询结果的前n行数据。行数据。lTOP n PERCENT:返回查询结果前:返回查询结果前n%行数据。行数据。lselect_list:所要查询的选项(列)的集合,多个选项之间:所要查询的选项(列)的集合,多个选项之间用逗号分开。用逗号分开。ltable_name:要查询的表名。:要查询的表名。8.3 SELECT8.3 SELEC

    7、T基本查询基本查询查询课程表中的所有数据。查询课程表中的所有数据。select 课程号课程号,课程名课程名,学时学时 from 课程表课程表select*from 课程表课程表查询课程表中前两行数据。查询课程表中前两行数据。select top 2 课程号课程号,课程名课程名,学时学时 from 课程表课程表8.3 SELECT8.3 SELECT基本查询基本查询:查询课程表中前一半数据。:查询课程表中前一半数据。select top 50 percent*from 课程表课程表查询课程表中学时列,不显示重复记录。查询课程表中学时列,不显示重复记录。select distinct 学时学时 f

    8、rom 课程表课程表Select Select 学时学时 from from 课程表课程表8.3 SELECT8.3 SELECT基本查询基本查询下列下列SELECT语句含义语句含义p select*from 学生学生p select top 3 学号学号,姓名姓名,性别性别 from 学生学生p select top 20 percent 学号学号,姓名姓名,性别性别from 学生学生p select distinct 性别性别 from 学生学生8.3 SELECT8.3 SELECT基本查询基本查询使用别名使用别名在输出结果中,如果不希望使用字段名作为各列的标题,在输出结果中,如果不希望

    9、使用字段名作为各列的标题,可以根据需求设置列标题。可以根据需求设置列标题。column_name1 column_title1,查询课程表所有数据,字段学时显示为课时。查询课程表所有数据,字段学时显示为课时。select 课程号课程号,课程名课程名,学时学时 as 课时课时 from 课程表课程表AS可以省略。可以省略。select 课程号课程号,课程名课程名,学时学时 课时课时 from 课程表课程表8.3 SELECT8.3 SELECT基本查询基本查询使用集合函数进行统计使用集合函数进行统计可以通过可以通过对表数据进行统计计算,并返对表数据进行统计计算,并返回计算结果。比如查询表中记录的

    10、个数、查询回计算结果。比如查询表中记录的个数、查询学生的平均成绩等。学生的平均成绩等。:求一列数据的平均值。:求一列数据的平均值。:求一列数据的和。:求一列数据的和。:统计查询的行数。:统计查询的行数。:求列中的最小值。:求列中的最小值。:求列中的最大值。:求列中的最大值。8.3 SELECT8.3 SELECT基本查询基本查询查询学生表中的记录数。查询学生表中的记录数。select count(*)from 学生表学生表查询选课表中最高分和最低分。查询选课表中最高分和最低分。select max(成绩成绩),min(成绩成绩)from 选课表选课表查询选课表中的平均成绩。查询选课表中的平均成

    11、绩。select avg(成绩成绩)from 选课表选课表在使用集合函数时,常需重新命令列标题。在使用集合函数时,常需重新命令列标题。改为:改为:select max(成绩成绩)最高分最高分,min(成绩成绩)最低分最低分 from 选课表选课表8.3 SELECT8.3 SELECT基本查询基本查询l带条件查询带条件查询经常会查询符合某条件的记录,比如查询学生表经常会查询符合某条件的记录,比如查询学生表中女同学的信息,查询成绩在中女同学的信息,查询成绩在90分以上的记录分以上的记录等。通过等。通过WHERE子句来指定查询条件。子句来指定查询条件。格式:格式:通过通过和和构成的逻辑构成的逻辑判

    12、断的式子。判断的式子。:=、!=(或(或)、)、=、=90;not(成绩成绩=90)课程号课程号=c01 and 成绩成绩=808.3 SELECT8.3 SELECT基本查询基本查询查询学生表中女同学的个人信息。查询学生表中女同学的个人信息。select 学号学号,姓名姓名,性别性别 from 学生表学生表 where 性别性别=女女查询课程表中查询课程表中c01和和c03这两门课程情况。这两门课程情况。select*from 课程表课程表 where 课程号课程号=c01 课程号课程号=c03%书写表达式时需要根据数据类型来加定界符。书写表达式时需要根据数据类型来加定界符。%表达多个条件时

    13、使用表达多个条件时使用AND和和OR,注意其逻辑含义。,注意其逻辑含义。8.3 SELECT8.3 SELECT基本查询基本查询l查询结果处理查询结果处理l排序输出排序输出ORDER BY语法格式:语法格式:ORDER BY order_by_expression1ASC|DESC,order_by_expression2ASC|DESC,升序(默认);升序(默认);降序降序order_by_expression1通常为字段,字段与字通常为字段,字段与字段之间用逗号分隔。段之间用逗号分隔。例如:例如:order by 性别(以性别来排序)性别(以性别来排序)order by 性别性别,姓名(先

    14、以性别升序来排,姓名(先以性别升序来排,性别相同的再以姓名升序来排)性别相同的再以姓名升序来排)8.3 SELECT8.3 SELECT基本查询基本查询将选课表的成绩按从将选课表的成绩按从低到高的顺序显示。低到高的顺序显示。select*from 选课表选课表 order by 成绩成绩 将选课表的成绩按从将选课表的成绩按从高到低的顺序显示。高到低的顺序显示。select*from 选课表选课表 order by 成绩成绩 字母排序字母排序AZAZ为升序;为升序;ZAZA为降序。汉字排序为降序。汉字排序取汉字的汉语拼音,再以字母序来排。取汉字的汉语拼音,再以字母序来排。课堂练习课堂练习在在“学

    15、生表学生表”中实现以下查询:中实现以下查询:所有学生的学号、姓名、性别信息,并按学号排序。所有学生的学号、姓名、性别信息,并按学号排序。所有女生的信息。所有女生的信息。所有女生的人数。所有女生的人数。在在“选课表选课表”中实现以下查询:中实现以下查询:查找学号为查找学号为s2008003的课程号、成绩。的课程号、成绩。查找成绩在查找成绩在80分以上的学生学号、成绩。分以上的学生学号、成绩。查找课程号为查找课程号为c01的最高分、最低分、平均分。的最高分、最低分、平均分。计算成绩在计算成绩在90分以上的记录数。分以上的记录数。表的基本操作表的基本操作在课程表中插入一条记录:课程号在课程表中插入一

    16、条记录:课程号c06,课程名为课程名为photoshop,学学时为时为40修改课程号为修改课程号为c06记录的学时数为记录的学时数为60删除课程号为删除课程号为c06记录记录8.3 SELECT8.3 SELECT基本查询基本查询重定向输入重定向输入INTO把查询结果存放到一个新表中。把查询结果存放到一个新表中。语法:语法:new_table查询出学生表中女同学的个人信息,并将结查询出学生表中女同学的个人信息,并将结果存入女同学表中。果存入女同学表中。select*from 学生表学生表 where 性别性别=女女Select*from 女同学表女同学表8.3 SELECT8.3 SELECT

    17、基本查询基本查询输出合并输出合并UNION把来自不同查询的数据组合起来,形成一个具把来自不同查询的数据组合起来,形成一个具有综合信息的查询结果。有综合信息的查询结果。语法:语法:ALL结果全部合并,若没有结果全部合并,若没有ALL,则重复,则重复的记录将被自动去掉。的记录将被自动去掉。8.3 SELECT8.3 SELECT基本查询基本查询将男同学表和女同学表的记录合并。将男同学表和女同学表的记录合并。select 学号学号,姓名姓名,性别性别 from 女同学表女同学表select 学号学号,姓名姓名,性别性别 from 男同学表男同学表%两个两个SELECT语句必须输出同样的列数。语句必须

    18、输出同样的列数。%两个表各相应列的数据类型必须相同。两个表各相应列的数据类型必须相同。%只有最后一个只有最后一个SELECT语句中可以用语句中可以用ORDER BY 子子句。句。8.3 SELECT8.3 SELECT基本查询基本查询分组统计分组统计GROUP BY通过通过GROUP BY子句可以将查询结果按指定列进行分组,子句可以将查询结果按指定列进行分组,该列值相等的记录为一组。该列值相等的记录为一组。语法:语法:group_by_expression1,group_by_expression2,统计学生表中男女生人数。统计学生表中男女生人数。select 性别性别,count(*)as

    19、人数人数 from 学生表学生表%group_by_expression1通常为字段名(列名)。通常为字段名(列名)。%通常和集合函数一起使用。通常和集合函数一起使用。统计选课表中每位学生的平均成绩。统计选课表中每位学生的平均成绩。8.3 SELECT8.3 SELECT基本查询基本查询筛选筛选HAVING若在分组后还要按照一定的条件进行筛选,则需使用若在分组后还要按照一定的条件进行筛选,则需使用HAVING子句。子句。语法:语法:searching_condition 查询选课表中平均成绩在查询选课表中平均成绩在90分以上的学生学号分以上的学生学号和平均成绩。和平均成绩。select 学号学

    20、号,avg(成绩成绩)平均成绩平均成绩 from 选课表选课表group by 学号学号 8.3 SELECT8.3 SELECT基本查询基本查询lHAVING子句通常需要使用集合函数来限定查子句通常需要使用集合函数来限定查询结果。询结果。lHAVING子句和子句和WHERE子句都是条件限定子子句都是条件限定子句,但其作用对象不同。句,但其作用对象不同。WHERE子句子句HAVING子句子句作用对象作用对象表字段表字段计算字段计算字段与分组的关系与分组的关系无关无关只能用于分组查询只能用于分组查询中,必须在中,必须在GROUP BY 之后。之后。8.3 SELECT8.3 SELECT基本查询

    21、基本查询l在多表连接查询中使用分组统计在多表连接查询中使用分组统计统计各门课程的平均成绩,并显示课程名。统计各门课程的平均成绩,并显示课程名。select 课程表课程表.课程号课程号,max(课程名课程名)课程名课程名,avg(成绩成绩)平均成绩平均成绩from 选课表选课表 inner join 课程表课程表 on 选课表选课表.课程号课程号=课程表课程表.课程号课程号group by 课程表课程表.课程号课程号统计平均分在统计平均分在9090分以上的课程号、课程名分以上的课程号、课程名和平均成绩。和平均成绩。查询学生的平均成绩,并显示学生姓名。查询学生的平均成绩,并显示学生姓名。课堂练习课

    22、堂练习完成对如下三个表的查询:完成对如下三个表的查询:职工职工(*职工号职工号 int,姓名姓名 char(8),性别性别 char(2),出生日期出生日期 datetime,党员否党员否 bit,参加工作参加工作 datetime,部门号部门号 int)部门部门(*部门号部门号 int,部门名部门名 char(10)工资工资(*职工号职工号 int,*工资日期工资日期 datetime,工资工资 decimal(6,1)计算各部门员工数。计算各部门员工数。显示所有职工的平均工资。显示所有职工的平均工资。显示所有职工的职工号、姓名和平均工资。显示所有职工的职工号、姓名和平均工资。8.3 SEL

    23、ECT8.3 SELECT基本查询基本查询使用使用COMPUTE和和COMPUTE BY子句汇总子句汇总使用使用COMPUTE子句可以在查询的结果集中生成汇总子句可以在查询的结果集中生成汇总行的同时,还生成明细行。行的同时,还生成明细行。语法:语法:COMPUTE row_aggregate(column_name),row_aggregate(colornn_name).BY column_name,column_name.查询选课表中学号为查询选课表中学号为s2008001的平均成绩及的平均成绩及各科成绩。各科成绩。select 学号学号,课程号课程号,成绩成绩from 选课表选课表whe

    24、re 学号学号=s2008001 8.3 SELECT8.3 SELECT基本查询基本查询COMPUTE子句生成集合函数结果附加在结果集的最子句生成集合函数结果附加在结果集的最后,当与后,当与一起使用时,一起使用时,COMPUTE子句在结果集内子句在结果集内对指定列进行分组汇总。对指定列进行分组汇总。查询选课表中学生的各科成绩及平均成绩。查询选课表中学生的各科成绩及平均成绩。select 学号学号,课程号课程号,成绩成绩from 选课表选课表%COMPUTECOMPUTE子句中指定的列必须是子句中指定的列必须是SELECTSELECT子句中已有的。子句中已有的。%COMPUTE BYCOMPU

    25、TE BY必须与必须与ORDER BYORDER BY子句一起子句一起使用,且两个子句指定的列及顺序相同。使用,且两个子句指定的列及顺序相同。%不能与不能与SELECT INTOSELECT INTO子句一起使用。子句一起使用。8.4 SELECT8.4 SELECT嵌套查询嵌套查询l有时一个有时一个SELECTSELECT语句无法完成查询任务,而需语句无法完成查询任务,而需要一个子要一个子SELECTSELECT的结果作为查询的条件,即需的结果作为查询的条件,即需要在一个要在一个SELECTSELECT语句的语句的WHEREWHERE子句中出现另一子句中出现另一个个SELECTSELECT语

    26、句,这种查询称为语句,这种查询称为。l通常把仅嵌入一层子查询的通常把仅嵌入一层子查询的SELECTSELECT语句称为语句称为,把嵌入子查询多于一层的查询称,把嵌入子查询多于一层的查询称为为。lSQL ServerSQL Server允许多层嵌套查询,嵌套查询一般允许多层嵌套查询,嵌套查询一般的查询方法是的查询方法是。8.4 SELECT8.4 SELECT嵌套查询嵌套查询l单值嵌套查询单值嵌套查询子查询的返回结果是一个值的嵌套查询。子查询的返回结果是一个值的嵌套查询。查询选课表中英语考试成绩。查询选课表中英语考试成绩。select 学号学号,成绩成绩,课程号课程号 from 选课表选课表 w

    27、here 课程号课程号=(select 课程号课程号 from 课程表课程表 where 课程名课程名=英语英语)8.4 SELECT8.4 SELECT嵌套查询嵌套查询l多值嵌套查询多值嵌套查询子查询的返回结果是一列值的嵌套查询。如果子查询的返回结果是一列值的嵌套查询。如果子查询的返回值不止一个,则必须指明在子查询的返回值不止一个,则必须指明在WHERE子句中怎样使用这些值。通常会使子句中怎样使用这些值。通常会使用条件运算符用条件运算符ANY(或(或SOME)、)、ALL和和IN。运算符:满足子查询中任意一个值的记录。运算符:满足子查询中任意一个值的记录。运算符:满足子查询中所有值的记录。运

    28、算符:满足子查询中所有值的记录。运算符:字段内容是结果集合或者子查询中的运算符:字段内容是结果集合或者子查询中的内容。内容。8.4 SELECT8.4 SELECT嵌套查询嵌套查询查询选课表中成绩高于学号为查询选课表中成绩高于学号为s2008005的最低分的的最低分的学号、课程号及考试成绩。学号、课程号及考试成绩。select*from 选课表选课表 where 成绩成绩(select 成绩成绩 from 选课表选课表 where 学号学号=s2008005)查询选课表中成绩高于学号为查询选课表中成绩高于学号为s2008005的最高分的的最高分的学号、课程号及考试成绩。学号、课程号及考试成绩。

    29、select*from 选课表选课表 where 成绩成绩(select 成绩成绩 from 选课表选课表 where 学号学号=s2008005)附学号为附学号为s2008005 的考试成绩:的考试成绩:8.4 SELECT8.4 SELECT嵌套查询嵌套查询查询选查询选c02课程的学生信息。课程的学生信息。select*from 学生表学生表 where 学号学号 (select 学号学号 from 选课表选课表 where 课程号课程号=c02)IN是属于的意思,等价于是属于的意思,等价于“=ANY”8.5 8.5 连接查询连接查询l连接概述连接概述通过连接运算符可以实现多个表查询。连接

    30、是关系数据通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其他类型数据库管理库模型的主要特点,也是它区别于其他类型数据库管理系统的一个标志。系统的一个标志。通过连接运算符可以通过连接运算符可以。查询学生考试成绩,要求给出学号、课程名和成绩。查询学生考试成绩,要求给出学号、课程名和成绩。select 学号学号,课程名课程名,成绩成绩 from 选课表选课表,课程表课程表 where 选课表选课表.课程号课程号=课程表课程表.课程号课程号8.5 8.5 连接查询连接查询 语法:语法:FROM 表表1 连接类型连接类型 JOIN 表表2 ON 连连接条件接条件如上题(例

    31、如上题(例8-22)用)用from子句来实现查询:子句来实现查询:select 学号学号,课程名课程名,成绩成绩 from 选课表选课表 课程表课程表 选课表选课表.课程号课程号=课程表课程表.课程号课程号 :查询学生考试成绩,要求显示课程号、姓名、:查询学生考试成绩,要求显示课程号、姓名、成绩(分别用成绩(分别用where子句和子句和from子句实现)。子句实现)。8.5 8.5 连接查询连接查询由于查询来源于多个表,如果由于查询来源于多个表,如果,需要在,需要在列名前附加表名,形如列名前附加表名,形如.。可以是可以是原表名,也可以用别名。原表名,也可以用别名。对比以下两段对比以下两段SQL

    32、语句,学会使用表别名语句,学会使用表别名select 学号学号,课程名课程名,成绩成绩,from 选课表选课表,课程表课程表 where 选课表选课表.课程号课程号=课程表课程表.课课程号程号select 学号学号,课程名课程名,成绩成绩,from 选课表选课表,课程表课程表 where a.课程号课程号=b.课程号课程号:查询学生考试成绩,要求显示学生学号、姓名、成绩。:查询学生考试成绩,要求显示学生学号、姓名、成绩。8.5 8.5 连接查询连接查询使用比较运算符进行表间某使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件(些)列数据的比较操作,并列出这些表中与连接条件

    33、相匹配的数据行。相匹配的数据行。不只列出与连接条件相匹配不只列出与连接条件相匹配的数据行,而是列出左表(左外连接)、右表(右外连的数据行,而是列出左表(左外连接)、右表(右外连接)或两个表(全外连接)中所有符合条件的数据行。接)或两个表(全外连接)中所有符合条件的数据行。没有没有where子句,返回连子句,返回连接表中所有数据行的笛卡尔乘积。接表中所有数据行的笛卡尔乘积。由被连接表中的列和比较运算符、逻辑运算符等构成。如:由被连接表中的列和比较运算符、逻辑运算符等构成。如:选课表选课表.课程号课程号=课程表课程表.课程号课程号8.5 8.5 连接查询连接查询l内连接内连接列出与连接条件匹配的数

    34、据行,分为种:列出与连接条件匹配的数据行,分为种:在连接条件中使用等号(在连接条件中使用等号(=)比较被连接)比较被连接的列值,按对应列的共同值将一个表中的记录与另的列值,按对应列的共同值将一个表中的记录与另一个表中的记录相连接,一个表中的记录相连接,。查询选课表和课程表的等值连接。查询选课表和课程表的等值连接。select*from 选课表选课表 课程表课程表 选课表选课表.课程号课程号 课程表课程表.课程号课程号8.5 8.5 连接查询连接查询在连接条件中使用除等于(在连接条件中使用除等于(=)运算符以外的其他运算符比较被连接的列值。运算符以外的其他运算符比较被连接的列值。运算符:运算符:

    35、、=、=、!和和。查询课程表中与英语课时不同的课程。查询课程表中与英语课时不同的课程。select a.课程号课程号,a.课程名课程名 from 课程表课程表 a 课程表课程表 b a.学时学时b.学时学时 where b.课程名课程名=英语英语连接对象是同一个表时,必连接对象是同一个表时,必须使用表别名。须使用表别名。8.5 8.5 连接查询连接查询连接条件中使用等于(连接条件中使用等于(=)运算符比较)运算符比较被连接列的列值,它被连接列的列值,它来指出查来指出查询结果集合中所包括的列,询结果集合中所包括的列,。查询选课表和课程表的自然连接。查询选课表和课程表的自然连接。select 课程

    36、表课程表.课程名课程名,选课表选课表.*from 选课表选课表 课程表课程表 选课表选课表.课程号课程号 课程表课程表.课程号课程号8.5 8.5 连接查询连接查询l外连接外连接引用左表的所有行。引用左表的所有行。选课表左外连接学生表。选课表左外连接学生表。select a.*,b.课程号课程号,b.成绩成绩from 学生表学生表 a 选课表选课表 b on a.学号学号=b.学号学号左外连接限制选课表中的左外连接限制选课表中的行,而不限制学生表中的行,而不限制学生表中的行,即在左连接中,学生行,即在左连接中,学生表中不满足条件的行也显表中不满足条件的行也显示出来。示出来。8.5 8.5 连接

    37、查询连接查询引用右表的所有行。引用右表的所有行。选课表右外连接课程表。选课表右外连接课程表。select a.*,b.课程名课程名from 选课表选课表 a 课程表课程表 b on a.课程号课程号=b.课程号课程号返回两个表的所有行(返回两个表的所有行(FULL OUTER JOIN)。)。8.5 8.5 连接查询连接查询学生表学生表选课表选课表select select 学生表学生表.学号学号,姓名姓名,课程课程号号,成绩成绩from from 学生表学生表 inner join inner join 选课选课表表 onon学生表学生表 .学号学号=选课表选课表.学学号号select se

    38、lect 学生表学生表.学号学号,姓名姓名,课程课程号号,成绩成绩from from 学生表学生表 left join left join 选课选课表表 onon学生表学生表 .学号学号=选课表选课表.学学号号内连接内连接左外连接左外连接l交叉连接交叉连接l不带不带WHERE子句。子句。l返回被连接的两个表所有数据行的笛卡尔积。返回被连接的两个表所有数据行的笛卡尔积。l结果数据行数等于第一个表中符合查询条件的数据行数结果数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。乘以第二个表中符合查询条件的数据行数。学生表和课程表的交叉连接。学生表和课程表的交叉连接。se

    39、lect 学号学号,姓名姓名,课程名课程名from 学生表学生表 cross join 课程表课程表 问题:学生表中有名学生,问题:学生表中有名学生,课程表中有门课程,课程表中有门课程,交叉连接结果有多少条记录?交叉连接结果有多少条记录?8.5 8.5 连接查询连接查询课堂练习课堂练习完成对如下三个表的查询:完成对如下三个表的查询:职工职工(*职工号职工号 int,姓名姓名 char(8),性别性别 char(2),出生日期出生日期 datetime,党员否党员否 bit,参加工作参加工作 datetime,部门号部门号 int)部门部门(*部门号部门号 int,部门名部门名 char(10)

    40、工资工资(*职工号职工号 int,*工资日期工资日期 datetime,工资工资 decimal(6,1)显示所有职工的职工号、姓名、部门名,并按部门名升显示所有职工的职工号、姓名、部门名,并按部门名升序排列。序排列。显示在显示在2008年年7月月1日以前参加工作的职工号、姓名、日以前参加工作的职工号、姓名、性别、出生日期、部门名。性别、出生日期、部门名。显示部门号为显示部门号为1的职工号、姓名、工资日期、工资。的职工号、姓名、工资日期、工资。8.5 8.5 连接查询连接查询l将子查询作为来源表或输出列将子查询作为来源表或输出列查询男同学的考试成绩,并显示学生姓名。查询男同学的考试成绩,并显示

    41、学生姓名。select a.学号学号,b.姓名姓名,a.课程号课程号,a.成绩成绩 from 选课表选课表 a inner join b on a.学号学号=b.学号学号8.6 8.6 在在INSERTINSERT、UPDATEUPDATE和和DELETEDELETE语句中语句中使用子查询使用子查询l在在INSERT语句中使用子查询语句中使用子查询新增的数据可以来源于子查询。新增的数据可以来源于子查询。格式:格式:INSERT SELECT 语句语句将选课表中将选课表中90分以上的记录添加到高分表。分以上的记录添加到高分表。(高分表的数据模式与选课表相同)(高分表的数据模式与选课表相同)ins

    42、ert 高分表高分表select 学号学号,课程号课程号,成绩成绩 from 选课表选课表 where 成绩成绩=90新增表的列数和数据类型一定要和子查询返新增表的列数和数据类型一定要和子查询返回结果一致。回结果一致。8.6 8.6 在在INSERTINSERT、UPDATEUPDATE和和DELETEDELETE语句语句中使用子查询中使用子查询l在在UPDATE语句中使用子查询语句中使用子查询如果学生平均成绩在如果学生平均成绩在90分以上,则将学生表分以上,则将学生表考核考核列的值改为列的值改为优优。update 学生表学生表set 考核考核=优优from 学生表学生表,(select 学号

    43、学号 from 选课表选课表 group by 学号学号 having avg(成绩成绩)=90)awhere 学生表学生表.学号学号=a.学号学号8.6 8.6 在在INSERTINSERT、UPDATEUPDATE和和DELETEDELETE语句语句中使用子查询中使用子查询l在在DELETE语句中使用子查询语句中使用子查询删除条件来自一个子查询。删除条件来自一个子查询。将男同学的记录从高分表中删除。将男同学的记录从高分表中删除。delete from 高分表高分表 where 学号学号 in(select 学号学号 from 学生表学生表 where 性别性别=男男)小结与提问小结与提问l数据查询数据查询l使用查询分析器使用查询分析器lSELECT语句语句l简单查询简单查询l嵌套查询嵌套查询l连接查询连接查询l在新增、修改和删除语句中使用在新增、修改和删除语句中使用子查询子查询

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第08章+数据查询课件.ppt
    链接地址:https://www.163wenku.com/p-5066531.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库