SQL_Server_2005数据库原理与应用简明教程6~8章_第1页
SQL_Server_2005数据库原理与应用简明教程6~8章_第2页
SQL_Server_2005数据库原理与应用简明教程6~8章_第3页
SQL_Server_2005数据库原理与应用简明教程6~8章_第4页
SQL_Server_2005数据库原理与应用简明教程6~8章_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、学习目标:学习目标: 了解了解SQL Server 2005中中数据对象的命名方法数据对象的命名方法 掌握最基本的掌握最基本的选择查询技术选择查询技术 掌握掌握条件查询技术条件查询技术 掌握掌握多重条件查询技术多重条件查询技术 掌握掌握连接查询技术连接查询技术 了解了解嵌套查询和集合查询技术嵌套查询和集合查询技术 掌握掌握查询编辑器的使用方法查询编辑器的使用方法数据查询数据查询选择查询选择查询数据库存储了大量的数据,如何从中取出自己所需的数据,数据库存储了大量的数据,如何从中取出自己所需的数据,转变为有价值的信息,并以一种合理和易于理解的方式显示转变为有价值的信息,并以一种合理和易于理解的方式

2、显示出来,这便用到了数据库的查询技术。选择查询是最基本的出来,这便用到了数据库的查询技术。选择查询是最基本的查询技术,通过查询技术,通过Select语句来完成。语句来完成。查询结果有查询结果有3种显示方法:文本形式、网格形式、报表形式种显示方法:文本形式、网格形式、报表形式注:掌握各种查询工具、按钮的意义和用法,是设计查询的注:掌握各种查询工具、按钮的意义和用法,是设计查询的基础。基础。 wjltupwk_ductinf 服务器名称服务器名称数据库名称数据库名称所属架构所属架构数据表或视图数据表或视图数据查询数据查询条件查询条件查询在在Selec

3、t语句后添加语句后添加Where语句,使得能够根据自己需求从语句,使得能够根据自己需求从数据库中查询到指定的数据,便构成了条件查询。数据库中查询到指定的数据,便构成了条件查询。 带带not的条件查询的条件查询 带搜索范围的条件查询带搜索范围的条件查询 带搜索列表的条件查询带搜索列表的条件查询 带模糊匹配的条件查询带模糊匹配的条件查询 多重条件查询多重条件查询数据查询数据查询连接查询连接查询若一个查询同时涉及两个或两个以上的表,便构成了连接查询。若一个查询同时涉及两个或两个以上的表,便构成了连接查询。 等值与非等值连接查询等值与非等值连接查询 自然连接查询自然连接查询 自连接查询自连接查询 外连

4、接查询外连接查询 复合条件连接查询复合条件连接查询数据查询数据查询嵌套查询嵌套查询将一个查询块嵌套在另一个查询块的将一个查询块嵌套在另一个查询块的Where子句或其他子句中的子句或其他子句中的查询中,便构成了嵌套查询。查询中,便构成了嵌套查询。 带有带有in的嵌套查询的嵌套查询 带有比较运算符的嵌套查询带有比较运算符的嵌套查询 带有带有any或或all的嵌套查询的嵌套查询 带有带有exists的嵌套查询的嵌套查询Select /外层查询或父查询外层查询或父查询 From Where I (Select /内层查询或子查询内层查询或子查询 From Where );数据查询数据查询集合查询集合查

5、询通过通过Select语句得到的查询结果往往是记录的集合,因而通过多语句得到的查询结果往往是记录的集合,因而通过多个个Select语句可进行集合查询。语句可进行集合查询。 union(并并)操作操作 intersect(交交)操作操作 except(差差)操作操作数据的排序数据的排序由于数据库在不断地进行插入、删除和修改等操作,关系中数据由于数据库在不断地进行插入、删除和修改等操作,关系中数据的存储经常发生变动,因此检索出来的数据往往非常糟糕。可以的存储经常发生变动,因此检索出来的数据往往非常糟糕。可以使用使用Order By子句对查询结果进行排序,即把数据按照指定的顺子句对查询结果进行排序,

6、即把数据按照指定的顺序显示出来。序显示出来。数据查询数据查询排序有降序和升序两种方式。排序有降序和升序两种方式。 最简单的数据排序最简单的数据排序 带查询的数据排序带查询的数据排序 带多个指定属性的数据排序带多个指定属性的数据排序数据的成组数据的成组Group By和和Having子句子句利用可视化编辑器设计查询利用可视化编辑器设计查询Management Studio专门提供了可视化查询工具,用户只需指专门提供了可视化查询工具,用户只需指出查询的条件和排序、分组依据,系统会自动完成相关代码的生出查询的条件和排序、分组依据,系统会自动完成相关代码的生成。成。数据查询数据查询嵌入式嵌入式Tran

7、sact-SQL与动态查询技术与动态查询技术Transact-SQL通常嵌套在通常嵌套在C、VB等语言中使用,以弥补其本身等语言中使用,以弥补其本身在应用上的不足,这称为嵌入式在应用上的不足,这称为嵌入式Transact-SQL语言。语言。嵌入式嵌入式Transact-SQL的一般形式的一般形式 数据查询数据查询动态查询技术动态查询技术嵌入式嵌入式Transact-SQL语句为编程提供了一定的灵活性,使得用语句为编程提供了一定的灵活性,使得用户可以根据实际需要设置户可以根据实际需要设置Where条件或条件或Having子句中某些变量。子句中某些变量。这些这些Transact-SQL语句的共同点

8、是语句中主变量的个数和数据语句的共同点是语句中主变量的个数和数据类型都是在预处理时就已经确定了,只有主变量的值是在程序运类型都是在预处理时就已经确定了,只有主变量的值是在程序运行过程中动态输入的,这类嵌入式行过程中动态输入的,这类嵌入式Transact-SQL语句被称为静语句被称为静态态Transact-SQL语句。语句。静态静态Transact-SQL语句的编程灵活性显然不足,如果需要处理语句的编程灵活性显然不足,如果需要处理的语句发生变化,那么就必须重新编写整个宿主语句和的语句发生变化,那么就必须重新编写整个宿主语句和Transact-SQL语句。这时就必须采用动态语句。这时就必须采用动态

9、Transact-SQL语句,语句,动态动态Transact-SQL查询技术允许在程序执行过程中临时组装查询技术允许在程序执行过程中临时组装Transact-SQL语句。语句。学习目标:学习目标: 掌握索引的掌握索引的基本概念及类型基本概念及类型 掌握索引的掌握索引的创建和修改方法创建和修改方法 学会学会查看索引信息查看索引信息 掌握视图的掌握视图的基本概念及类型基本概念及类型 掌握视图的掌握视图的创建和修改方法创建和修改方法 学会学会查看视图信息查看视图信息查询的优化查询的优化索引和视图索引和视图索引索引(Index)索引可提高数据查询的效率,同时确保数据的完整性。索引可提高数据查询的效率,

10、同时确保数据的完整性。索引的结构和基本类型索引的结构和基本类型聚集索引、非聚集索引、包含性索引等聚集索引、非聚集索引、包含性索引等查询的优化查询的优化索引和视图索引和视图创建索引时的考虑因素创建索引时的考虑因素针对要创建索引的数据库和数据鼻癌哦,要充分考虑数据库、数针对要创建索引的数据库和数据鼻癌哦,要充分考虑数据库、数据表以及查询的特点,确定创建索引时的一些重要设置等。对于据表以及查询的特点,确定创建索引时的一些重要设置等。对于初学人员,可从以下几个方面进行考虑:初学人员,可从以下几个方面进行考虑: 数据表方面数据表方面 Transact-SQL程序方面程序方面 索引列方面索引列方面在在Ma

11、nagement Studio中创建索引中创建索引可以使用可以使用Create Index语句来创建索引,也可以在语句来创建索引,也可以在Management Studio中利用可视化工具进行创建,注意一些关键选项的设置。中利用可视化工具进行创建,注意一些关键选项的设置。查询的优化查询的优化索引和视图索引和视图检测与处理索引碎片检测与处理索引碎片当用户对数据库进行更新时,数据库引擎会自动维护索引,这有当用户对数据库进行更新时,数据库引擎会自动维护索引,这有可能导致同一索引信息分散存储在不同的页上,这种情况称为索可能导致同一索引信息分散存储在不同的页上,这种情况称为索引中有碎片。索引碎片会降低系

12、统的查询性能,导致应用程序响引中有碎片。索引碎片会降低系统的查询性能,导致应用程序响应缓慢。应缓慢。 查看索引碎片信息:在索引查看索引碎片信息:在索引“属性属性”窗口的窗口的“索引索引”选项页选项页进行。进行。 检测索引碎片:使用检测索引碎片:使用sys.dm_db_index_physical_stats系系统函数。统函数。 索引重组和索引重建:进行碎片整理和删除碎片的有效方法。索引重组和索引重建:进行碎片整理和删除碎片的有效方法。查询的优化查询的优化索引和视图索引和视图查看与维护索引统计信息查看与维护索引统计信息在在SQL Server 2005中可以创建有关索引列值分布状况的统计信中可以

13、创建有关索引列值分布状况的统计信息,这些信息是查询优化器分析、查询和确定最优查询计划的基息,这些信息是查询优化器分析、查询和确定最优查询计划的基础。可以使用两种方法来访问索引的统计信息:一种是使用础。可以使用两种方法来访问索引的统计信息:一种是使用DBCC SHOW_STATISTICS命令,另一种是使用命令,另一种是使用Management的图形化工具。的图形化工具。重命名和删除索引重命名和删除索引 右击索引,从弹出菜单中选择相应命令即可。需要注意的是:在右击索引,从弹出菜单中选择相应命令即可。需要注意的是:在删除索引视图时,将自动删除同一视图的所有非聚集索引和自动删除索引视图时,将自动删除

14、同一视图的所有非聚集索引和自动创建的统计信息,用户手动创建的统计信息将保留。此外,如果创建的统计信息,用户手动创建的统计信息将保留。此外,如果是在线删除聚集索引,或者在删除语句中包含是在线删除聚集索引,或者在删除语句中包含MOVE TO子句,子句,则删除需要的临时磁盘空间。则删除需要的临时磁盘空间。查询的优化查询的优化索引和视图索引和视图视图视图(View) 视图是由视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式,视图中的数据并不真实存在于数据库中,一种非常有效的方式,视图中的数据并不真实存在于数据库中,其数据来自定义视图

15、的基表,并且在引用的过程中动态生成。其数据来自定义视图的基表,并且在引用的过程中动态生成。视图的作用和基本类型视图的作用和基本类型视图的作用主要体现在以下几个方面:视图的作用主要体现在以下几个方面: 查询简单化查询简单化 数据安全性数据安全性 视图掩码视图掩码 数据即时更新数据即时更新 数据的输入和输出数据的输入和输出查询的优化查询的优化索引和视图索引和视图视图主要分为标准视图、索引视图、分区视图这视图主要分为标准视图、索引视图、分区视图这3大类。大类。在在Management Studio中创建视图中创建视图可以使用可以使用CREATE VIEW语句来创建视图,也可以使用语句来创建视图,也可

16、以使用Management Studio的可视化工具来创建。的可视化工具来创建。通过视图修改数据通过视图修改数据通过视图,可以修改视图所基于数据表中的数据,但前提是该数通过视图,可以修改视图所基于数据表中的数据,但前提是该数据表不包含合计函数,且创建视图的据表不包含合计函数,且创建视图的SELECT语句中不包括语句中不包括GROUP BY子句。此外,还有以下情况需要注意:子句。此外,还有以下情况需要注意: 可以修改基于两个或两个以上基表的视图,但每次修改数据可以修改基于两个或两个以上基表的视图,但每次修改数据只能影响其中的一个基表,也就是说,不能同时修改视图所只能影响其中的一个基表,也就是说,

17、不能同时修改视图所基于的两个或两个以上的数据表。基于的两个或两个以上的数据表。 不能修改通过计算得到值的列、有内置函数的列以及有合计不能修改通过计算得到值的列、有内置函数的列以及有合计函数的列。函数的列。查询的优化查询的优化索引和视图索引和视图 如果要修改视图中没有定义的基表中的列,则会引发错误,如果要修改视图中没有定义的基表中的列,则会引发错误,后面的例子会说明这一点。后面的例子会说明这一点。 如果在视图定义中使用了如果在视图定义中使用了WITH CHECK OPTION,系统会,系统会自动验证所修改的数据。自动验证所修改的数据。WITH CHECK OPTION强制要求强制要求视图的所有修

18、改语句必须满足定义视图时的视图的所有修改语句必须满足定义视图时的SELECT语句的语句的标准。如果修改超出了视图定义的范围,则系统将拒绝这种标准。如果修改超出了视图定义的范围,则系统将拒绝这种修改。修改。修改和删除视图修改和删除视图右击视图,从弹出菜单中选择相应命令,打开对应的对话框进行右击视图,从弹出菜单中选择相应命令,打开对应的对话框进行设置即可。设置即可。学习目标:学习目标: 掌握数据的掌握数据的添加、更新和删除添加、更新和删除方法方法 理解并掌握理解并掌握自动提交事务模式自动提交事务模式 理解并掌握理解并掌握显式事务模式显式事务模式 理解并掌握理解并掌握隐式事务模式隐式事务模式 掌握掌

19、握处理死锁问题处理死锁问题的方法和技巧的方法和技巧 掌握常用的掌握常用的数据处理函数数据处理函数数据的修改与计算数据的修改与计算事务和函数事务和函数数据修改数据修改数据的修改包括添加、更新和删除等操作,通过数据的修改包括添加、更新和删除等操作,通过Transact-SQL的的Insert into、Update和和Delete语句来完成。语句来完成。数据修改与事务数据修改与事务SQL Server 2005采用了事务的工作机制,来保证数据的完整性采用了事务的工作机制,来保证数据的完整性和一致性。和一致性。 事务的原子性保证了在事务的原子性保证了在SQL Server 2005中,该事务内用户或

20、应用程序中,该事务内用户或应用程序对数据的某次操作要么全部完成,要么都没有完成。对数据的某次操作要么全部完成,要么都没有完成。 事务的一致性保证了用户或应用程序提交或回滚事务时,事物内的任何事务的一致性保证了用户或应用程序提交或回滚事务时,事物内的任何操作都不能违反定义的约束规则。操作都不能违反定义的约束规则。 事物的隔离性则保证了不同事物之间相互不受影响,这也正是事物的隔离性则保证了不同事物之间相互不受影响,这也正是SQL Server 2005能通过事务日志对数据库加以恢复的关键所在。能通过事务日志对数据库加以恢复的关键所在。 事务的一致性则确保事务完整后,即使计算机或数据库系统瘫痪,用户

21、事务的一致性则确保事务完整后,即使计算机或数据库系统瘫痪,用户所在的修改在所在的修改在SQL Server 2005中永久得到保存。中永久得到保存。数据的修改与计算数据的修改与计算事务和函数事务和函数自动提交事务自动提交事务SQL Server 2005将一切都作为事务来处理,如果用户没有定义将一切都作为事务来处理,如果用户没有定义事务,它会自动定义用户或应用程序各种数据库操作的事务,这事务,它会自动定义用户或应用程序各种数据库操作的事务,这称为自动提交事务,也是称为自动提交事务,也是SQL Server 2005默认的事务处理模默认的事务处理模式。式。显式事务显式事务在显式事务工作模式下,用

22、户需要指定事务的起始位置以及何时在显式事务工作模式下,用户需要指定事务的起始位置以及何时提交和回滚。在提交和回滚。在SQL Server 2005中,使用以下中,使用以下4条条Transact-SQL语句来实现:语句来实现: BEGIN TRANSACTION定义事务开始定义事务开始 COMMIT TRANSACTION提交事务提交事务 ROLLBACK TRANSACTION回滚事务回滚事务 SAVE TRANSACTION保存事务保存事务数据的修改与计算数据的修改与计算事务和函数事务和函数隐式事务隐式事务在隐式事务工作模式下,在隐式事务工作模式下,SQL Server 2005会在没有事务

23、存在的会在没有事务存在的情况下开始一个事务,但必须使用情况下开始一个事务,但必须使用COMMIT语句或语句或ROLLBACK语句对该事物显式结束,否则该事务将长期运行,导致与其他连语句对该事物显式结束,否则该事务将长期运行,导致与其他连接之间的阻塞问题,影响数据库的性能发挥。接之间的阻塞问题,影响数据库的性能发挥。使用使用“SET IMPLICIT_TRANSACTIONS ON”开始隐式事务工作开始隐式事务工作模式,使用模式,使用“SET IMPLICIT_TRANSACTIONS OFF”结束隐式结束隐式事事务工作模式。务工作模式。注:在隐式事务工作模式下,任何情况下都只能有一个事务在运注

24、:在隐式事务工作模式下,任何情况下都只能有一个事务在运行,也就是说只有结束了一个隐式事务,才能开始一个新的隐式行,也就是说只有结束了一个隐式事务,才能开始一个新的隐式事务。事务。数据的修改与计算数据的修改与计算事务和函数事务和函数如何避免阻塞和死锁如何避免阻塞和死锁在数据库应用系统中,阻塞是一个重大问题,它会严重影响数据库的在数据库应用系统中,阻塞是一个重大问题,它会严重影响数据库的性能,如果阻塞不能及时得到解决,它将有可能导致永久阻塞,从而性能,如果阻塞不能及时得到解决,它将有可能导致永久阻塞,从而引发死锁。为了尽量减少阻塞和死锁的发生,用户在设计事务时,应引发死锁。为了尽量减少阻塞和死锁的发生,用户在设计事务时,应遵守以下原则:遵守以下原则: 事务要尽量短,且不要在事务中请求用户输入;事务要尽量短,且不要在事务中请求用户输入; 在读数据的时候尽量考虑使用行版本管理;在读数据的时候尽量考虑使用行版本管理; 在事务中尽量访问最少量的数据;在事务中尽量访问最少量的数据; 尽可能使用低的事务隔离级别;尽可能使用低的事务隔离级别; 遵循最少化阻塞的原则,阻塞越少,引发死锁的几率越小;遵循最少化阻塞的原则,阻塞越少,引发死锁的几率越小; 在事务中按照一定的顺序访问对象;在事务中按照一定的顺序访问对象; 在错误处理程序中检查错误在错误处理程序

温馨提示

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

评论

0/150

提交评论