数据库原理与应用快速入门 课件 4.2 实现单表查询_第1页
数据库原理与应用快速入门 课件 4.2 实现单表查询_第2页
数据库原理与应用快速入门 课件 4.2 实现单表查询_第3页
数据库原理与应用快速入门 课件 4.2 实现单表查询_第4页
数据库原理与应用快速入门 课件 4.2 实现单表查询_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理与应用快速入门4.1了解SQL4.2实现单表查询4.3实现连接查询第4章

查询数据4.4实现嵌套查询4.5实现集合查询4.6查询综合应用4.2.1查询表中的列4.2.2消除结果中的重复行4.2实现单表查询4.2.3查询满足条件的记录4.2.4对查询结果排序4.2.5使用LIMIT限制查询结果的条数4.2.6使用聚合函数4.2.1查询表中的列4.2.2消除结果中的重复行4.2实现单表查询4.2.3查询满足条件的记录4.2.4对查询结果排序4.2.5使用LIMIT限制查询结果的条数4.2.6使用聚合函数4.2.7对查询结果分组4.2.1查询表中的列SELECT子句中的目标列表达式,可以是列名的列表,也可以是算术表达式或者函数。4.2.1查询表中的列【例4-1】查询全体学生的姓名、学号、班级。4.2.1查询表中的列【例4-2】查询全体学生的详细信息。4.2.1查询表中的列【例4-3】查询sc表中学生的学号以及每名学生加5分后的成绩。4.2.1查询表中的列【例4-4】查询每个学生的学号、姓名、班级、和出生的年份。4.2.2消除结果中的重复行【例4-5】查询选修了课程的学生的学号,要求相同的学号在查询结果中只显示一次。【注意】如果没有在SELECT子句中指定DISTINCT短语,则缺省为ALL,即保留结果表中取值重复的行。4.2.3查询满足条件的记录以上两节中,查询结果将表中的全部数据行按查询需求显示出来,然而在实际应用中,很多查询只需要将表中的部分数据行显示,这就是带有条件的查询。查询满足条件的记录通过WHERE子句来实现。4.2.3查询满足条件的记录表4.2常用的查询条件查询条件谓词比较=,>,<,>=,<=,!=,<>,!>,!<确定范围BETWEEN…AND…,NOTBETWEEN…AND…确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重条件AND,OR4.2.3查询满足条件的记录(1)比较大小读者需注意,部分比较运算符和我们在数学中常用的运算符表示方式不同,如>=(大于或等于),<=(小于或等于),!=(不等于),<>(不等于),!>(不大于),!<(不小于)等。4.2.3查询满足条件的记录(1)比较大小【例4-6】在sc表中查询选修成绩及格的学生记录。4.2.3查询满足条件的记录(1)比较大小【例4-7】查询students表中班级不是“软件技术”班的学生的学号和姓名。4.2.3查询满足条件的记录(1)比较大小【注意】在带有条件的查询中,表示查询条件的值时,有两类数据需要用单引号括起来。一类是字符串型数据,如char、varchar、enum等。上例中,因班级列的数据类型是字符串,所以列的值“软件技术”用单引号括起来了。另一类是日期和时间型数据,如datetime、date等。如表示出生年月日在1992年1月2日,表达式应该写作:出生年月日='1992-1-2'。4.2.3查询满足条件的记录(2)确定范围谓词BETWEEN…AND…和NOTBETWEEN…AND…用于查询表中某列的值在(或不在)指定范围内的记录,其中BETWEEN后是范围下限(即低值),AND后是范围的上限(即高值)。4.2.3查询满足条件的记录(2)确定范围【例4-8】在sc表中查询课程成绩为优秀的学生的学号、课程号和成绩(成绩在90—100分之间的为优秀)。4.2.3查询满足条件的记录(3)确定集合如果查询条件不是一个连续的范围,而是几个固定的值的集合,则需要使用谓词IN和NOTIN来表示。4.2.3查询满足条件的记录(3)确定集合【例4-9】在courses表中查询“操作系统”、“软件工程”和“数据结构”这三门课的详细信息。4.2.3查询满足条件的记录(4)字符匹配有些情况下,我们可能不清楚查询的具体条件是什么,例如,要查询姓“王”的学生的信息,但不清楚学生的名字叫什么。要查询“数据库”的课程信息,但不知道课程的全称是什么。此类查询需要用字符匹配来实现。字符匹配类似于Windows操作系统中的模糊查找。4.2.3查询满足条件的记录(4)字符匹配【例4-10】在学生表中查询姓“王”的学生的学号和姓名。4.2.3查询满足条件的记录(4)字符匹配为实现查询需求,WHERE子句中使用了谓词like加匹配串的格式。字符匹配的一般格式为:

[NOT]LIKE'匹配串'其含义是查找指定列的值与匹配串相匹配的记录。4.2.3查询满足条件的记录(4)字符匹配各部分的参数解释如下:匹配串:固定字符串或含通配符的字符串。当为固定字符串时,可以用=运算符取代LIKE,用!=或<>运算符取代NOTLIKE。通配符“%”(百分号)代表任意长度(长度可以为0)的字符串。例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addpb,ab等都满足该匹配串。通配符“_”(下横线)代表任意单个字符,例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串。4.2.3查询满足条件的记录(4)字符匹配【例4-11】查询姓“欧阳”且全名为四个汉字的学生的名字。4.2.3查询满足条件的记录(4)字符匹配【例4-12】查询名字中第二个字为“阳”字的学生姓名和学号。4.2.3查询满足条件的记录(4)字符匹配【例4-13】在students表中查询不姓“王”的所有学生的学号和姓名。4.2.3查询满足条件的记录(5)涉及空值的查询在实际应用中,如果我们需要查询某些列为空值的记录,应该如何表示呢?4.2.3查询满足条件的记录(5)涉及空值的查询【例4-14】因考试旷考,sc表中有学生某些课程的成绩为空值。查询成绩为空值的学生的学号和课程号。4.2.3查询满足条件的记录(5)涉及空值的查询【例4-14】因考试旷考,sc表中有学生某些课程的成绩为空值。查询成绩为空值的学生的学号和课程号。若将查询修改为“查询成绩不为空值的学生的学号和课程号”,则查询语句更改为:4.2.3查询满足条件的记录(6)多重条件查询如果查询的条件多于一个,我们称之为多重条件查询。多重条件查询中使用逻辑运算符AND和OR来联接多个查询条件。需要注意的是,AND的优先级高于OR,但用户可以用括号改变优先级。4.2.3查询满足条件的记录(6)多重条件查询【例4-15】查询学生表中计算机应用班的男生信息。4.2.3查询满足条件的记录(6)多重条件查询【例4-16】查询courses表中学时大于40或者学分大于3分的课程信息。4.2.3查询满足条件的记录(6)多重条件查询【例4-17】在students表中查询女生的学号和姓名,要求班级为计算机应用或者计算机网络班。4.2.4对查询结果排序所谓对查询结果排序,指的是根据排序规则,将查询结果按照指定的顺序(升序或者降序)排列显示。排序使用ORDERBY子句来实现。4.2.4对查询结果排序【例4-18】查询选修了001号课程的学生的学号和成绩,查询结果按成绩升序排列。4.2.4对查询结果排序【例4-19】查询students表中的学生信息,查询结果先按姓名升序排列,对于同名同姓的学生,再按出生年月日降序排列。4.2.5使用LIMIT限制查询结果的条数如果只需要返回查询结果的一部分,如前几行记录或指定的几行记录,可以使用LIMIT关键字来实现。LIMIT关键字的语法格式如下:

LIMIT[位置偏移量,]行数其中,第一个参数“位置偏移量”为可选参数,指明查询结果从哪一行开始显示。如果不指定位置偏移量,则会从查询结果的第一行开始显示。请注意,查询结果的第一条记录位置偏移量为0,第二条记录位置偏移量为1,以此类推。第二个参数行数表示要显示的记录行数。4.2.5使用LIMIT限制查询结果的条数【例4-20】查询students表的前五条记录。4.2.5使用LIMIT限制查询结果的条数【例4-21】查询students表中从第三条记录开始的三名学生的信息。4.2.6使用聚合函数为了方便用户对数据进行汇总和统计,SQL中提供了一系列聚合函数。本节介绍常用聚合函数(见表4.3所示)的使用方法。表4.3常用的聚合函数函数名作用COUNT()统计表中记录的总条数或表中某列包含数值的个数SUM()计算一列值的总和(此列数据类型必须是数值型)AVG()计算一列值的平均值(此列数据类型必须是数值型)MAX()求一列中的最大值MIN()求一列中的最小值4.2.6使用聚合函数(1)COUNT()函数COUNT()函数用于统计表中记录的总条数或表中某列包含数值的个数,其使用格式有三种:COUNT(*):统计表中记录的总条数。COUNT(列名):统计表中某列包含数值的个数,忽略空值。COUNT(DISTINCT列名):统计表中某列包含数值的个数,忽略空值和重复值。4.2.6使用聚合函数(1)COUNT()函数【例4-22】查询学生的总人数。4.2.6使用聚合函数(1)COUNT()函数【例4-23】查询选修了课程的学生人数。4.2.6使用聚合函数(2)SUM()函数SUM()函数用于计算表中一列数据,其数值的总和。因为需要进行求和运算,此列的数据类型必须是数值型。4.2.6使用聚合函数(2)SUM()函数【例4-24】查询学号为“210101001”的学生所选修课程的总成绩(即选修成绩的总和)。4.2.6使用聚合函数(3)AVG()、MAX()和MIN()函数AVG()函数用于计算表中一列数据,其数值的平均数。因为需要进行求平均数运算,此列的数据类型必须是数值型。MAX()函数用于计算表中一列数据中的最大值。MIN()函数用于计算表中一列数据中的最小值。MAX()函数和MIN()函数的参数不一定是数值型数据,因为其他类型的数据也可以比较大小。4.2.6使用聚合函数(3)AVG()、MAX()和MIN()函数【例4-25】查询选修“001”号课程的学生的平均成绩,最高分和最低分。4.2.7对查询结果分组GROUPBY子句用于将查询结果按表中某一列或者多列的值分组,值相等的分为一组。对查询结果分组的目的是为了细化聚

温馨提示

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

评论

0/150

提交评论