项目9 SQL 数据库查询_第1页
项目9 SQL 数据库查询_第2页
项目9 SQL 数据库查询_第3页
项目9 SQL 数据库查询_第4页
项目9 SQL 数据库查询_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

项目9SQL数据库查询专业核心课程精品课程19.1SELECT语句9.1.1 SELECT语句的基本结构

其语法格式如下:SELECTselect_list[INTOnew_table][FROMtable_source][WHEREsearch_condition][GROUPBYGROUPBY_expression][HAVINGsearch_condition][ORDERBYORDERexpression[Asc|Desc]]9.1.2 用WITH语句检查一致性WITH语句用于指定临时命名的结果集,这些结果集称为公用表表达式,其生命周期在该批处理语句执行后结束。●expression_name:指定要定义的CTE表达式的名称。●column_name:CTE结果集中列的名称。●CTE_query_defmition:创建临时结果集的查询语句。

精品课程29.1SELECT语句9.1.3 用SELECT...FROM子句返回记录

查询所有列:在字段列表中,可以使用“*”关键字代表表中的所有列。查询指定列:当不需要查询表中所有列时,应该指定列名,列与列之间用。计算列:在使用SELECT进行查询时,可以使用表达式,通过表达式获得的列即为计算列。SELECT中使用的表达式除可以包含列,也可以包含常量、函数和运算符。SQLServer2016支持数值的标准四则运算(+、—、*和/)和取余(%)。定义别名:在默认情况下,查询结果显示表中列名,但对于计算列,系统不指定列名,以“无列名”显示。这种情况下,可以使用AS语句指定一个名称,该名称被称为别名。9.1.4 用INTO语句将记录写入指定文件使用INTO语句可以将查询结果生成一个新表或存放在临时表中。如果要将查询结果存放在临时表,就需在临时表名前加上“*”。

精品课程39.1SELECT语句9.1.5 用WHERE语句筛选符合条件的记录

比较条件查询T-SQL代码中的比较运算符范围条件查询:当查询某个范围内的数据时,可以使用Between...And关键字实现。列表条件查询:使用WHERE关键字可以查询与列表中的值相匹配的记录。

运算符含义运算符含义>大于<小于=等于>=大于等于<=小于等于<>或!=不等于!>不大于!<不小于精品课程49.1SELECT语句9.1.5 用WHERE语句筛选符合条件的记录

模式匹配查询模式匹配通配符空值查询:NULL表示空值,当需要判断表达式的值是否为空时,使用ISNULL关键字;若需要判断表达式值是否为非空时,则应该使用ISNOTNULL关键字。

通配符说明%匹配任意多个字符_匹配单个字符“”指定范围(如“a~b”“0-~”)或集合(如“abcd”)中的任何单个字符“^”不在指定范围(“^a~b”“^0~9”)或集合如(如“^abcd”)中的任何单个字符精品课程59.1SELECT语句9.1.6 用GROUPBY语句记录分组

GROUPBY语句将数据按指定字段进行分组。例如,统计XS表中的男生和女生人数,需要先将XS表按照班级、性别字段进行分组;若统计每门课程的平均分,则应该首先将CJ表按照课程号进行分组。GROUPBY语句需要与聚合函数一同使用。聚合函数相关内容请查看本书函数部分。9.1.7 用HAVING语句对聚合指定条件HAVING语句与WHERE语句的功能类似,都是对数据进行筛选。不同的是,WHERE语句是在分组之前对数据进行筛选,HAVING语句是对分组后的数据进行筛选。HAVING语句中可以包含聚合函数,而WHERE语句不能包含聚合函数。当WHERE、GROUPBY和HAVING语句同时存在于SELECT语句中时,需要注意其执行的顺序。首先执行的是WHERE语句,筛选符合条件的记录:接着执行的是GROUPBY语句,对符合条件的记录进行分组;最后对分组结果进行筛选。

精品课程69.1SELECT语句9.1.8 用ORDERBY语句排序

ORDERBY语句是对查询结果按一个或多个字段进行排序。排序方式分为升序和降序两种,分别使用关键字Asc和Desc,Asc是系统默认方式。9.1.9 用Distinct关键字排除重复值使用Distinct关键字可以从查询结果中消除重复的行,该关键字表示选取符合条件的数据记录,并当选取的记录中有重复记录时,去除重复记录。使用Distinct关键字的SELECT语句在实际应用中使用非常多。9.1.10 用Top关键字返回指定记录如果SELECT查询的结果集非常大,可以使用Top关键字限制其返回的行数。返回行数的方法有两种,可以指定返回的数量,也可以指定返回记录的比例。

精品课程79.2Union合并多个查询结果9.2.1 Union与连接之间的区别

Union操作是把两个查询结果集追加在一起,它不会引起列的变化;连接操作是根据连接条件对两个表的列进行比较,并将两个表指定的列连接在一起。Union操作是将两个或多个查询结果进行横向结合;而连接操作是将两个或多个表或查询结果进行纵向结合。Union操作中各查询结果的列的数量与顺序必须相同,而连接操作无此要求。9.2.2 使用UnionALL合并表Union操作中使用关键字ALL.合并的结果包括所有行,不去除重复行;不使用ALL则将合并结果中的重复行去除。默认情况下Union操作将从结果中去除重复行。

精品课程89.2Union合并多个查询结果9.2.3 Union中的ORDERBY语句

在Union操作中,其结果的列标题为第一个查询的列标题。要对结果进行排序,也必须使用第一个查询中的列标题。对查询结果进行排序,ORDERBY子句只能位于最后一个查询语句后。9.2.4 Union中的自动数据类型转换Union操作中,SELECT查询列的数量与顺序必须相同,列的数据类型不必完全相同,但数据类型间必须可自动转换。自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型;对于长度不同的文本数据类型,系统将在结果集中采用长的文本长度。9.2.5 使用Union合并不同类型的数据若合并表中两个SELECT查询的对应的列数据类型不一致,则需要使用数据类型转化函数完成显式的类型转换。例如,两个SELECT查询相对应的列数据类型,一个为数值型,另一个为字符型,合并前需要将数值型转化为字符型。

精品课程99.2Union合并多个查询结果9.2.6 使用Union合并有不同列数的两个表

使用Union操作将两个SELECT查询结果合并,通常两个SELECT查询的列数量应该相同。若两个查询的列数量不相等,则可以通过向其中一个SELECT查询中添加NULL列,使两个查询中的列相等,完成合并操作。9.2.7 使用Union进行多表合并Union操作的作用是将两个SELECT查询的结果集进行合并。实际上,一个SQL语句中可以包括多个UniOD操作,也就是说可以将多个SELECT查询结果合并。

精品课程109.3子查询与嵌套查询9.3.1 什么是子查询

子查询应遵守的语法规则如下:(1)子查询的SELECT查询使用圆括号。(2)不能使用Compute或ForBrowse语句。(3)ORDERBY语句不能用于查询,但指定了Top时则可以。(4)子查询最多可以嵌套32层。9.3.2 什么是嵌套查询嵌套查询是指一个查询语句可以嵌套在另一个查询块的WHERE语句或HAVING语句中。其中外层查询也称为父查询,内层查询也称子查询。嵌套查询的工作方式是:先处理子查询,父查询利用子查询的结果一层层向上处理,直到最外层的查询。9.3.3 简单嵌套查询嵌套查询中的内层子查询通常作为搜索条件的一部分,如果子查询返回的是单个值,就称为简单嵌套查询。将表达式的值与子查询的返回结果进行比较,如果比较结果为真,显示返回该记录;否则不返回该记录。

精品课程119.3子查询与嵌套查询9.3.4 带IN的嵌套查询

如果子查询的结果不是单个值,而是一个集合,就应使用关键字IN,称为带IN的嵌套查询,其语法格式为:SELECTSELECTLISTFROMtable_sourceWHEREexpressionIN子查询9.3.5 带NotIN的嵌套查询如果父查询表达式的值不在子查询的结果中,就可以使用NotIN,其语法格式为:SELECTSELECTLISTFROMtable_sourceWHEREexpressionMOTIN子查询

精品课程129.3子查询与嵌套查询9.3.6 带Some的嵌套查询

SQLServer2016支持Some、Any和ALL3种比较谓词,其中Some和Any是等效的。ALL要求WHERE的查询表达式与子查询返回的每个值进行比较时都应满足条件,Some和Any则要求WHERE的查询表达式与子查询返回的值进行比较时至少有一个满足条件。9.3.7 带Any的嵌套查询在SQLServer2016中,谓词Any和Some是等效的,使用谓词的地方可以替换为Some。9.3.8 带ALL的嵌套查询比较谓词ALL,要求WHERE的查询表达式与子查询返回的每个值进行比较,且都满足条件,否则不返回记录。

精品课程139.3子查询与嵌套查询9.3.9 带Exists的嵌套查询

Exists的子查询不产生任何数据,只是用来检测子查询中是否有结果返回。如果有,子查询就返回True;否则将返回False。由于仅仅判断是否有返回结果,因此子查询的字段列表通常为“*”。

精品课程149.4连接查询9.4.1 内部连接

内部连接的语法格式如下:SELECTSELECT_LISTFROMtable1lnnerJointable2ONsearch_condition9.4.2 外部连接左外连接:左外连接使用LeftOuterJoin或者LeftJoin进行连接。其语法格式为:SELECTSELECT_listFROMleft_tableLeftJoinright_tableOnsearch_condition

精品课程159.4连接查询9.4.2 外部连接右外连接:右外连接使用RrightOuterJoin或者RightJoin进行连接。其语法格式为:SELECTSELECTlistFROMleft_tableRightJoinright_tableOnsearchcondition完全外连接:完全外连接使用FullOuterJoin或者FullJoin进行连接。其语法格式为:SELECTSELECT_listFROMleft_tableFullJoinright_tableOnsearch_condition

精品课程169.4连接查询9.4.3 交叉连接交叉连接使用CrossJoin进行连接。交叉连接的语法格式为:SELECTselect_listFROMtable1CrossJointable29.4.4 连接多表的方法多表连接的语法如下(以3个表连接为例):SELECTselect_listFROMtable1Jointable2ONsearch_condition1Jointable3ONsearch_condition2或

精品课程179.4连接查询SELECTselect_listFROMtable1

温馨提示

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

评论

0/150

提交评论