数据查询与更新课件.ppt
《数据查询与更新课件.ppt》由会员分享,可在线阅读,更多相关《数据查询与更新课件.ppt(65页珍藏版)》请在三一办公上搜索。
1、1,第七章 数据查询与更新,谢谢观赏,2019-8-28,2,本章内容,7.1 数据查询7.2 数据更新,谢谢观赏,2019-8-28,3,7.1 数据查询,查询是对存储在SQL Server 2005中的数据的一种请求。Transact-SQL命令中的SELECT命令可以实现从SQL Server中检索出数据,然后以一个或多个结果集的形式返回给用户。与数据表相同,结果集由行和列组成。SELECT语句的基本框架是SELECT-FROM-WHERE,它包含输出字段、数据来源和查询条件等基本子句。在这种固定格式中,可以不要WHERE,但是SELECT和FROM是必备的。SELECT语句的子句很多,
2、理解了这条语句各项的含义,就能从数据库中查询出各种数据。,谢谢观赏,2019-8-28,4,7.1 数据查询,Transact-SQL查询语句 语法格式:SELECT select_list INTO new_table_name FROM table_list WHERE search_conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,谢谢观赏,2019-8-28,5,7.1 数据查询,select_list:所要查询的选项的集合,多个选项之间用逗号分开。 IN
3、TO new_table_name:创建一个新表并将结果集写入新表new_table_name中。 table_list:要检索的数据表。 search_conditions:定义检索条件,只有符合条件的行才向结果集提供数据。,谢谢观赏,2019-8-28,6,7.1 数据查询,group_by_list:GROUP BY子句根据group_by_list列中的值将结果集分成组。 search_conditions:HAVING子句通常与GROUP BY子句一起使用,search_conditions是应用于结果集的附加筛选条件。 order_list ASC | DESC :定义了结果集中行
4、的排序顺序 ,关键字ASC和DESC用于指定排序行的排列顺序是升序还是降序,若缺省,则默认为升序。,谢谢观赏,2019-8-28,7,7.1 数据查询,注:在SELECT命令中对数据库对象的每个引用都不得引起歧义。下列情况可能导致多义性。在一个系统中可能有多个对象具有相同的名称。可以使用架构名称来限定表名称,解决多义性问题。例如,Schema1和Schema2都含有一个名为TableX的表,可以使用一下语句区分:SELECT *FROM Schema1.TableX,谢谢观赏,2019-8-28,8,7.1 数据查询,在执行SELECT语句时,对象所驻留的数据库不一定总是当前数据库 ,在不考虑
5、当前数据库设置的情况下要确保使用的对象始终是正确的,则应以数据库和架构来限定对象名称,如:SELECT *FROM AdventureWorks.Purchasing.ShipMethod,谢谢观赏,2019-8-28,9,7.1 数据查询,在FROM子句中所指定的表和视图可能有相同的列名。若要解决重复名称之间的多义性问题,必须使用表或视图名称来限定列名。如: SELECT DISTINCT Sales.Customer.CustomerID, Sales.Store.NameFROM Sales.Customer JOIN Sales.Store ON( Sales.Customer.Cus
6、tomerID = Sales.Store.CustomerID)WHERE Sales.Customer.TerritoryID = 1当表和视图名称都必须完全限定时,语法将变得复杂。可以在FROM子句中使用AS关键字为表指定一个相关名称(也称为作用域变量或别名)来解决此问题。,谢谢观赏,2019-8-28,10,7.1 数据查询,SELECT子句SELECT select_list INTO new_table_name 选择列表用于定义SELECT语句的结果集中的列,结果集中列的排列顺序与选择列表中表达式的排列顺序相同。选择列表中的表达式决定了结果集列的特性。 结果集列与定义该列的表达式
7、的数据类型、大小、精度以及小数位数相同。 结果集列的名称与定义该列的表达式的名称相关联。可选的AS关键字可用于更改名称,或者在表达式没有名称时为其分配名称。,谢谢观赏,2019-8-28,11,7.1 数据查询,结果集列的数据值通过对结果集的每一行相应的表达式求值而得出。 选择列表中的项目可包括:简单表达式:对函数、局部变量、常量或者表或视图中的列的引用。 标量子查询,它是用于对结果集每一行求得单个值的SELECT语句。 通过对一个或多个简单表达式使用运算符创建的复杂表达式。 * 关键字,可指定返回表中的所有列。,谢谢观赏,2019-8-28,12,7.1 数据查询,(1)选择所有列星号“*”
8、用于对FROM子句中指定的所有表或视图中的所有列的引用。此时结果集中的列的顺序与CREATE TABLE、ALTER TABLE或CREATE VIEW语句中所指定的顺序相同。 (2)选择特定列若要选择表中的特定列,应在SELECT子句的选择列表中明确地列出每一列。(3)指定结果集列的名称对列的指定还可以使用别名或其他表达式 ,AS子句可用来为结果集列分配不同的名称或别名。,谢谢观赏,2019-8-28,13,7.1 数据查询,使用AS子句可以提高可读性,其中AS子句的语法:column_name AS column_alias 或result_column_expression AS der
9、ived_column_name例如:指定课程名列显示的别名USE teachingGOSELECT CNAME AS Course nameFROM courseGO执行结果如图7.4所示,谢谢观赏,2019-8-28,14,7.1 数据查询,(4) 使用DISTINCT消除重复项DISTINCT关键字可从SELECT命令的结果中消除重复的行。如果没有指定DISTINCT,将返回包括重复行的所有行。注意:对于DISTINCT关键字来说,空值将被认为是相互重复的内容。 (5)使用TOP和PERCENT限制结果集 使用TOP子句限制结果集中返回的行数,格式如下 :TOP ( expression
10、 ) PERCENT WITH TIES expression:指定返回行数的数值表达式,如果指定了PERCENT,则返回的是结果集行的百分比(由expression指定)。如:TOP(15)PERCENT 表示返回结果集中前15%的结果行,谢谢观赏,2019-8-28,15,7.1 数据查询,例如:从course表中返回2门学分最多的课程。USE teachingGOSELECT TOP 2 CNO, CNAME, CREDITFROM courseORDER BY CREDIT DESCGO执行结果如图7.7所示。如果指定了WITH TIES,将返回包含ORDER BY子句返回的最后一个值
11、的所有行,即便超过expression指定的数量 。,谢谢观赏,2019-8-28,16,7.1 数据查询,(6)选择列表中的计算值 在SELECT子句的选择列表中可包含一个或多个使用运算符生成的表达式。这使结果集中得以包含基表中不存在但可以根据基表中存储的值计算得到的值。这些结果集列被称为派生列。在SELECT子句中可以使用算术运算符或函数进行运算。算术运算符允许对int、smallint、tinyint、decimal、numeric、float、real、money或smallmoney数值列或表达式中使用加(+)、减(-)、乘(*)、除(/)以及int、smallint或tinyint
12、列或表达式中使用模(%)运算。,谢谢观赏,2019-8-28,17,7.1 数据查询,在SELECT子句中还可以使用聚合函数。 聚合函数对一组值执行计算并返回单个值 。注:除了COUNT以外,聚合函数都会忽略空值; 聚合函数只在SELECT子句的选择列表(子查询或外部查询)、COMPUTE或COMPUTE BY子句、HAVING子句 这些位置作为表达式使用。聚合函数包括AVG平均函数、SUM求和函数、COUNT求个数函数、MIN最小函数、MAX最大函数、,谢谢观赏,2019-8-28,18,7.1 数据查询,FROM子句格式:FROM table_list在一个要从表或视图中检索数据的SELC
13、ET语句,都需要使用FROM子句。 使用 FROM子句可以指明如下信息:列出SELECT子句中的选择列表和WHERE子句中所引用的列所在的一个或多个表和视图。可以使用AS子句为表和视图的名称指定别名。两个或多个表或视图之间的联接类型。这些类型由ON子句中指定的联接条件限定。FROM子句使用逗号分隔表名、视图名和JOIN子句的列表。,谢谢观赏,2019-8-28,19,7.1 数据查询,WHERE子句和HAVING子句 格式: WHERE search_conditions HAVING search_conditions WHERE和HAVING是筛选器。这两个子句指定一系列搜索条件,只有那些
14、满足搜索条件的行才用于生成结果集。HAVING子句通常与GROUP BY子句一起使用以筛选聚合值结果 。WHERE搜索条件在进行分组操作之前应用,HAVING搜索条件在进行分组操作之后应用 。HAVING语法与WHERE语法类似,但HAVING可以包含聚合函数,谢谢观赏,2019-8-28,20,7.1 数据查询,WHERE和HAVING子句中的搜索条件或限定条件可包括如下条件 :(1)比较搜索条件Microsoft SQL Server 2005使用表7.1中的=、=、!、!、!=比较运算符 ,用于在两个表达式之间的比较。,谢谢观赏,2019-8-28,21,7.1 数据查询,例如:查询s_
15、c表中成绩在80分以上(含)的学生 。USE teachingGOSELECT SNO, CNO, GRADEFROM s_cWHERE GRADE =80GO执行结果如图7.17所示 。,谢谢观赏,2019-8-28,22,7.1 数据查询,注:表示所有记录可用ALL关键字(=ALL、ALL、 ALL (SELECT s2.GRADE FROM s_c s2 WHERE s2.CNO = C2)GO执行结果如图7.19所示,谢谢观赏,2019-8-28,23,7.1 数据查询,(2)范围搜索条件 BETWEEN关键字指定要检索的包括范围 . NOT BETWEEN查找指定范围之外的所有行 .
16、例如:查询年龄不在2022之间的学生 。USE teachingGOSELECT SNO, SNAMEFROM studentWHERE AGE NOT BETWEEN 20 AND 22ORDER BY SNOGO 执行结果如图7.21所示。,谢谢观赏,2019-8-28,24,7.1 数据查询,(3)列表搜索条件 IN 关键字可以选择与列表中的任意值匹配的行 ,IN关键字之后的各项必须用逗号隔开,并且括在括号中。 例如:检索student表中姓名为WANG或LIU的学生 。USE teachingGOSELECT SNO, SNAMEFROM studentWHERE SNAME IN (
17、WANG, LIU)ORDER BY SNOGO 执行结果如图7.22所示。,谢谢观赏,2019-8-28,25,7.1 数据查询,(4)搜索条件中的模式匹配 LIKE关键字搜索与指定模式匹配的字符串、日期或时间值 ,字符串中可包含如表7.2所示的%、_、 、四种通配符的任意组合。注意:不与LIKE一同使用的通配符将解释为常量而非模式,换言之,这些通配符仅代表其本身的值 。有两种方法可指定平常用作通配符的字符:使用ESCAPE关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。在方括号 ( )中只包含通配符本身。若要搜索破折号(-)而不是用它指定搜索范围,可以将破折
18、号指定为方括号内的第一个字符。,谢谢观赏,2019-8-28,26,7.1 数据查询,(5) NULL比较搜索条件 NULL值表示列的数据值未知或不可用 。当搜索的列中包括定义为允许空值的列时,可以通过以下模式查找数据库中的空值或非空值。WHERE column_name IS NOT NULL注意:NULL值与零(数值或二进制值)、零长度的字符串或空白(字符值)的含义不同;指定= NULL与指定IS NULL是不同的 。,谢谢观赏,2019-8-28,27,7.1 数据查询,(6)逻辑运算符逻辑运算符包括AND、OR和NOT。AND和OR用于连接WHERE子句中的搜索条件。NOT用于反转搜索
19、条件的结果 。 AND连接两个条件,只有当两个条件都符合时才返回TRUE。 OR也用于连接两个条件,但只要有一个条件符合便返回TRUE。 可以通过添加括号强制先计算OR来改变查询的含义 注意:当一个语句中使用了多个逻辑运算符时,计算顺序依次为NOT、AND和OR。算术运算符和位运算符优先于逻辑运算符。,谢谢观赏,2019-8-28,28,7.1 数据查询,GROUP BY子句 格式: GROUP BY group_by_list GROUP BY子句用来为结果集中的每一行产生聚合值 。可以在包含GROUP BY子句的查询中使用WHERE子句。在完成任何分组之前,将消除不符合WHERE子句中的条
20、件的行 。,谢谢观赏,2019-8-28,29,7.1 数据查询,注意:WHERE 子句用来筛选 FROM 子句中指定操作所产生的行。 GROUP BY 子句用来分组WHERE子句的输出。 HAVING 子句用来从分组的结果中筛选行。 ORDER BY子句可用于排序GROUP BY子句的输出 。,谢谢观赏,2019-8-28,30,7.1 数据查询,ORDER BY子句格式: ORDER BY order_by_expression COLLATE collation_name ASC | DESC ,.n 指定在SELECT语句返回的列中所使用的排序顺序。,谢谢观赏,2019-8-28,31
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 查询 更新 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1625416.html