版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章查询操作SQLServer2014
数据库应用教程本章要点统计查询条件查询简单查询321分组查询14排序查询5嵌套查询6连接查询17其他查询81
简单查询简单查询就是从已知的数据库表中查询所需要的数据内容。学习依据渐进性原则,我们以OASystem实例数据库为例,进行简单的数据查询。主要步骤如下:(1)返回表中所有数据(2)TOPN返回表中前几条数据(3)返回表中的某一列(4)给列起名1.1主要步骤实现过程请参考视频1.2查询语句在SQLServer中,对数据的查询使用SELECT语句。SELECT语句功能强大,使用灵活,可以对数据库进行各类查询。查询语句的语法结构如下:SELECT<列名列表>FROM<表名或视图名列表>[WHERE<条件>][ORDERBY<列名列表>[ASC|DESC]][GROUPBY<列名>[HAVING<条件>]]说明如下:SELECT语句用于指定查询的输出列,即字段列表。WHERE子句用于指定记录有条件的查。FROM子句指定从哪里查。ORDERBY短语是指将查询的结果进行排序。GROUPBY短语是指要将查询的结果进行分组汇总。1.2查询语句简单查询Select[DISTINCT]<列名列表>from表名说明如下:(1) 如果查询所有的列,则列名列表由*代替。(2) 如果指明查询指定的某一列或某几列,则列名之间用“,”号隔开。(3) DISTINCT表示去掉重复的记录。Select[TOPN]<列名列表>from表名TOPN用于指定查询结果返回的行数。Select列名as新名from表名给列起别名2条件查询以OASystem实例数据库为例进行条件查询,体会条件查询的基本用法。主要步骤如下:(1)比较运算符(2)范围运算符(3)列表运算符(4)模糊匹配运算符2.1实现步骤实现过程请参考视频2.2Where语句WHERE子句被用于选取需要检索的数据行,灵活地使用WHERE子句能够指定许多不同的查询条件,以实现更精确的查询。在SELECT查询语句中使用WHERE子句时的一般语法结构为:select…from…where<条件>WHERE子句使用灵活,条件有多种使用方式,下表列出了WHERE子句中可以使用的条件。3
统计查询本任务将学习查询中常用到的一些聚合函数,来实现数据统计。主要步骤如下:(1)COUNT实现计数。(2)AVG实现求平均值。(3)MAX,MIN实现求最大值、最小值。(4)SUM实现求和。3.1实现步骤实现过程请参考视频在SELECT…FROM…命令中,在SELECT后面,可以接所查表中字段的列,可以是表达式,也可以是函数(包括一般函数和聚合函数)。此时通常用到as新列名,即给查询的列起名,以使查询的结果更直观。SELECT中常用的聚合函数有SUM、AVG、MAX、MIN、COUNT。其含义如下。3.2聚合构造函数SUM(列名) 按列求和AVG(列名) 按列求平均值MAX(列名) 按列求最大值MIN(列名) 按列求最小值COUNT(*) 统计记录个数4
分组查询本任务通过OASystem数据库学习分组查询的相关知识,主要步骤如下:(1)GROUPBY字段名。(2)GROUPBY字段名HAVING<条件>。4.1实现步骤实现过程请参考视频在SELECT…FROM…命令中,在SELECT后面,可以接所查表中字段的列。可以是表达式,也可以是函数(包括一般函数和聚合函数)。此时通常用到as新列名,即给查询的列起名,以达到查询的结果更直观。4.2分组查询相关知识分组时,查询的列字段只能是聚合函数或分组字段。如若出现其他字段,则系统报错。WHERE<条件>表示条件,HAVING<条件>也是表示条件,但二者是有区别的,WHERE用于SELECT语句中,表示查询要满足的条件,用法参考前面章节;HAVING<条件>只能与GROUPBY分组配合使用,表示将分组后将满足条件的记录输出。5
排序查询本任务通过OASystem数据库学习条件查询的相关知识,主要步骤如下:(1)ORDERBY字段名。(2)ORDERBY字段名1,字段名2。(3)INTO表名。5.1实现步骤实现过程请参考视频使用ORDERBY子句在查询结果集中,记录的顺序是按它们在表中的顺序进行排列的,可以使用ORDERBY子句对查询的结果重新进行排序。排序规则包括:升序(即按由低到高或从小到大,使用关键字ASC)降序(即按由高到低或由大到小,使用关键字DESC)如果省略ASC和DESC,系统默认升序。也可以在ORDERBY中指定多个字段,检索结果首先按第一个字段进行排序,对于第一个字段的值相同的那些数据,则按第2个字段值排序,以此类推。ORDERBY子句要写在WHERE<条件>子句的后面。5.2排序查询相关知识使用INTO子句在SELECT查询中,使用INTO短语,可以将查询的结果保存到指定的表中,位置要在FROM之前,查询的列之后。格式:INTO表名(根据查询建立临时基本表)使用INTO注意事项:(1)新表是命令执行时新创建的。(2)新表中的列和行是基于查询结果集的。5.2排序查询相关知识6
嵌套查询本任务通过OASystem数据库学习嵌套查询的相关知识,主要步骤如下:(1)先执行内层查询。(2)再执行外层查询。6.1实现步骤实现过程请参考视频嵌套查询也可以称为子查询,当查询的内容来自多张表,而且多张表之间有一定的联系时,我们就可以考虑是否能用嵌套查询(子查询)来解决问题。子查询中可以最多嵌套32层子查询。子查询分为以下几种类型:6.2嵌套查询相关知识用短语IN将多个查询关联起来。也可以用EXISTS、ANY、ALL等谓词来关联。用于关联数据可以用子查询产生一个派生的表,用于代替FROM子句中的表。派生表是FROM子句中子查询的一个特殊用法,用一个别名或用户自定义的名字来引用这个派生表。。用于派生表2在查询中,所有使用表达式的地方,都可以用子查询代替。此时子查询必须返回一个单个的值或某一个字段的值。用于表达式31当用嵌套查询产生派生表时,必须考虑到:(1)查询语句中的一个结果集,被用做一个表。(2)代替了FROM子句中的表。(3)将与查询的其它部分一起参与优化。当使用嵌套查询向表中添加记录时,必须注意:(1)SELECT子句的列名列表必须与INSERT语句的列名列表的列数、列序、列的数据类型都要兼容。(2)SELECT语句不能用小括号括起。6.2嵌套查询相关知识7
连接查询本任务通过OASystem数据库学习连接查询的相关知识内连接是SQLSERVER默认的连接方式。内连接通过比较两个表共同拥有的列的值,把两个表连接起来返回满足条件的行。仅当一个表中的一些行在另一个表中也有相应行时,内连接才会返回两表中任意一表中的这些行,并会忽略所有未满足连接条件的行。一般性连接,连接的原理同内连接相同,只是命令格式稍有不同,一般性连接是用WHERE指明连接条件,内连接是用ON指明连接条件。相比而言,一般性连接使用更简单、更灵活一些。主要步骤如下:(1)实现内连接。(2)实现一般性连接。7.1连接查询实现过程请参考视频内连接语法格式如下:SELECT列名列表FROM表名1[INNER]JOIN表名2ON表名1.列名=表名2.列名说明如下:(1)列名列表必须是表名1中含有的字段。(2)如果查询中还有其他条件则使用where<条件>子句。7.2连接查询相关知识一般连接语法格式如下:SELECT列名列表FROM表名1,表名2WHERE表名1.列名=表名2.列名说明如下:(1)列名列表可以是两张表中任意的字段。(2)如果查询中还有其他条件则写在原WHERE<连接条件>后,用and连接。内连接和一般性连接的区别内连接和一般性连接都是只包含满足连接条件的数据行,也称自然连接,这是二者的相同点,不同点主要有:(1)连接条件写法不同。内连接,连接条件表达式用ON连接;一般性连接用WHERE指定连接条件。(2)表名写的位置不同。内连接中第一个FROM后面只能跟一张表,即要查询的字段存在的那张表。一般性连接FROM后面跟多张表,之间用“,”隔开。7.2连接查询相关知识8
其它连接查询在连接查询中,除所提及的两种连接查询外,还有其它几种连接方式,如交叉连接、外连接、和集合连接查询。交叉连接可以生成测试数据或为核对表及业务模块生成所有可能组合的清单。交叉连接将从被连接的表中返回所有可能的行的组合。外连接根据返回行的主从表形式不同,其可分为三种类型,即左外连接、右外连接和全外连接。(1)左外连接即在连接时将左边表的字段值完全保留下来,右边表没有相同匹配的项则以NULL替代,即leftjoin。(2)右外连接即在连接时将右边表的字段值完全保留下来,左边表没有相同匹配的项则以NULL替代,即rightjoin。(3)全外连接即左右两边表所有的字段值都保留下来,即fulljoin。8.1其他连接查询使用UNION运算符可以将两个或多个SELECT语句的结果组合成一个结果集。即集合连接。使用集合连接查询要求结果集都必须具有相同的结构,即列数相同,并且相应的结果集列的数据类型必须兼容。主要步骤如下:(1)交叉连接。(2)外连接。(3)集合连接。8.1其他连接查询实现过程请参考视频交叉连接其格式如下:格式一:SELECT列名列表FROM表名1,表名2格式二:SELECT列名列表FROM表名1CROSSJOIN表名2说明如下:(1)交叉连接的结果是两个表的笛卡儿积。(2)交叉连接在实际应用中一般是没有意义的,但在数据库的数学模式上有重要的作用。8.2其他连接查询相关知识外连接查询(左外连接):将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返回左表中不符合条件的记录,并在右表的相应列中填上NULL,由于bit类型不允许为NULL,就以0值填充。格式:SELECT列名列表FROM表名1ASALEFT[OUTER]JOIN表名2ASBONA.列名=B.列名8.2其他连接查询相关知识外连接查询(右外连接):和左外连接类似,右外连接是将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返回右表中不符合条件的记录,并在左表的相应列中填上NULL,由于bit类型不允许为NULL,就以0值填充。格式:SELECT列名列表FROM表名1ASARIGHT[OUTER]JOIN表名2ASBONA.列名=B.列名8.2其他连接查询相关知识外连接查询(全外连接):全外连接是将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级下册英语外研版单元测试卷含答案Module9
- 经济与管理学院研究生思想动态调研报告2026(3篇)
- 2026中国医疗人工智能应用场景及商业化路径研究报告
- 2026中国冷链物流智能化升级市场分析与投资决策报告
- 2026汽车改装市场潜力分析及政策法规与消费者需求研究报告
- 2026中国老年医疗行业市场现状供需分析及养老模式创新研究报告
- 2026中国真空热成型包装行业节能减排与绿色生产技术研究报告
- 2026中国数字孪生技术在智慧交通中应用案例报告
- 人教版四年级音乐下册(简谱)第三单元《甘洒热血写春秋》教学设计
- 肩肘倒立 教学设计-2023-2024学年高二上学期体育与健康人教版必修第一册
- 2025年广投集团招聘笔试题目及答案
- 护理专业学生实习实习心理调适
- 中国听性脑干反应临床操作规范专家共识(2026版)
- 抬墓碑安全协议书
- 糖化终产物在口腔-全身损伤中的作用
- 儿科感染性疾病诊断与治疗
- 交通运输部南海救助局2025年下半年招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 《简爱》核心内容解析
- 2026年软件定义汽车:SOA和中间件行业研究报告
- 川教版二年级上册生命生态安全全册教案教学设计
- 《0~3岁婴幼儿家庭教养指导》全套教学课件
评论
0/150
提交评论