




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 数据查询2022/8/81 / 462022/8/82 / 46假若你作为学生管理信息系统的程序开发员,需要查询student数据库中的学生基本信息、考试课程、授课教师、考试分数等数据内容,那么你如何操作实现呢? 本章教与学的建议:教师使用4课时先讲后练,再归纳总结,学生在教师的指导下使用4课时在课内练习。本章目标是使学生通过学习训练,能够按照需求及时地从相关的数据表中查询出所需要数据 。第5章 数据查询 2022/8/83 / 46第5章 数据查询本章学习任务 查询语句 简单查询、FROM子句与INTO子句、WHERE子句、ORDER BY子句、GROUP BY子句与HAVING子句
2、、COMPUTE子句 连接查询 连接概述、内连接、外连接、交叉连接、自连接 嵌套查询 单值嵌套查询、多值嵌套查询 联合查询2022/8/84 / 46 所谓数据查询,就是对已经存在于数据库中的数据按特定的组合、条件或次序进行检索。查询功能是数据库最基本也是最重要的功能。 SELECT语句的形式:SELECT select_listINTO new_table_nameFROM table_listWHERE search_conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC|DESCCOM
3、PUTE row_aggregate(column_name)BY column_name数据查询2022/8/85 / 46SELECT ALL | DISTINCT * | table_name | view_name .* | column_name AS column_titleFROM table_name | view_name 其中:DISTINCT将会丢弃SELECT指定列的重复记录;ALL保留结果表中所有的行;* 表示当前表或视图的所有列;table_name.* | view_name.*表示指定表或视图的所有列;column_name AScolumn_title表示可用
4、column_name1AS column_title1,column_name2AS column_title2 , .来更改指定列的标题,或者用column_title1=column_name1,column_title2=column_name2,.来更改指定列的标题简单查询语句2022/8/86 / 46简单查询语句(示例5.1)2022/8/87 / 46简单查询语句(示例5.2)2022/8/88 / 46SELECT语句有五个子句提供选择,每一个子句有大量的选项、参数,而FROM是惟一必须的子句。SELECT column_name1, column_name2,.FROM t
5、able_name1,table_name2,. FROM子句指定SELECT语句查询的一个或多个表,最多可以指定16个表,每一个表名用逗号分隔。即从指定的数据表table_name1,table_name2,.的记录中,检索(SELECT)出指定的列column_name1, column_name2,.n形成结果集。不过,FROM后面的表名在两个或者两个以上时,SELECT列表中应该采用table_name.column_name形式限定列所属的表。FROM子句2022/8/89 / 46FROM子句(示例5.3)2022/8/810 / 46使用SELECTSELECTINTO语句可以在
6、查询数据的基础上创建新的数据表。通常,可使用这种方法来创建临时表,以便在随后的开发过程中使用。SELECT column_name1, column_name2,.nINTO new_table FROM table_name其中, new_table为新创建的表名称,它在当前数据库中是不存在的。INTO子句2022/8/811 / 46INTO子句(示例5.4)2022/8/812 / 46一般查询都不是针对全表所有行的查询,只是从整个表中选出满足指定条件的内容,这就要用到WHERE子句。SELECT column_name1, column_name2,.nFROM table_name
7、WHERE search_condition根据WHERE子句的搜索条件表达式(search_condition),从FROM子句指定的表中找出满足条件的记录,再按SELECT中的目标列,选出记录中的列值形成结果集。 WHERE子句2022/8/813 / 46WHERE子句中常用的查询条件包括:比较,比较包括的运算符主要有、=、=、等; 确定范围,包括BETWEEN A AND B与NOT BETWEEN A AND B; 确定集合,包括IN、NOT IN等; 字符匹配,包括LIKE、NOT LIKE; 空值,包括IS NULL、IS NOT NULL; 查询结果,包括EXISTS、NOT
8、EXISTS; 多重条件,主要有AND、OR、NOT等。WHERE子句2022/8/814 / 46WHERE子句(示例5.5)2022/8/815 / 46WHERE子句(示例5.6)2022/8/816 / 46WHERE子句(示例5.7)2022/8/817 / 46WHERE子句(示例5.8)2022/8/818 / 46SELECT column_name1, column_name2,.nFROM table_nameWHERE search_conditionORDER BY column_name1ASC | DESC, column_name2ASC | DESC, .ORD
9、ER BY是一个可选的子句,如果有ORDER BY子句,将按照排序列名column_name1, column_name2, .进行排序,其结果表还要按选项的值升序(ASC)或降序(DESC)排列。缺省时为查询结果按升序排列。ORDER BY子句2022/8/819 / 46ORDER BY子句(示例5.9)2022/8/820 / 46使用GROUP BY子句可以按一定的条件对查询到的结果进行分组,再对每一组数据计算统计信息。SELECT column_name1, column_name2 ,.nFROM table_name WHERE search_conditionGROUP BY
10、group_by_expressionHAVING search_conditionGROUP BY将查询结果按 (group_by_expression)进行分组,该属性列相等的记录为一个组。通常,在每组中通过聚合函数来计算一个或者多个列。如果GROUP带有HAVING,则只有满足search_condition的组才能输出。GROUP BY与HAVING子句2022/8/821 / 46GROUP BY与HAVING子句2022/8/822 / 46GROUP BY与HAVING子句2022/8/823 / 46SELECT column_name1, column_name2,.nFRO
11、M table_name WHERE search_conditionORDER BY column_nameASC | DESC, . COMPUTE row_aggregate(column_name), row_aggregate (column_name)BY column_name ,column_name其中,row_aggregate表示行聚合函数,如AVG(),COUNT(),MAX(),MIN(),SUM() 。COMPUTE子句生成合计作为附加的汇总列出现在结果集的最后。当与BY一起使用时,COMPUTE子句在结果集内对指定列进行分类汇总。可在同一查询内指定COMPUTE
12、BY和COMPUTE。COMPUTE子句2022/8/824 / 46COMPUTE子句(示例5.12)2022/8/825 / 46在数据库应用中,经常需要从多个相关的表中查询数据,这就需要进行表连接。通过连接可以查询出存放在多个表中的不同表的数据通过连接可以为不同表构建新的数据表通过连接可以使用一个表中的数据来查询其他表的数据连接查询概述2022/8/826 / 46在WHERE子句中定义连接SELECT table_name.column_name, table_name.column_name,.FROM table_name1 , table_name2WHERE table_nam
13、e1.column_name join_operator table_name2.column_name其中:join_operator指 = , , = , = , 。在FROM子句中定义连接SELECT table_name1.column_name, table_name2.column_name,.FROM table_name1 join_type JOIN table_name2 ON join_conditionsWHERE search_condition其中:join_type为连接类型:内连接、外连接、交叉连接。 连接查询概述2022/8/827 / 46连接查询概述(示例
14、5.13)2022/8/828 / 46连接查询概述(示例5.14)2022/8/829 / 46内连接是用比较运算符比较两个表中列值,将两个表中满足连接条件的行组合起来作为结果,它是最常见的表连接形式。等值连接,在SELECT列表中使用星号(*)的和在结果集中显示冗余列数据的连接。 不等值连接,在连接条件中使用除等于运算符以外的其它比较运算符(、=、=、!、),来比较被连接列的列值。 自然连接,对结果集的冗余列数据进行限制的连接。在连接条件中使用等号(=)运算符比较被连接列的列值,但它使用选择列表指定查询结果聚合中所包括的列,并删除连接表中的重复列。内连接2022/8/830 / 46内连接
15、(示例5.15)2022/8/831 / 46内连接(示例5.16)2022/8/832 / 46SELECT table_name1.column_name, table_name2.column_name,.FROM table_name1 LEFT|RIGHT|FULL OUTER JOIN table_name2ON join_conditions WHERE search_condition外连接会返回FROM子句中提到的至少一个表中的所有行,只要这些行符合任何WHERE或HAVING搜索条件。外连接分为左外连接、右外连接和全外连接。左外连接对连接条件中左边的表不加限制;右外连接对连
16、接条件中右边的表不加限制;全外连接对两个表都不加限制,所有两个表中的行都会包括在结果集中。 外连接2022/8/833 / 46外连接(示例5.17)2022/8/834 / 46外连接(示例5.18)2022/8/835 / 46外连接(示例5.19)2022/8/836 / 46 使用关键字CROSS包含一个以上的表的连接称为交叉连接。 交叉连接也叫非限制连接,它将两个表不加任何限制地组合起来。 交叉连接不使用WHERE子句,返回的结果集包含所连接的表中所有行的全部组合。其数目为第一个表中符合连接条件的行数与第二个表中符合连接条件的行数的乘积。 交叉连接2022/8/837 / 46 数据
17、表可以通过自连接实现自身与自身连接,例如一个表中的某一行与同一个表中的其它行进行关联。 自连接可以看作是一张表的两个副本之间进行的连接。SELECT aliat1.column_name1, aliat1.column_name2, .FROM table_name aliat1, table_name aliat2WHERE aliat1.column_name join_operator aliat2.column_name在自连接中,主要用来查询同一个表中的数据信息,即同一个表应给出不同的别名。自连接2022/8/838 / 46自连接(示例5.20)2022/8/839 / 46 将一
18、个查询块(子查询)嵌套在另一个查询块的条件子句中的查询被称为嵌套查询。 子查询是一个嵌套在SELECT、INSERT、UPDATE或DELETE 语句或其他子查询中的查询。 单值嵌套查询子查询的返回结果是一个值的嵌套查询称为单值嵌套查询。 多值嵌套查询子查询的返回结果是一列值的嵌套查询称为多值嵌套查询 嵌套查询2022/8/840 / 46嵌套查询(示例5.21)2022/8/841 / 46嵌套查询(示例5.22)2022/8/842 / 46嵌套查询(示例5.23)2022/8/843 / 46 使用UNION运算符可以将两个或多个SELECT语句的结果组合成一个结果集。SELECT column_list INTO new_table_nameFROM clause WHERE clauseGROUP BY clauseHAVING clauseUNION ALLSELECT column_listFROM clause WHERE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 确定年度目标的关键步骤计划
- 养殖生产合同样本
- 数字艺术在学校教育中的创新应用计划
- 公路代建合同标准文本
- 人瑞合同样本
- 冻品进口合同样本
- 二建项目管理合同样本
- 关于土建合同样本
- 农场餐具租赁合同样本
- 俄罗斯再生能源合同样本
- 一年级道德与法治下册素养教案第10课 相亲相爱一家人
- 办公楼弱电系统设计方案
- 私募投资学试题及答案
- 2025届山东省青岛市高三下学期一模读后续写+替补队员+讲义
- 药物临床试验科普
- 2025年合肥二模数学试题及答案
- 不要慌太阳下山有月光二部合唱简谱
- DB37-T 4612-2023 化妆品生产企业批生产记录常用管理规范
- 干净整洁的个人卫生习惯
- 光伏补贴申请流程
- 厨师操作安全培训
评论
0/150
提交评论