数据查询与更新课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据查询与更新课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 查询 更新 课件
- 资源描述:
-
1、11第七章第七章 数据查询与更新数据查询与更新谢谢观赏2019-8-2822本章内容本章内容n 7.1 数据查询数据查询n 7.2 数据更新数据更新 谢谢观赏2019-8-28337.1 数据查询数据查询查询是对存储在查询是对存储在SQL Server 2005中的数据的一种请求。中的数据的一种请求。Transact-SQL命令中的命令中的SELECT命令可以实现从命令可以实现从SQL Server中检索出数据,然后以一个或多个结果集的形式返回给用户。中检索出数据,然后以一个或多个结果集的形式返回给用户。与数据表相同,结果集由行和列组成。与数据表相同,结果集由行和列组成。SELECT语句的基本
2、框架是语句的基本框架是SELECT-FROM-WHERE,它包含输出字段、数据来源和查询条件等基本子句。在这种它包含输出字段、数据来源和查询条件等基本子句。在这种固定格式中,可以不要固定格式中,可以不要WHERE,但是,但是SELECT和和FROM是是必备的。必备的。SELECT语句的子句很多,理解了这条语句各项的语句的子句很多,理解了这条语句各项的含义,就能从数据库中查询出各种数据。含义,就能从数据库中查询出各种数据。谢谢观赏2019-8-28447.1 数据查询数据查询n Transact-SQL查询语句查询语句 语法格式:语法格式:SELECT select_list INTO new_
3、table_name FROM table_list WHERE search_conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC|DESC 谢谢观赏2019-8-28557.1 数据查询数据查询 select_list:所要查询的选项的集合,多个选项之间用逗:所要查询的选项的集合,多个选项之间用逗号分开。号分开。INTO new_table_name:创建一个新表并将结果集写入:创建一个新表并将结果集写入新表新表new_table_name中。中。table_list:要检索的数
4、据表。:要检索的数据表。search_conditions:定义检索条件:定义检索条件,只有符合条件的行才只有符合条件的行才向结果集提供数据。向结果集提供数据。谢谢观赏2019-8-28667.1 数据查询数据查询 group_by_list:GROUP BY子句根据子句根据group_by_list列中列中的值将结果集分成组。的值将结果集分成组。search_conditions:HAVING子句通常与子句通常与GROUP BY子子句一起使用句一起使用,search_conditions是应用于结果集的附加筛选条是应用于结果集的附加筛选条件。件。order_list ASC|DESC :定义
5、了结果集中行的排序顺:定义了结果集中行的排序顺序序,关键字,关键字ASC和和DESC用于指定排序行的排列顺序是升序用于指定排序行的排列顺序是升序还是降序,若缺省,则默认为升序。还是降序,若缺省,则默认为升序。谢谢观赏2019-8-28777.1 数据查询数据查询注:在注:在SELECT命令中对数据库对象的每个引用都不得命令中对数据库对象的每个引用都不得引起歧义。下列情况可能导致多义性。引起歧义。下列情况可能导致多义性。在一个系统中可能有多个对象具有相同的名称。可以使在一个系统中可能有多个对象具有相同的名称。可以使用架构名称来限定表名称,解决多义性问题。用架构名称来限定表名称,解决多义性问题。例
6、如,例如,Schema1和和Schema2都含有一个名为都含有一个名为TableX的表,的表,可以使用一下语句区分:可以使用一下语句区分:SELECT*FROM Schema1.TableX谢谢观赏2019-8-28887.1 数据查询数据查询 在执行在执行SELECT语句时,对象所驻留的数据库不一定总语句时,对象所驻留的数据库不一定总是当前数据库是当前数据库,在不考虑当前数据库设置的情况下要确保使,在不考虑当前数据库设置的情况下要确保使用的对象始终是正确的,则应以数据库和架构来限定对象名用的对象始终是正确的,则应以数据库和架构来限定对象名称,如:称,如:SELECT*FROM Adventu
7、reWorks.Purchasing.ShipMethod 谢谢观赏2019-8-28997.1 数据查询数据查询 在在FROM子句中所指定的表和视图可能有相同的列名。子句中所指定的表和视图可能有相同的列名。若要解决重复名称之间的多义性问题,必须使用表或视图名若要解决重复名称之间的多义性问题,必须使用表或视图名称来限定列名。如:称来限定列名。如:SELECT DISTINCT Sales.Customer.CustomerID,Sales.Store.NameFROM Sales.Customer JOIN Sales.Store ON(Sales.Customer.CustomerID=Sa
8、les.Store.CustomerID)WHERE Sales.Customer.TerritoryID=1当表和视图名称都必须完全限定时,语法将变得复杂。当表和视图名称都必须完全限定时,语法将变得复杂。可以在可以在FROM子句中使用子句中使用AS关键字为表指定一个相关名称关键字为表指定一个相关名称(也称为作用域变量或别名也称为作用域变量或别名)来解决此问题。来解决此问题。谢谢观赏2019-8-2810107.1 数据查询数据查询n SELECT子句子句SELECT select_list INTO new_table_name 选择列表用于定义选择列表用于定义SELECT语句的结果集中的列
9、,语句的结果集中的列,结果结果集中列的排列顺序与选择列表中表达式的排列顺序相同集中列的排列顺序与选择列表中表达式的排列顺序相同。选择列表中的表达式决定了结果集列的特性。选择列表中的表达式决定了结果集列的特性。结果集列与定义该列的表达式的数据类型、大小、精度结果集列与定义该列的表达式的数据类型、大小、精度以及小数位数相同。以及小数位数相同。结果集列的名称与定义该列的表达式的名称相关联。可结果集列的名称与定义该列的表达式的名称相关联。可选的选的AS关键字可用于更改名称,或者在表达式没有名称时为关键字可用于更改名称,或者在表达式没有名称时为其分配名称。其分配名称。谢谢观赏2019-8-2811117
10、.1 数据查询数据查询 结果集列的数据值通过对结果集的每一行相应的表达式结果集列的数据值通过对结果集的每一行相应的表达式求值而得出。求值而得出。选择列表中的项目可包括:选择列表中的项目可包括:简单表达式:对函数、局部变量、常量或者表或视图中简单表达式:对函数、局部变量、常量或者表或视图中的列的引用。的列的引用。标量子查询,它是用于对结果集每一行求得单个值的标量子查询,它是用于对结果集每一行求得单个值的SELECT语句。语句。通过对一个或多个简单表达式使用运算符创建的复杂表通过对一个或多个简单表达式使用运算符创建的复杂表达式。达式。*关键字,可指定返回表中的所有列。关键字,可指定返回表中的所有列
11、。谢谢观赏2019-8-2812127.1 数据查询数据查询(1)选择所有列选择所有列星号星号“*”用于对用于对FROM子句中指定的所有表或视图中的子句中指定的所有表或视图中的所有列的引用。所有列的引用。此时结果集中的列的顺序与此时结果集中的列的顺序与CREATE TABLE、ALTER TABLE或或CREATE VIEW语句中所指定的顺序相同。语句中所指定的顺序相同。(2)选择特定列选择特定列若要选择表中的特定列,应在若要选择表中的特定列,应在SELECT子句的选择列表子句的选择列表中明确地列出每一列。中明确地列出每一列。(3)指定结果集列的名称指定结果集列的名称对列的指定还可以使用别名或
12、其他表达式对列的指定还可以使用别名或其他表达式,AS子句可用子句可用来为结果集列分配不同的名称或别名。来为结果集列分配不同的名称或别名。谢谢观赏2019-8-2813137.1 数据查询数据查询使用使用AS子句可以提高可读性,其中子句可以提高可读性,其中AS子句的语法:子句的语法:column_name AS column_alias 或或result_column_expression AS derived_column_name例如:指定课程名列显示的别名例如:指定课程名列显示的别名USE teachingGOSELECT CNAME AS Course nameFROM courseGO
13、执行结果如图执行结果如图7.4所示所示谢谢观赏2019-8-2814147.1 数据查询数据查询(4)使用使用DISTINCT消除重复项消除重复项DISTINCT关键字可从关键字可从SELECT命令的结果中消除重复的命令的结果中消除重复的行。如果没有指定行。如果没有指定DISTINCT,将返回包括重复行的所有行。,将返回包括重复行的所有行。注意:对于注意:对于DISTINCT关键字来说,空值将被认为是相互重关键字来说,空值将被认为是相互重复的内容。复的内容。(5)使用使用TOP和和PERCENT限制结果集限制结果集 使用使用TOP子句限制结果集中返回的行数,格式如下子句限制结果集中返回的行数,
14、格式如下:TOP(expression)PERCENT WITH TIES expression:指定返回行数的数值表达式,如果指定了:指定返回行数的数值表达式,如果指定了PERCENT,则返回的是结果集行的百分比,则返回的是结果集行的百分比(由由expression指指定定)。如:。如:TOP(15)PERCENT 表示返回结果集中前表示返回结果集中前15%的结果行的结果行谢谢观赏2019-8-2815157.1 数据查询数据查询例如:从例如:从course表中返回表中返回2门学分最多的课程。门学分最多的课程。USE teachingGOSELECT TOP 2 CNO,CNAME,CRED
15、ITFROM courseORDER BY CREDIT DESCGO执行结果如图执行结果如图7.7所示。所示。如果指定了如果指定了WITH TIES,将返回包含,将返回包含ORDER BY子句返子句返回的最后一个值的所有行,即便超过回的最后一个值的所有行,即便超过expression指定的数量指定的数量。谢谢观赏2019-8-2816167.1 数据查询数据查询(6)选择列表中的计算值选择列表中的计算值 在在SELECT子句的选择列表中可包含一个或多个使用运子句的选择列表中可包含一个或多个使用运算符生成的表达式。这使结果集中得以包含基表中不存在但算符生成的表达式。这使结果集中得以包含基表中不
16、存在但可以根据基表中存储的值计算得到的值。这些结果集列被称可以根据基表中存储的值计算得到的值。这些结果集列被称为派生列。为派生列。在在SELECT子句中可以使用算术运算符或函数进行运子句中可以使用算术运算符或函数进行运算。算。算术运算符允许对算术运算符允许对int、smallint、tinyint、decimal、numeric、float、real、money或或smallmoney数值列或表达式数值列或表达式中使用加中使用加(+)、减、减(-)、乘、乘(*)、除、除(/)以及以及int、smallint或或tinyint列或表达式中使用模列或表达式中使用模(%)运算。运算。谢谢观赏2019
17、-8-2817177.1 数据查询数据查询在在SELECT子句中还可以使用聚合函数。子句中还可以使用聚合函数。聚合函数对一组值执行计算并返回单个值聚合函数对一组值执行计算并返回单个值。注:除了注:除了COUNT以外,聚合函数都会忽略空值;以外,聚合函数都会忽略空值;聚合函数只在聚合函数只在SELECT子句的选择列表子句的选择列表(子查询或外子查询或外部查询部查询)、COMPUTE或或COMPUTE BY子句、子句、HAVING子句子句 这些位置作为表达式使用。这些位置作为表达式使用。聚合函数包括聚合函数包括AVG平均函数、平均函数、SUM求和函数、求和函数、COUNT求个数函数、求个数函数、M
18、IN最小函数、最小函数、MAX最大函数、最大函数、谢谢观赏2019-8-2818187.1 数据查询数据查询n FROM子句子句格式:格式:FROM table_list在一个要从表或视图中检索数据的在一个要从表或视图中检索数据的SELCET语句,都需语句,都需要使用要使用FROM子句。子句。使用使用 FROM子句可以指明如下信息:子句可以指明如下信息:列出列出SELECT子句中的选择列表和子句中的选择列表和WHERE子句中所引子句中所引用的列所在的一个或多个表和视图。可以使用用的列所在的一个或多个表和视图。可以使用AS子句为表和子句为表和视图的名称指定别名。视图的名称指定别名。两个或多个表或
19、视图之间的联接类型。这些类型由两个或多个表或视图之间的联接类型。这些类型由ON子句中指定的联接条件限定。子句中指定的联接条件限定。FROM子句使用逗号分隔表名、子句使用逗号分隔表名、视图名和视图名和JOIN子句的列表。子句的列表。谢谢观赏2019-8-2819197.1 数据查询数据查询n WHERE子句和子句和HAVING子句子句 格式:格式:WHERE search_conditions HAVING search_conditions WHERE和和HAVING是筛选器。这两个子句指定一系列搜是筛选器。这两个子句指定一系列搜索条件,只有那些满足搜索条件的行才用于生成结果集。索条件,只有那
20、些满足搜索条件的行才用于生成结果集。HAVING子句通常与子句通常与GROUP BY子句一起使用以筛选聚子句一起使用以筛选聚合值结果合值结果。WHERE搜索条件在进行分组操作之前应用,搜索条件在进行分组操作之前应用,HAVING搜搜索条件在进行分组操作之后应用索条件在进行分组操作之后应用。HAVING语法与语法与WHERE语法类似,但语法类似,但HAVING可以包含可以包含聚合函数聚合函数 谢谢观赏2019-8-2820207.1 数据查询数据查询WHERE和和HAVING子句中的搜索条件或限定条件可包括子句中的搜索条件或限定条件可包括如下条件如下条件:(1)比较搜索条件比较搜索条件Micro
21、soft SQL Server 2005使用表使用表7.1中的中的=、=、=、!、!=80GO执行结果如图执行结果如图7.17所示所示。谢谢观赏2019-8-2822227.1 数据查询数据查询注:表示所有记录可用注:表示所有记录可用ALL关键字关键字(=ALL、ALL、ALL (SELECT s2.GRADE FROM s_c s2 WHERE s2.CNO=C2)GO执行结果如图执行结果如图7.19所示所示 谢谢观赏2019-8-2823237.1 数据查询数据查询(2)范围搜索条件范围搜索条件 BETWEEN关键字指定要检索的包括范围关键字指定要检索的包括范围.NOT BETWEEN查找
22、指定范围之外的所有行查找指定范围之外的所有行.例如:查询年龄不在例如:查询年龄不在2022之间的学生之间的学生。USE teachingGOSELECT SNO,SNAMEFROM studentWHERE AGE NOT BETWEEN 20 AND 22ORDER BY SNOGO 执行结果如图执行结果如图7.21所示。所示。谢谢观赏2019-8-2824247.1 数据查询数据查询(3)列表搜索条件列表搜索条件 IN 关键字可以选择与列表中的任意值匹配的行关键字可以选择与列表中的任意值匹配的行,IN关键关键字之后的各项必须用逗号隔开,并且括在括号中。字之后的各项必须用逗号隔开,并且括在括
23、号中。例如:检索例如:检索student表中姓名为表中姓名为WANG或或LIU的学生的学生。USE teachingGOSELECT SNO,SNAMEFROM studentWHERE SNAME IN(WANG,LIU)ORDER BY SNOGO 执行结果如图执行结果如图7.22所示。所示。谢谢观赏2019-8-2825257.1 数据查询数据查询(4)搜索条件中的模式匹配搜索条件中的模式匹配 LIKE关键字搜索与指定模式匹配的字符串、日期或时间关键字搜索与指定模式匹配的字符串、日期或时间值值,字符串中可包含如表字符串中可包含如表7.2所示的所示的%、_、四种通配四种通配符的任意组合。符
24、的任意组合。注意:不与注意:不与LIKE一同使用的通配符将解释为常量而非模一同使用的通配符将解释为常量而非模式,换言之,这些通配符仅代表其本身的值式,换言之,这些通配符仅代表其本身的值。有两种方法可指定平常用作通配符的字符:有两种方法可指定平常用作通配符的字符:使用使用ESCAPE关键字定义转义符。在模式中,当转义符关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。置于通配符之前时,该通配符就解释为普通字符。在方括号在方括号()中只包含通配符本身。若要搜索破折号中只包含通配符本身。若要搜索破折号(-)而不是用它指定搜索范围,可以将破折号指定为方括号内的而不是用它指
25、定搜索范围,可以将破折号指定为方括号内的第一个字符。第一个字符。谢谢观赏2019-8-2826267.1 数据查询数据查询(5)NULL比较搜索条件比较搜索条件 NULL值表示列的数据值未知或不可用值表示列的数据值未知或不可用。当搜索的列中包括定义为允许空值的列时,可以通过以当搜索的列中包括定义为允许空值的列时,可以通过以下模式查找数据库中的空值或非空值。下模式查找数据库中的空值或非空值。WHERE column_name IS NOT NULL注意:注意:NULL值与零值与零(数值或二进制值数值或二进制值)、零长度的字符串、零长度的字符串或空白或空白(字符值字符值)的含义不同;指定的含义不同
展开阅读全文