[精选]Chapter5SQL语言(2)kih.pptx

上传人:muj****520 文档编号:91040986 上传时间:2023-05-21 格式:PPTX 页数:53 大小:330.45KB
返回 下载 相关 举报
[精选]Chapter5SQL语言(2)kih.pptx_第1页
第1页 / 共53页
[精选]Chapter5SQL语言(2)kih.pptx_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《[精选]Chapter5SQL语言(2)kih.pptx》由会员分享,可在线阅读,更多相关《[精选]Chapter5SQL语言(2)kih.pptx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第3节节 SQL的数据查询的数据查询第第第第5 5章章章章 关系数据库语言关系数据库语言关系数据库语言关系数据库语言SQLSQL主要内容主要内容n nn简单查询简单查询n nn常用函数及其使用方式常用函数及其使用方式常用函数及其使用方式常用函数及其使用方式n nnSQLSQL高高高高级查询级查询技技技技术术n nn谓词谓词演算演算演算演算查询查询2数据查询数据查询 SELECTSELECT命令的格式与基本使用命令的格式与基本使用命令的格式与基本使用命令的格式与基本使用SELECTSELECT ALL|DISTINCTTOP N ALL|DISTINCTTOP N PERCENTWITH TI

2、ESPERCENTWITH TIES列名列名列名列名AS AS 别别名名名名1 1,列名列名列名列名 AS AS 别别名名名名22INTO INTO 新表名新表名新表名新表名 FROMFROM表名表名表名表名1 1或或或或视图视图名名名名1 1AS AS 表表表表1 1别别名名名名 ,表名表名表名表名2 2或或或或视图视图名名名名2 2AS AS 表表表表2 2别别名名名名 WHEREWHERE检检索条件索条件索条件索条件 GROUP BYGROUP BY HAVING HAVING ORDER BYORDER BY ASC|DESC 2ASC|DESC 投影 选取 3一、简单查询一、简单查询

3、1 1、SELECTSELECT和和和和FROMFROM子句子句子句子句 SELECT SELECT FROM FROM WHERE WHERE 作用作用作用作用 SELECTSELECT:,用来列出,用来列出,用来列出,用来列出查询结查询结果中的属性果中的属性果中的属性果中的属性 FROMFROM:,用来列出需,用来列出需,用来列出需,用来列出需扫扫描的关系描的关系描的关系描的关系 WHERE WHERE :,指定指定指定指定选择记录选择记录的条件的条件的条件的条件 42 2、无条件查询、无条件查询、无条件查询、无条件查询例例例例3.16 3.16 查询查询教学管理数据教学管理数据教学管理数

4、据教学管理数据库库中全部学生的基本信中全部学生的基本信中全部学生的基本信中全部学生的基本信息。息。息。息。SELECT*SELECT*FROM S FROM S;52 2、无条件查询(续)、无条件查询(续)、无条件查询(续)、无条件查询(续)例例例例3.17 3.17 查询查询教学管理数据教学管理数据教学管理数据教学管理数据库库中全部教中全部教中全部教中全部教师师的教的教的教的教职职工工工工编编号、姓名、号、姓名、号、姓名、号、姓名、职职称和所属教研室。称和所属教研室。称和所属教研室。称和所属教研室。SELECT T#SELECT T#,TNAMETNAME,TITLEOFTITLEOF,TR

5、SECTIONTRSECTION FROM T FROM T;62 2、无条件查询聚合函数、无条件查询聚合函数、无条件查询聚合函数、无条件查询聚合函数 聚合函数聚合函数聚合函数聚合函数 能能能能够够根据根据根据根据查询结查询结果的果的果的果的记录记录集或根据集或根据集或根据集或根据查询结查询结果果果果的的的的记录记录集中某列集中某列集中某列集中某列值值的特点返回一个的特点返回一个的特点返回一个的特点返回一个汇总汇总信息的函信息的函信息的函信息的函数。数。数。数。输输入入入入值值的一个集合的一个集合的一个集合的一个集合 返回返回返回返回单单个个个个值值78聚合函数聚合函数聚合函数聚合函数 COU

6、NT(*)COUNT(*)计计算元算元算元算元组组的个数的个数的个数的个数 COUNT(COUNT(列名列名列名列名)计计算某一列中数据的个数算某一列中数据的个数算某一列中数据的个数算某一列中数据的个数 COUNT DISTINCT(COUNT DISTINCT(列名列名列名列名)计计算某一列中不同算某一列中不同算某一列中不同算某一列中不同值值的个数的个数的个数的个数 SUM(SUM(列名列名列名列名)计计算某一数据列中算某一数据列中算某一数据列中算某一数据列中值值的的的的总总和和和和 AVG(AVG(列名列名列名列名)计计算某一数据列中算某一数据列中算某一数据列中算某一数据列中值值的平均的平

7、均的平均的平均值值 MIN(MIN(列名列名列名列名)求(字符、日期、数求(字符、日期、数求(字符、日期、数求(字符、日期、数值值列)的最小列)的最小列)的最小列)的最小值值 MAX(MAX(列名列名列名列名)求(字符、日期、数求(字符、日期、数求(字符、日期、数求(字符、日期、数值值列)的最大列)的最大列)的最大列)的最大值值2 2、无条件查询聚合函数(续)、无条件查询聚合函数(续)、无条件查询聚合函数(续)、无条件查询聚合函数(续)9例例例例3.18 3.18 查询查询开开开开课总门课总门数数数数 SELECT COUNT(*)SELECT COUNT(*)FROM C FROM C;例例

8、例例3.19 3.19 计计算所有学生所学算所有学生所学算所有学生所学算所有学生所学课课程的最高分数、最低程的最高分数、最低程的最高分数、最低程的最高分数、最低分数和平均分数。分数和平均分数。分数和平均分数。分数和平均分数。SELECT SELECT MAX(GRADE),MIN(GRADE),AVG(GRADE)MAX(GRADE),MIN(GRADE),AVG(GRADE)FROM SCFROM SC;2 2、无条件查询聚合函数(例)、无条件查询聚合函数(例)、无条件查询聚合函数(例)、无条件查询聚合函数(例)103 3、单条件查询、单条件查询、单条件查询、单条件查询例例例例3.20 3.

9、20 查询查询所有学所有学所有学所有学习习了了了了计计算机网算机网算机网算机网络课络课(课课程号程号程号程号为为C403001C403001)的学生的学号和成)的学生的学号和成)的学生的学号和成)的学生的学号和成绩绩 SELECT S#SELECT S#,GRADEGRADE FROM SC FROM SC WHERE C#=WHERE C#=C403001C403001;114 4、多条件查询、多条件查询、多条件查询、多条件查询例例例例3.21 3.21 查询选查询选修了修了修了修了计计算机网算机网算机网算机网络课络课(课课程号程号程号程号为为C403001C403001)或信息安全技)或信

10、息安全技)或信息安全技)或信息安全技术课术课(课课程号程号程号程号为为C403002C403002)的学生的学号)的学生的学号)的学生的学号)的学生的学号 SELECT S#SELECT S#FROM SC FROM SC WHERE C#=WHERE C#=C403001C403001 OR C#=OR C#=C403002C403002 ;125 5、分组查询、分组查询、分组查询、分组查询 SELECT SELECT FROM FROM WHERE WHERE GROUP BYGROUP BY 作用作用作用作用:对满对满足足足足WHEREWHERE条件的元条件的元条件的元条件的元组组集按照

11、指定的列的集按照指定的列的集按照指定的列的集按照指定的列的值进值进行分行分行分行分组组,该该属性列属性列属性列属性列值值相等的元相等的元相等的元相等的元组为组为一一一一组组13例例例例例例例例3.23 3.23 计计算各个同学的平均分数。算各个同学的平均分数。算各个同学的平均分数。算各个同学的平均分数。SELECT S#SELECT S#,AVG(GRADE)AVG(GRADE)FROM SC FROM SC GROUP BY S#GROUP BY S#;SELECT SELECT FROM FROM WHERE WHERE GROUP BY GROUP BY HAVINGHAVING 作用作

12、用作用作用:指定指定指定指定GROUP BYGROUP BY子句形成的分子句形成的分子句形成的分子句形成的分组组所所所所应满应满足的条件足的条件足的条件足的条件5 5、分组查询(续)、分组查询(续)、分组查询(续)、分组查询(续)1415例例例例例例例例3.25 3.25 查询查询学生学生学生学生总总数超数超数超数超过过300300人的人的人的人的专业专业及其具体及其具体及其具体及其具体的的的的总总人数人数人数人数 SELECT SCODESELECT SCODE,COUNT(*)COUNT(*)FROM S FROM S GROUP BY SCODE GROUP BY SCODE HAVIN

13、G COUNT(*)300 HAVING COUNT(*)300;166 6、结果的排序、结果的排序、结果的排序、结果的排序 ORDER BY ORDER BY ASC/DESC ASC/DESC ,ASC/DESCASC/DESC;作用作用作用作用:依据依据依据依据给给定列的定列的定列的定列的值值,控制,控制,控制,控制查询结查询结果中元果中元果中元果中元组组的排的排的排的排列列列列顺顺序。序。序。序。176 6、结果的排序(例)、结果的排序(例)、结果的排序(例)、结果的排序(例)例例例例3.27 3.27 按学号按学号按学号按学号递递增、增、增、增、课课程成程成程成程成绩递绩递减的减的减

14、的减的显显示示示示顺顺序序序序显显示学生的示学生的示学生的示学生的课课程成程成程成程成绩绩SELECT S#SELECT S#,C#C#,GRADEGRADEFROM SCFROM SCORDER BY S#ASCORDER BY S#ASC,GRADE DESCGRADE DESC;187 7、字符串的匹配、字符串的匹配、字符串的匹配、字符串的匹配 下划下划下划下划线线通配符通配符通配符通配符_ _:代表任意一个字符:代表任意一个字符:代表任意一个字符:代表任意一个字符 百分号通配符百分号通配符百分号通配符百分号通配符%:代表任意:代表任意:代表任意:代表任意长长度的字符串度的字符串度的字符

15、串度的字符串例例例例3.28 3.28 查询查询S S中姓李的学生的学号和姓名中姓李的学生的学号和姓名中姓李的学生的学号和姓名中姓李的学生的学号和姓名SELECT S#SELECT S#,SNAMESNAME FROM S FROM S WHERE SNAME LIKE WHERE SNAME LIKE 李李李李%;19简单查询语句简单查询语句简单查询语句简单查询语句 SELECT SELECT FROMFROM WHERE WHERE GROUP BY GROUP BY HAVING HAVING ORDER BY ORDER BY ASC/DESC ASC/DESC ,ASC/DESC A

16、SC/DESC ;读取读取读取读取FROMFROM子句指定的基本表子句指定的基本表子句指定的基本表子句指定的基本表或或或或视图视图视图视图的数据,执行笛卡尔积的数据,执行笛卡尔积的数据,执行笛卡尔积的数据,执行笛卡尔积操作操作操作操作选取满足选取满足选取满足选取满足WHEREWHERE子句中给出子句中给出子句中给出子句中给出的条件表达式的元组的条件表达式的元组的条件表达式的元组的条件表达式的元组按按按按GROUP BYGROUP BY子句中指定列的子句中指定列的子句中指定列的子句中指定列的值进行分组,同时提取满足值进行分组,同时提取满足值进行分组,同时提取满足值进行分组,同时提取满足HAVIN

17、GHAVING子句中组条件表达式子句中组条件表达式子句中组条件表达式子句中组条件表达式的那些组的那些组的那些组的那些组按按按按SELECTSELECT子句中给出的列名子句中给出的列名子句中给出的列名子句中给出的列名或列表达式求值输出或列表达式求值输出或列表达式求值输出或列表达式求值输出ORDER BYORDER BY子句对输出的结果子句对输出的结果子句对输出的结果子句对输出的结果(目标表)进行排序,按指定(目标表)进行排序,按指定(目标表)进行排序,按指定(目标表)进行排序,按指定列的值升序或降序排列列的值升序或降序排列列的值升序或降序排列列的值升序或降序排列20二、二、SQL高级查询技术高级

18、查询技术1 1、多表、多表、多表、多表联联接接接接查询查询例例例例3.32 3.32 查询查询所有学所有学所有学所有学习习了数据了数据了数据了数据结结构构构构课课(课课程号程号程号程号为为C401001C401001)的学生的学号和姓名)的学生的学号和姓名)的学生的学号和姓名)的学生的学号和姓名 SELECT S.S#SELECT S.S#,SNAMESNAME FROM S FROM S,SCSC WHERE S.S#=SC.S#WHERE S.S#=SC.S#AND C#=AND C#=C401001C401001;212 2、嵌套查询、嵌套查询、嵌套查询、嵌套查询 在在在在SQLSQL语

19、语言中,如果在一个言中,如果在一个言中,如果在一个言中,如果在一个SELECTSELECT语语句的句的句的句的 WHEREWHERE子句中嵌入了另一个子句中嵌入了另一个子句中嵌入了另一个子句中嵌入了另一个SELECTSELECT语语句,句,句,句,则则称称称称这这种种种种查询为查询为嵌套嵌套嵌套嵌套查询查询。WHEREWHERE子句中的子句中的子句中的子句中的SELECTSELECT语语句称句称句称句称为为子子子子查询查询,外,外,外,外部的部的部的部的查询查询称称称称为为父父父父查询查询。22 SELECT*SELECT*SELECT*SELECT*SELECT*SELECT*FROM S

20、FROM S FROM S FROM S FROM S FROM S WHERE CLASS=(WHERE CLASS=(WHERE CLASS=(WHERE CLASS=(WHERE CLASS=(WHERE CLASS=()AND SSEX=AND SSEX=AND SSEX=AND SSEX=AND SSEX=AND SSEX=女女女女女女 ;2 2、嵌套查询例、嵌套查询例、嵌套查询例、嵌套查询例示例示例示例示例 查询张华查询张华查询张华查询张华同学(学号同学(学号同学(学号同学(学号为为为为200401001200401001200401001200401001)的那个班)的那个班)的

21、那个班)的那个班的女同学的基本信息的女同学的基本信息的女同学的基本信息的女同学的基本信息。SELECT CLASS SELECT CLASS SELECT CLASS SELECT CLASS FROM S FROM S FROM S FROM S WHERE S#=WHERE S#=WHERE S#=WHERE S#=200401001200401001200401001200401001 233 3、查询中的表更名、查询中的表更名、查询中的表更名、查询中的表更名3 3、查询查询中的表更名中的表更名中的表更名中的表更名 旧名旧名旧名旧名 AS AS 新名新名新名新名例例例例3.353.35

22、检检索成索成索成索成绩绩比比比比该课该课程平均成程平均成程平均成程平均成绩绩低的学生成低的学生成低的学生成低的学生成绩绩表。表。表。表。SELECT S#SELECT S#,C#C#,GRADEGRADEFROM SCFROM SCWHERE GRADE (SELECT AVG(GRADE)WHERE GRADE (SELECT AVG(GRADE)FROM SC AS XFROM SC AS XWHERE X.C#=SC.C#)WHERE X.C#=SC.C#);24三、谓词演算查询三、谓词演算查询 所谓基于谓词演算的查询是指把谓词看作是特所谓基于谓词演算的查询是指把谓词看作是特所谓基于谓词

23、演算的查询是指把谓词看作是特所谓基于谓词演算的查询是指把谓词看作是特所谓基于谓词演算的查询是指把谓词看作是特所谓基于谓词演算的查询是指把谓词看作是特殊比较操作符、应用于殊比较操作符、应用于殊比较操作符、应用于殊比较操作符、应用于殊比较操作符、应用于殊比较操作符、应用于WHEREWHEREWHEREWHEREWHEREWHERE子句的条件表达式中子句的条件表达式中子句的条件表达式中子句的条件表达式中子句的条件表达式中子句的条件表达式中的查询。的查询。的查询。的查询。的查询。的查询。操作符操作符操作符操作符 说明说明说明说明 between A and Bbetween A and Bnot no

24、t between between A A and Band Blikelikeininnot innot inany any somesomeallallexistsexistsnot existsnot exists 某列的数值区间是某列的数值区间是某列的数值区间是某列的数值区间是AAAA,BBBB某列的数值区间在某列的数值区间在某列的数值区间在某列的数值区间在AAAA,BBBB外外外外两个字符串的部分字符相等,其余可以任意两个字符串的部分字符相等,其余可以任意两个字符串的部分字符相等,其余可以任意两个字符串的部分字符相等,其余可以任意某列的某个值属于集合成员中的一个成员某列的某个值属于集

25、合成员中的一个成员某列的某个值属于集合成员中的一个成员某列的某个值属于集合成员中的一个成员某列的值不属于集合成员中的任何一个成员某列的值不属于集合成员中的任何一个成员某列的值不属于集合成员中的任何一个成员某列的值不属于集合成员中的任何一个成员某列的值满足一个条件即可某列的值满足一个条件即可某列的值满足一个条件即可某列的值满足一个条件即可满足集合中的某些值满足集合中的某些值满足集合中的某些值满足集合中的某些值某列的值满足子查询中所有值的记录某列的值满足子查询中所有值的记录某列的值满足子查询中所有值的记录某列的值满足子查询中所有值的记录总存在一个值满足条件总存在一个值满足条件总存在一个值满足条件总

26、存在一个值满足条件不存在任何值满足条件不存在任何值满足条件不存在任何值满足条件不存在任何值满足条件25 格式:格式:格式:格式:1 1 1 ININININ 222 1 1 1 NOT INNOT INNOT INNOT IN 222 含含含含义义:1 1 1 1、ININININ和和和和NOT INNOT INNOT INNOT IN 如果集合如果集合1 1中的数据是集合中的数据是集合2 2中的成员,那中的成员,那么其逻辑值为么其逻辑值为truetrue,否则为,否则为false.false.26例例例例3.36 3.36 3.36 3.36 查询查询所有学所有学所有学所有学习习了数据了数据

27、了数据了数据结结构构构构课课(课课程号程号程号程号为为C401001C401001C401001C401001)的学生的学号和姓名。)的学生的学号和姓名。)的学生的学号和姓名。)的学生的学号和姓名。SELECT S.S#SELECT S.S#SELECT S.S#SELECT S.S#,SNAMESNAMESNAMESNAME FROM S FROM S FROM S FROM S WHERE S#WHERE S#WHERE S#WHERE S#ININININ (SELECT S#(SELECT S#(SELECT S#(SELECT S#FROM SC FROM SC FROM SC FR

28、OM SC WHERE C#=WHERE C#=WHERE C#=WHERE C#=C401001C401001C401001C401001);1 1 1 1、ININININ和和和和NOT INNOT INNOT INNOT IN例例例例27 格式格式格式格式:ANYANYANYANY SOMESOMESOMESOME 含含含含义义:2 2 2 2、ANYANYANYANY和和和和SOMESOMESOMESOME 如果比较运算符如果比较运算符如果比较运算符如果比较运算符左边的数据与右边集合中左边的数据与右边集合中左边的数据与右边集合中左边的数据与右边集合中至少一个至少一个至少一个至少一个元素

29、满足元素满足元素满足元素满足运算,那么其逻辑值为运算,那么其逻辑值为运算,那么其逻辑值为运算,那么其逻辑值为truetruetruetrue,否则为,否则为,否则为,否则为false.false.false.false.28例例例例3.38 3.38 3.38 3.38 查询查询所有学所有学所有学所有学习习了数据了数据了数据了数据结结构构构构课课(课课程号程号程号程号为为C401001C401001C401001C401001)的学生的学号和姓名。)的学生的学号和姓名。)的学生的学号和姓名。)的学生的学号和姓名。解法解法解法解法3 3 3 3 SELECT S.S#SELECT S.S#SEL

30、ECT S.S#SELECT S.S#,SNAMESNAMESNAMESNAME FROM S FROM S FROM S FROM S WHERE S#WHERE S#WHERE S#WHERE S#=ANY=ANY=ANY=ANY(SELECT S#(SELECT S#(SELECT S#(SELECT S#FROM SC FROM SC FROM SC FROM SC WHERE C#=WHERE C#=WHERE C#=WHERE C#=C401001C401001C401001C401001);2 2 2 2、ANYANYANYANY和和和和SOMESOMESOMESOME例例例例2

31、9 格式格式格式格式:ALLALLALLALL 含含含含义义:3 3 3 3、ALLALLALLALL 如果比较运算符如果比较运算符如果比较运算符如果比较运算符左边的数据与右边集合中所有元素左边的数据与右边集合中所有元素左边的数据与右边集合中所有元素左边的数据与右边集合中所有元素满足满足满足满足运算,那么其逻辑值为运算,那么其逻辑值为运算,那么其逻辑值为运算,那么其逻辑值为truetruetruetrue,否则为,否则为,否则为,否则为false.false.false.false.303 3 3 3、ALLALLALLALL例例例例例例例例3.39 3.39 3.39 3.39 查询查询查询

32、查询考考考考试试试试成成成成绩绩绩绩大于大于大于大于计计算机科学算机科学算机科学算机科学专业专业(专业专业专业专业代代代代码码码码S0401)S0401)S0401)S0401)所有学生所有学生所有学生所有学生课课课课程成程成程成程成绩绩绩绩的学生的基本信息的学生的基本信息的学生的基本信息的学生的基本信息 SELECT S.*SELECT S.*SELECT S.*SELECT S.*FROM S FROM S FROM S FROM S,SCSCSCSC WHERE S.S#=SC.S#WHERE S.S#=SC.S#WHERE S.S#=SC.S#WHERE S.S#=SC.S#AND G

33、RADE AND GRADE AND GRADE AND GRADE ALLALLALLALL(SELECT GRADE(SELECT GRADE(SELECT GRADE(SELECT GRADE FROM S FROM S FROM S FROM S,SCSCSCSC WHERE S.S#=SC.S#WHERE S.S#=SC.S#WHERE S.S#=SC.S#WHERE S.S#=SC.S#AND SCODE=AND SCODE=AND SCODE=AND SCODE=S0401S0401S0401S0401););););31 格式:格式:格式:格式:EXISTSEXISTS()NO

34、T EXISTSNOT EXISTS()含含含含义义:4 4、EXISTSEXISTS和和和和NOT EXISTSNOT EXISTS EXISTSEXISTSEXISTSEXISTS是存在量词,当集合中是存在量词,当集合中是存在量词,当集合中是存在量词,当集合中至少存在一个至少存在一个至少存在一个至少存在一个元素(非元素(非元素(非元素(非空)时,其逻辑值为空)时,其逻辑值为空)时,其逻辑值为空)时,其逻辑值为truetruetruetrue,否则为,否则为,否则为,否则为falsefalsefalsefalse。NOT EXISTS NOT EXISTS NOT EXISTS NOT EX

35、ISTS是空集判断,当集合中是空集判断,当集合中是空集判断,当集合中是空集判断,当集合中不存在任何元素不存在任何元素不存在任何元素不存在任何元素(为空)时,其逻辑值为(为空)时,其逻辑值为(为空)时,其逻辑值为(为空)时,其逻辑值为truetruetruetrue,否则为,否则为,否则为,否则为falsefalsefalsefalse。32例例例例3.40 3.40 3.40 3.40 查询查询所有学所有学所有学所有学习习了数据了数据了数据了数据结结构构构构课课(课课程号程号程号程号为为C401001C401001C401001C401001)的学生的学号和姓名。)的学生的学号和姓名。)的学生

36、的学号和姓名。)的学生的学号和姓名。SELECT S.S#SELECT S.S#SELECT S.S#SELECT S.S#,SNAMESNAMESNAMESNAME FROM S FROM S FROM S FROM S WHERE EXISTS(SELECT*WHERE EXISTS(SELECT*WHERE EXISTS(SELECT*WHERE EXISTS(SELECT*FROM SC FROM SC FROM SC FROM SC WHERE SC.S#=S.S#WHERE SC.S#=S.S#WHERE SC.S#=S.S#WHERE SC.S#=S.S#AND C#=AND C

37、#=AND C#=AND C#=C401001C401001C401001C401001);4 4、EXISTSEXISTS和和和和NOT EXISTSNOT EXISTS例例例例33 SELECT C#,AVG(GRADE)SELECT C#,AVG(GRADE)FROM SC,TEACH,T FROM SC,TEACH,T WHERE SC.C#=TEACH.C#WHERE SC.C#=TEACH.C#AND TEACH.T#=T.T#AND TEACH.T#=T.T#AND TNAME Like AND TNAME Like 张张%GROUP BY C#GROUP BY C#ORDER

38、BY 2 DESC;ORDER BY 2 DESC;例:例:求张老师所授课程的每门课程的学生平均成求张老师所授课程的每门课程的学生平均成求张老师所授课程的每门课程的学生平均成求张老师所授课程的每门课程的学生平均成绩,并按平均成绩降序输出。绩,并按平均成绩降序输出。绩,并按平均成绩降序输出。绩,并按平均成绩降序输出。第第4节节 SQL的视图操作的视图操作第第第第5 5章章章章 关系数据库语言关系数据库语言关系数据库语言关系数据库语言SQLSQL主要内容主要内容n nn视图视图的概念的概念的概念的概念n nn视图视图的定的定的定的定义义n nn在在在在视图视图上上上上进进行行行行查询查询操作操作操

39、作操作n nn用用用用户视图对户视图对数据数据数据数据库库系系系系统设计统设计和和和和性能性能性能性能带带来的影响来的影响来的影响来的影响35一、视图的概念一、视图的概念 视图视图是从一个或几个基本表(或是从一个或几个基本表(或是从一个或几个基本表(或是从一个或几个基本表(或视图视图)通)通)通)通过视过视图图定定定定义语义语句所描述的映射关系句所描述的映射关系句所描述的映射关系句所描述的映射关系导导出的表。出的表。出的表。出的表。数据数据数据数据库库中,只有中,只有中,只有中,只有视图视图的定的定的定的定义义,没有,没有,没有,没有视图视图的数据。的数据。的数据。的数据。这这些数据些数据些数

40、据些数据还还在基本表中。因此,在基本表中。因此,在基本表中。因此,在基本表中。因此,视图视图是一种是一种是一种是一种“虚虚虚虚表表表表”。36S SSNAMESNAMEC CGRADEGRADES SSNAMESNAMEAGEAGESEXSEXS256S256WangWang2121F FS SC CGRADEGRADES256S256C5C58080CGCGS SSCSCS256S256WangWangC5C58080查询查询查询查询语句语句语句语句学生成绩视图学生成绩视图学生成绩视图学生成绩视图CG(SCG(S,SNAME,C,SNAME,C,GRADE),GRADE)37 CREATE

41、VIEWCREATE VIEWCREATE VIEWCREATE VIEW ()AS AS AS AS WITH READ ONLY|WITH CHECK OPTION WITH READ ONLY|WITH CHECK OPTION WITH READ ONLY|WITH CHECK OPTION WITH READ ONLY|WITH CHECK OPTION;新定义的视图的各个列的名称新定义的视图的各个列的名称新定义的视图的各个列的名称新定义的视图的各个列的名称一一对应一一对应一一对应一一对应视图被定义成一个只读视图,不视图被定义成一个只读视图,不视图被定义成一个只读视图,不视图被定义成

42、一个只读视图,不能进行插入、删除和修改操作能进行插入、删除和修改操作能进行插入、删除和修改操作能进行插入、删除和修改操作表示用户必须保证每当向该视图表示用户必须保证每当向该视图表示用户必须保证每当向该视图表示用户必须保证每当向该视图插入或更新数据时,所插入或更插入或更新数据时,所插入或更插入或更新数据时,所插入或更插入或更新数据时,所插入或更新的数据能从该视图查询出来。新的数据能从该视图查询出来。新的数据能从该视图查询出来。新的数据能从该视图查询出来。二、视图的定义二、视图的定义38 例例例例3.45 3.45 3.45 3.45 定定定定义义平均成平均成平均成平均成绩视图绩视图(S#S#S#

43、S#,AVG_GRADEAVG_GRADEAVG_GRADEAVG_GRADE )CREATE VIEW A_GRADE CREATE VIEW A_GRADE CREATE VIEW A_GRADE CREATE VIEW A_GRADE(S#S#S#S#,AVG_GRADEAVG_GRADEAVG_GRADEAVG_GRADE)AS SELECT S#AS SELECT S#AS SELECT S#AS SELECT S#,AVG(GRADE)AVG(GRADE)AVG(GRADE)AVG(GRADE)FROM SC FROM SC FROM SC FROM SC WHERE GRADE

44、IS NOT NULL WHERE GRADE IS NOT NULL WHERE GRADE IS NOT NULL WHERE GRADE IS NOT NULL GROUP BY S#GROUP BY S#GROUP BY S#GROUP BY S#;查询结果中有表达式或聚查询结果中有表达式或聚查询结果中有表达式或聚查询结果中有表达式或聚合函数,必须重新命名合函数,必须重新命名合函数,必须重新命名合函数,必须重新命名二、视图的定义二、视图的定义 例例39三、三、在视图上进行查询操作在视图上进行查询操作 数据数据数据数据查询查询 视图视图的的的的查询查询方法和基本表一方法和基本表一方法和基

45、本表一方法和基本表一样样,但有了,但有了,但有了,但有了视图视图后,后,后,后,查询语查询语句句句句变变得非常得非常得非常得非常简单简单。SELECT *SELECT *SELECT *SELECT *FROM A_GRADE FROM A_GRADE FROM A_GRADE FROM A_GRADE;40四、用户视图对数据库系统设计和性能带来的影响四、用户视图对数据库系统设计和性能带来的影响四、用户视图对数据库系统设计和性能带来的影响四、用户视图对数据库系统设计和性能带来的影响 1 1、视图视图能能能能够简够简化用化用化用化用户户的操作的操作的操作的操作 2 2、视图视图使用使用使用使用户

46、户能以多种角度看待同一数据能以多种角度看待同一数据能以多种角度看待同一数据能以多种角度看待同一数据 3 3、视图对视图对重构数据重构数据重构数据重构数据库库提供了一定程度的提供了一定程度的提供了一定程度的提供了一定程度的逻辑逻辑独独独独立性立性立性立性 4 4、视图视图能能能能够对够对机密数据提供安全保机密数据提供安全保机密数据提供安全保机密数据提供安全保护护41第第5节节 SQL中带有子查询的数中带有子查询的数据更新操作据更新操作第第第第5 5章章章章 关系数据库语言关系数据库语言关系数据库语言关系数据库语言SQLSQL主要内容主要内容n nn带带有子有子有子有子查询查询的数据插入操作的数据

47、插入操作的数据插入操作的数据插入操作n nn带带有子有子有子有子查询查询条件的数据更新操作条件的数据更新操作条件的数据更新操作条件的数据更新操作43复习复习数据插入数据插入 1 1、数据插入、数据插入、数据插入、数据插入 向表中插入一行(向表中插入一行(向表中插入一行(向表中插入一行(单单元元元元组组)数据。)数据。)数据。)数据。INSERT INTOINSERT INTO ()VALUESVALUES(););););44一、带有子查询的数据插入操作一、带有子查询的数据插入操作 向表中插入一个子向表中插入一个子向表中插入一个子向表中插入一个子查询查询得到的数据。得到的数据。得到的数据。得到

48、的数据。INSERT INTOINSERT INTO ();子子子子查询查询是一个合法的是一个合法的是一个合法的是一个合法的SELECTSELECT查询语查询语句。句。句。句。45例例1 设设在教学管理数据在教学管理数据在教学管理数据在教学管理数据库库系系系系统统中,要建立某些中,要建立某些中,要建立某些中,要建立某些临临时时表来表来表来表来辅辅助有关管理助有关管理助有关管理助有关管理过过程。若其中有一个程。若其中有一个程。若其中有一个程。若其中有一个临时临时表表表表用于用于用于用于暂暂存存存存选选修了修了修了修了“信息安全技信息安全技信息安全技信息安全技术术”课课程的学生的程的学生的程的学生

49、的程的学生的学号、姓名、学号、姓名、学号、姓名、学号、姓名、专业专业名称和班名称和班名称和班名称和班级级,表的格式,表的格式,表的格式,表的格式为为:S_C(S#,SNAME,SSNAME,CLASS)S_C(S#,SNAME,SSNAME,CLASS)则则将从有关表中将从有关表中将从有关表中将从有关表中查询查询出的数据出的数据出的数据出的数据组组成的成的成的成的记录记录插入插入插入插入该该表的插入表的插入表的插入表的插入语语句句句句为为:46例例1续续 INSERT INTO S_C(S#,SNAME,SSNAME,INSERT INTO S_C(S#,SNAME,SSNAME,CLASS)

50、CLASS)SELECT S.S#,SNAME,SSNAME,CLASS SELECT S.S#,SNAME,SSNAME,CLASS FROM S,SS FROM S,SS WHERE SS.SCODE#=S.SCODE#WHERE SS.SCODE#=S.SCODE#AND S#IN AND S#IN (SELECT SC.S#(SELECT SC.S#FROM SC,C FROM SC,C WHERE SC.C#=C.C#WHERE SC.C#=C.C#AND CNAME=AND CNAME=“信息安全技信息安全技信息安全技信息安全技术术”););47 INSERT INTO S_AVG

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

当前位置:首页 > 考试试题 > 消防试题

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁