《SQL语言第节》PPT课件.ppt

上传人:za****8 文档编号:16088058 上传时间:2020-09-18 格式:PPT 页数:33 大小:247.02KB
返回 下载 相关 举报
《SQL语言第节》PPT课件.ppt_第1页
第1页 / 共33页
《SQL语言第节》PPT课件.ppt_第2页
第2页 / 共33页
《SQL语言第节》PPT课件.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
第3节 SQL的数据查询,第3章 关系数据库语言SQL,2,主要内容,简单查询 常用函数及其使用方式(自学) SQL高级查询技术 谓词演算查询,3,一、简单查询,1、SELECT和FROM子句 SELECT FROM WHERE 作用 SELECT:,用来列出查询结果中的属性 FROM:,用来列出需扫描的关系 WHERE :,指定选择记录的条件,4,2、无条件查询,例3.16 查询教学管理数据库中全部学生的基本信息。 SELECT * FROM S;,5,2、无条件查询(续),例3.17 查询教学管理数据库中全部教师的教职工编号、姓名、职称和所属教研室。 SELECT T#,TNAME,TITLEOF,TRSECTION FROM T;,6,2、无条件查询聚合函数,聚合函数 能够根据查询结果的记录集或根据查询结果的记录集中某列值的特点返回一个汇总信息的函数。 输入值的一个集合 返回单个值,7,聚合函数 COUNT(*) 计算元组的个数 COUNT(列名) 计算某一列中数据的个数 COUNT DISTINCT(列名) 计算某一列中不同值的个数 SUM(列名) 计算某一数据列中值的总和 AVG(列名) 计算某一数据列中值的平均值 MIN(列名) 求(字符、日期、数值列)的最小值 MAX(列名) 求(字符、日期、数值列)的最大值,2、无条件查询聚合函数(续),8,例3.18 查询开课总门数 SELECT COUNT(*) FROM C; 例3.19 计算所有学生所学课程的最高分数、最低分数和平均分数。 SELECT MAX(GRADE),MIN(GRADE),AVG(GRADE) FROM SC;,2、无条件查询聚合函数(例),9,3、单条件查询,例3.20 查询所有学习了计算机网络课(课程号为C403001)的学生的学号和成绩 SELECT S#,GRADE FROM SC WHERE C# =C403001;,10,4、多条件查询,例3.21 查询选修了计算机网络课(课程号为C403001)或信息安全技术课(课程号为C403002)的学生的学号 SELECT S# FROM SC WHERE C# =C403001 OR C# =C403002 ;,11,5、分组查询,SELECT FROM WHERE GROUP BY 作用: 对满足WHERE条件的元组集按照指定的列的值进行分组,该属性列值相等的元组为一组,12,例,例3.23 计算各个同学的平均分数。 SELECT S#,AVG(GRADE) FROM SC GROUP BY S#;,13,5、分组查询 SELECT FROM WHERE GROUP BY HAVING 作用: 指定GROUP BY子句形成的分组所应满足的条件,5、分组查询(续),14,例,例3.25 查询学生总数超过300人的专业及其具体的总人数 SELECT SCODE,COUNT(*) FROM S GROUP BY SCODE HAVING COUNT(*)300;,15,6、结果的排序,ORDER BY ASC/DESC , ASC/DESC; 作用: 依据给定列的值,控制查询结果中元组的排列顺序。,16,6、结果的排序(例),例3.27 按学号递增、课程成绩递减的显示顺序显示学生的课程成绩 SELECT S#,C#,GRADE FROM SC ORDER BY S# ASC,GRADE DESC;,17,7、字符串的匹配,下划线通配符_:代表任意一个字符 百分号通配符%:代表任意长度的字符串 例3.28 查询S中姓李的学生的学号和姓名SELECT S#,SNAME FROM S WHERE SNAME LIKE 李%;,18,简单查询语句,SELECT FROM WHERE GROUP BY HAVING ORDER BY ASC/DESC , ASC/DESC;,读取FROM子句指定的基本表或视图的数据,执行笛卡尔积操作,选取满足WHERE子句中给出的条件表达式的元组,按GROUP BY子句中指定列的值进行分组,同时提取满足HAVING子句中组条件表达式的那些组,按SELECT子句中给出的列名或列表达式求值输出,ORDER BY子句对输出的结果(目标表)进行排序,按指定列的值升序或降序排列,19,二、SQL高级查询技术,1、多表联接查询 例3.32 查询所有学习了数据结构课(课程号为C401001)的学生的学号和姓名 SELECT S.S#,SNAME FROM S,SC WHERE S.S# = SC.S# AND C# =C401001;,20,2、嵌套查询,在SQL语言中,如果在一个SELECT语句的 WHERE子句中嵌入了另一个SELECT语句,则称这种查询为嵌套查询。 WHERE子句中的SELECT语句称为子查询,外部的查询称为父查询。,21,SELECT * FROM S WHERE CLASS=( ) AND SSEX=女;,2、嵌套查询例,示例 查询张华同学(学号为200401001)的那个班的女同学的基本信息。,SELECT CLASS FROM S WHERE S#=200401001,22,3、查询中的表更名,3、查询中的表更名 旧名 AS 新名 例3.35 检索成绩比该课程平均成绩低的学生成绩表。 SELECT S#,C#,GRADE FROM SC WHERE GRADE (SELECT AVG(GRADE) FROM SC AS X WHERE X.C#=SC.C#);,23,三、谓词演算查询,所谓基于谓词演算的查询是指把谓词看作是特殊比较操作符、应用于WHERE子句的条件表达式中的查询。,24,格式: IN NOT IN 含义:,1、IN和NOT IN,如果集合1中的数据是集合2中的成员,那么其逻辑值为true,否则为false.,25,例3.36 查询所有学习了数据结构课(课程号为C401001)的学生的学号和姓名。 SELECT S.S#,SNAME FROM S WHERE S# IN (SELECT S# FROM SC WHERE C# =C401001);,1、IN和NOT IN例,26,格式: ANY SOME 含义:,2、ANY和SOME,如果比较运算符左边的数据与右边集合中至少一个 元素满足运算,那么其逻辑值为true,否则为false.,27,例3.38 查询所有学习了数据结构课(课程号为C401001)的学生的学号和姓名。 解法3 SELECT S.S#,SNAME FROM S WHERE S# =ANY (SELECT S# FROM SC WHERE C# =C401001);,2、ANY和SOME例,28,格式: ALL 含义:,3、ALL,如果比较运算符左边的数据与右边集合中所有元素满足运算,那么其逻辑值为true,否则为false.,29,3、ALL例,例3.39 查询考试成绩大于计算机科学专业(专业代码S0401)所有学生课程成绩的学生的基本信息 SELECT S.* FROM S,SC WHERE S.S#=SC.S# AND GRADE ALL (SELECT GRADE FROM S,SC WHERE S.S#=SC.S# AND SCODE=S0401);,30,格式:EXISTS() NOT EXISTS() 含义:,4、EXISTS和NOT EXISTS,EXISTS是存在量词,当集合中至少存在一个元素(非空)时,其逻辑值为true,否则为false。 NOT EXISTS是空集判断,当集合中不存在任何元素(为空)时,其逻辑值为true,否则为false。,31,例3.40 查询所有学习了数据结构课(课程号为C401001)的学生的学号和姓名。 SELECT S.S#,SNAME FROM S WHERE EXISTS (SELECT * FROM SC WHERE SC.S# = S.S# AND C# =C401001);,4、EXISTS和NOT EXISTS例,32,SELECT C#,AVG(GRADE) FROM SC,TEACH,T WHERE SC.C#=TEACH.C# AND TEACH.T#=T.T# AND TNAME Like 张% GROUP BY C# ORDER BY 2 DESC;,例:求张老师所授课程的每门课程的学生平均成绩,并按平均成绩降序输出。,33,1、简单查询 2、SQL高级查询技术 3、自学内容 (1)SQL语言中的常用函数及其使用方式 (2)查询结果的并、交、差操作,小结,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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