Chapter5SQL语言(2)

上传人:痛*** 文档编号:231638321 上传时间:2023-09-06 格式:PPTX 页数:53 大小:330.44KB
收藏 版权申诉 举报 下载
Chapter5SQL语言(2)_第1页
第1页 / 共53页
Chapter5SQL语言(2)_第2页
第2页 / 共53页
Chapter5SQL语言(2)_第3页
第3页 / 共53页
资源描述:

《Chapter5SQL语言(2)》由会员分享,可在线阅读,更多相关《Chapter5SQL语言(2)(53页珍藏版)》请在装配图网上搜索。

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

51、(S#,AVG_GRAGE)INSERT INTO S_AVG(S#,AVG_GRAGE)INSERT INTO S_AVG(S#,AVG_GRAGE)INSERT INTO S_AVG(S#,AVG_GRAGE)SELECT S#,AVG(GRADE)SELECT S#,AVG(GRADE)SELECT S#,AVG(GRADE)SELECT S#,AVG(GRADE)FROM SC FROM SC FROM SC FROM SC WHERE S#IN (SELECT S#WHERE S#IN (SELECT S#WHERE S#IN (SELECT S#WHERE S#IN (SELECT

52、 S#FROM S FROM S FROM S FROM S WHERE SSEX=WHERE SSEX=WHERE SSEX=WHERE SSEX=女女女女)GROUP BY S#GROUP BY S#GROUP BY S#GROUP BY S#HAVING AVG(GRADE)=80 HAVING AVG(GRADE)=80 HAVING AVG(GRADE)=80 HAVING AVG(GRADE)=80;例例2:设用表设用表设用表设用表S_AVG(S#,AVG_GRADE)S_AVG(S#,AVG_GRADE)暂存平暂存平暂存平暂存平均成绩大于等于均成绩大于等于均成绩大于等于均成绩大于

53、等于8080分的女同学学号和平均成绩。分的女同学学号和平均成绩。分的女同学学号和平均成绩。分的女同学学号和平均成绩。48复习复习数据更新数据更新 2 2、数据更新、数据更新、数据更新、数据更新 UPDATEUPDATE SET SET 11 ,22 ,nn WHERE WHERE;49二、带有子查询条件的数据更新操作二、带有子查询条件的数据更新操作 UPDATEUPDATE SET SET 11 ,22 ,nn WHERE WHERE;50 UPDATE SC UPDATE SC SET GRADE=GRADE*1.05 SET GRADE=GRADE*1.05 WHERE C#IN(SELE

54、CT C#WHERE C#IN(SELECT C#FROM C FROM C WHERE CNAME=WHERE CNAME=计计算机网算机网算机网算机网络络););例例:将:将“计算机网络计算机网络”课的成绩提高课的成绩提高5%。51 1 1、带带有子有子有子有子查询查询的插入的插入的插入的插入 2 2、带带有子有子有子有子查询查询的更新的更新的更新的更新小结小结52 9 9、静夜四无、静夜四无、静夜四无、静夜四无邻邻,荒居旧,荒居旧,荒居旧,荒居旧业贫业贫。9 9月月月月-23-239 9月月月月-23-23Wednesday,September 6,2023Wednesday,Septe

55、mber 6,2023 1010、雨中黄叶、雨中黄叶、雨中黄叶、雨中黄叶树树,灯下白,灯下白,灯下白,灯下白头头人。人。人。人。04:03:3204:03:3204:03:3204:03:3204:0304:039/6/2023 4:03:32 AM9/6/2023 4:03:32 AM 1111、以我独沈久,愧君相、以我独沈久,愧君相、以我独沈久,愧君相、以我独沈久,愧君相见频见频。9 9月月月月-23-2304:03:3204:03:3204:0304:03Sep-23Sep-2306-Sep-2306-Sep-23 1212、故人江海、故人江海、故人江海、故人江海别别,几度隔山川。,几度

56、隔山川。,几度隔山川。,几度隔山川。04:03:3204:03:3204:03:3204:03:3204:0304:03Wednesday,September 6,2023Wednesday,September 6,2023 1313、乍、乍、乍、乍见见翻疑梦,相悲各翻疑梦,相悲各翻疑梦,相悲各翻疑梦,相悲各问问年。年。年。年。9 9月月月月-23-239 9月月月月-23-2304:03:3204:03:3204:03:3204:03:32September 6,2023September 6,2023 1414、他、他、他、他乡乡生白生白生白生白发发,旧国,旧国,旧国,旧国见见青山。青山。

57、青山。青山。06 06 九月九月九月九月 2023 20234:03:32 4:03:32 上午上午上午上午04:03:3204:03:329 9月月月月-23-23 1515、比不了得就不比,得不到的就不要。、比不了得就不比,得不到的就不要。、比不了得就不比,得不到的就不要。、比不了得就不比,得不到的就不要。九月九月九月九月 23 234:03 4:03 上午上午上午上午9 9月月月月-23-2304:0304:03September 6,2023September 6,2023 1616、行、行、行、行动动出成果,工作出出成果,工作出出成果,工作出出成果,工作出财财富。富。富。富。2023

58、/9/6 4:03:322023/9/6 4:03:3204:03:3204:03:3206 September 202306 September 2023 1717、做前,能、做前,能、做前,能、做前,能够环视够环视四周;做四周;做四周;做四周;做时时,你只能或者最好沿着以脚,你只能或者最好沿着以脚,你只能或者最好沿着以脚,你只能或者最好沿着以脚为为起点的射起点的射起点的射起点的射线线向前。向前。向前。向前。4:03:32 4:03:32 上午上午上午上午4:03 4:03 上午上午上午上午04:03:3204:03:329 9月月月月-23-23 9 9、没有失、没有失、没有失、没有失败败

59、,只有,只有,只有,只有暂时暂时停止成功!。停止成功!。停止成功!。停止成功!。9 9月月月月-23-239 9月月月月-23-23Wednesday,September 6,2023Wednesday,September 6,2023 1010、很多事情努力了未必有、很多事情努力了未必有、很多事情努力了未必有、很多事情努力了未必有结结果,但是不努力却什么改果,但是不努力却什么改果,但是不努力却什么改果,但是不努力却什么改变变也没有。也没有。也没有。也没有。04:03:3204:03:3204:03:3204:03:3204:0304:039/6/2023 4:03:32 AM9/6/2023

60、 4:03:32 AM 1111、成功就是日复一日那一点点小小努力的、成功就是日复一日那一点点小小努力的、成功就是日复一日那一点点小小努力的、成功就是日复一日那一点点小小努力的积积累。累。累。累。9 9月月月月-23-2304:03:3204:03:3204:0304:03Sep-23Sep-2306-Sep-2306-Sep-23 1212、世、世、世、世间间成事,不求其成事,不求其成事,不求其成事,不求其绝对圆满绝对圆满,留一份不足,可得无限完美。,留一份不足,可得无限完美。,留一份不足,可得无限完美。,留一份不足,可得无限完美。04:03:3204:03:3204:03:3204:03:

61、3204:0304:03Wednesday,September 6,2023Wednesday,September 6,2023 1313、不知香、不知香、不知香、不知香积积寺,数里入云峰。寺,数里入云峰。寺,数里入云峰。寺,数里入云峰。9 9月月月月-23-239 9月月月月-23-2304:03:3204:03:3204:03:3204:03:32September 6,2023September 6,2023 1414、意志、意志、意志、意志坚强坚强的人能把世界放在手中像泥的人能把世界放在手中像泥的人能把世界放在手中像泥的人能把世界放在手中像泥块块一一一一样样任意揉捏。任意揉捏。任意揉捏

62、。任意揉捏。06 06 九月九月九月九月 2023 20234:03:32 4:03:32 上午上午上午上午04:03:3204:03:329 9月月月月-23-23 1515、楚塞三湘接,、楚塞三湘接,、楚塞三湘接,、楚塞三湘接,荆门荆门九派通。九派通。九派通。九派通。九月九月九月九月 23 234:03 4:03 上午上午上午上午9 9月月月月-23-2304:0304:03September 6,2023September 6,2023 1616、少年十五二十、少年十五二十、少年十五二十、少年十五二十时时,步行,步行,步行,步行夺夺得胡得胡得胡得胡马骑马骑。2023/9/6 4:03:3

63、22023/9/6 4:03:3204:03:3204:03:3206 September 202306 September 2023 1717、空山新雨后,天气晚来秋。、空山新雨后,天气晚来秋。、空山新雨后,天气晚来秋。、空山新雨后,天气晚来秋。4:03:32 4:03:32 上午上午上午上午4:03 4:03 上午上午上午上午04:03:3204:03:329 9月月月月-23-23 9 9、杨杨柳散和柳散和柳散和柳散和风风,青山澹吾,青山澹吾,青山澹吾,青山澹吾虑虑。9 9月月月月-23-239 9月月月月-23-23Wednesday,September 6,2023Wednesday

64、,September 6,2023 1010、阅读阅读一切好一切好一切好一切好书书如同和如同和如同和如同和过过去最杰出的人去最杰出的人去最杰出的人去最杰出的人谈话谈话。04:03:3204:03:3204:03:3204:03:3204:0304:039/6/2023 4:03:32 AM9/6/2023 4:03:32 AM 1111、越是没有本、越是没有本、越是没有本、越是没有本领领的就越加自命不凡。的就越加自命不凡。的就越加自命不凡。的就越加自命不凡。9 9月月月月-23-2304:03:3204:03:3204:0304:03Sep-23Sep-2306-Sep-2306-Sep-23

65、 1212、越是无能的人,越喜、越是无能的人,越喜、越是无能的人,越喜、越是无能的人,越喜欢欢挑剔挑剔挑剔挑剔别别人的人的人的人的错错儿。儿。儿。儿。04:03:3204:03:3204:03:3204:03:3204:0304:03Wednesday,September 6,2023Wednesday,September 6,2023 1313、知人者智,自知者明。、知人者智,自知者明。、知人者智,自知者明。、知人者智,自知者明。胜胜人者有力,自人者有力,自人者有力,自人者有力,自胜胜者者者者强强。9 9月月月月-23-239 9月月月月-23-2304:03:3204:03:3204:03

66、:3204:03:32September 6,2023September 6,2023 1414、意志、意志、意志、意志坚强坚强的人能把世界放在手中像泥的人能把世界放在手中像泥的人能把世界放在手中像泥的人能把世界放在手中像泥块块一一一一样样任意揉捏。任意揉捏。任意揉捏。任意揉捏。06 06 九月九月九月九月 2023 20234:03:32 4:03:32 上午上午上午上午04:03:3204:03:329 9月月月月-23-23 1515、最具挑、最具挑、最具挑、最具挑战战性的挑性的挑性的挑性的挑战战莫莫莫莫过过于提升自我。于提升自我。于提升自我。于提升自我。九月九月九月九月 23 234:03 4:03 上午上午上午上午9 9月月月月-23-2304:0304:03September 6,2023September 6,2023 1616、业业余生活要有意余生活要有意余生活要有意余生活要有意义义,不要越,不要越,不要越,不要越轨轨。2023/9/6 4:03:322023/9/6 4:03:3204:03:3204:03:3206 September 202306 Septembe

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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