欢迎来到天天文库
浏览记录
ID:58693775
大小:497.00 KB
页数:78页
时间:2020-10-04
《第七章 数据库原理与应用 --fengzqppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理与应用讲师:冯昭强第5章 数据查询本章目录5.1SELECT语句解析与简单SQL语句5.2SELECT子句查询5.3条件查询5.4嵌套查询5.5集合查询5.6连接查询5.7排序查询5.8显示部分记录的top查询5.9统计函数与别名查询5.10分组查询本章小结5.1SELECT语句解析与简单SQL语句如果希望查看表中的数据,可以使用SELECT语句来完成任务。SELECT语句有三个基本的组成部分:SELECT子句、FROM子句和WHERE子句。其一般格式为:SELECT[ALL
2、DISTINCT]<目
3、标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC
4、DESC]]SELECT子句用于指定将要查询的列名称FROM子句指定将要查询的对象(表或视图)WHERE子句指定数据应该满足的条件一般情况下,SELECT子句和FROM子句是必不可少的,WHERE子句是可选的。如果没有使用WHERE子句,那么表示无条件地查询所有的数据。如果SELECT语句中有GROUP子句
5、,则将查询结果按照<列名1>的值进行分组,将该属性列值相等的记录作为一个组。如果GROUP子句带有HAVING短语,则只有满足指定条件的组才会输出。如果有ORDER子句,则结果还要按照<列名2>的值进行升序或降序排列后再输出。如图5.1的示例中,使用了一个简单的SELECT语句查询Student表中的所有数据。在这个示例中,SELECT子句后面的*表示所有列,FROM子句后面的表名称是要查询的对象,没有使用WHERE子句,表示查询所有的数据。图5.1简单的SELECT查询语句示例5.2SELECT子句查询在很
6、多情况下,用户可能只对表中一部分属性列的值感兴趣,这时可以在SELECT子句的<目标列表达式>中指定要查询的属性列。图5.2查询指定数据列示例SELECT子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式,或者说,可以是经过计算的值。可以在SELECT关键字后面的列列表中使用各种运算符和函数。这些运算符和函数包括算术运算符、数学函数、字符串函数、日期和时间函数以及系统函数等。算术运算符(包括+、-、*、/和%)可以用在各种数值列上,数值列的数据类型可以是INT、SMALLINT、TINYINT、FL
7、OAT、REAL、MONEY或SMALLMONEY。【例5.1】查询全体学生的姓名及其出生年份。SELECTSname,2007-SageFROMStudent查询结果如图5.3所示。图5.3查询计算列的值数学函数返回参加运算的数据的数值,如下面的检索语句,分别使用了求圆周率的PI函数、求正弦值的SIN函数、求指数的EXP函数、求幂值的POWER函数等。SELECTPI(),SIN(PI()/2),COS(PI()/4),EXP(10),POWER(10,2)在SELECT子句中,可以通过使用ALL或DIST
8、INCT关键字来控制查询结果集的显示。ALL关键字表示检索所有的数据,包括重复的数据行,DISTINCT关键字表示仅仅显示不重复的数据行,对于重复的数据行,则只显示一次。默认使用ALL关键字。【例5.2】查询选修了课程的学生学号。SELECTSnoFROMSC或SELECTDISTINCTSnoFROMSC图5.4使用了ALL的查询图5.5使用了DISTINCT的查询5.3条件查询5.3.1确定查询5.3.2模糊查询5.3.3带查找范围的查询5.3.1确定查询在WHERE子句中,确定查询指的是使用比较运算符、
9、列表、合并以及取反等运算方式进行的条件查询。比较运算符是搜索条件中最常用的。用于比较大小的运算符一般包括:=(等于),>=(大于等于),<=(小于等于)>(大于),<(小于)!=或<>(不等于)。【例5.3】查询Student表中所有年龄大于19岁的学生信息。SELECT*FROMStudentWHERESage>19或者SELECT*FROMStudentWHERENOTSage<=19查询结果如图5.6所示。图5.6使用“>”运算符查询【例5.4】查询所有计算机学院(“CS”)的学生姓名和学号。SELEC
10、TSno,SnameFROMStudentWHERESdep='CS'如果想查询所有非计算机学院的学生名单,则可以使用:SELECTSno,SnameFROMStudentWHERESdep<>'CS'在WHERE子句中,还可以使用逻辑运算符把若干个查询条件合并起来,组成较复杂的查询条件。这些逻辑运算符包括AND、OR和NOT。AND运算符表示只有在所有的条件都为真时,才返回真。OR运算符表示只要有
此文档下载收益归作者所有