您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > SQLServer2005_教程第三章_T-SQL语言
第3章TRANSACT-SQL语言2020年1月29日第1页学习目标本章重点本章内容学习目标Transact-SQL语言是微软公司在关系型数据库管理系统MicrosoftSQLServer中的ISOSQL的实现。SQL(structurequerylanguage,结构化查询语言)语言是国际标准化组织(internationalstandardizeorganization,ISO)采纳的标准数据库语言。通过使用Transact-SQL语言,用户几乎可以完成MicrosoftSQLServer数据库中的所有操作。本章将全面来研究Transact-SQL语言的特点和使用方式。2020年1月29日第2页本章重点特点和类型执行方式数据定义语言数据操纵语言数据控制语言事务管理语言附加语言元素2020年1月29日第3页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题2020年1月29日第4页2020年1月29日第5页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题3.1TRANSACT-SQL语言的特点1970年6月,埃德加•考特(EdgarFrankCodd)在CommunicationsofACM上发表了《大型共享数据库数据的关系模型》一文。首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。1970年以后,考特继续致力于完善与发展关系理论。1972年,他提出了关系代数和关系演算的概念,定义了关系的并、交、投影、选择、连接等各种基本运算,为SQL语言的形成和发展奠定了理论基础。1979年,SQL在商业数据库中成功得到了应用。2020年1月29日第6页SQL标准1986年,美国国家标准化组织正式发表了编号为X3.135-1986的SQL标准,并且在1987年获得了ISO组织的认可,被命名为ISO9075-1987。后来这个标准在1992、1999、2001、2003年等不断地得到了扩充和完善。从SQL语言的历史来看,Transact-SQL语言与SQL语言并不完全等同。不同的数据库供应商一方面采纳了SQL语言作为自己数据库的操作语言,另一方面又对SQL语言进行了不同程度的扩展。这种扩展的主要原因是不同的数据库供应商为了达到特殊目的和实现新的功能,不得不对标准的SQL语言进行扩展,而这些扩展往往又是SQL标准的下一个版本的主要实践来源。2020年1月29日第7页特点Transact-SQL语言有4个特点:一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加语言元素为一体。二是有两种使用方式,即交互使用方式和嵌入到高级语言中的使用方式。三是非过程化语言,只需要提出“干什么”,不需要指出“如何干”,语句的操作过程由系统自动完成。四是,类似于人的思维习惯,容易理解和掌握。2020年1月29日第8页类型在MicrosoftSQLServer2005系统中,根据Transact-SQL语言的功能特点,可以把Transact-SQL语言分为5种类型,即数据定义语言数据操纵语言数据控制语言事务管理语言附加的语言元素2020年1月29日第9页2020年1月29日第10页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题3.2TRANSACT-SQL语言的执行方式在MicrosoftSQLServer2005系统中,主要使用SQLServerManagementStudio工具来执行Transact-SQL语言编写的查询语句。除此之外,还可以使用sqlcmd实用工具来执行Transact-SQL语句。因为前面已经讲过如何使用sqlcmd工具执行Transact-SQL语句了,下面主要介绍SQLServerManagementStudio工具的特点。2020年1月29日第11页执行TRANSACT-SQL语句示例2020年1月29日第12页【SQL编辑器】的工具栏2020年1月29日第13页连接(连接服务器)增加缩进断开连接(断开与服务器的连接)更改连接(重新指定连接的服务器)可用数据库(用户可以从数据库列表中指定当前数据库)执行(执行当前选定的Transact-SQL语句)分析(对当前选定的Transact-SQL语句进行分析)取消执行查询(中止正在执行的Transact-SQL语句)显示估计的执行计划(以图形方式显示)在数据库引擎优化顾问中分析查询在编辑器中设计查询(调用编辑器图形化设计查询语句)指定模板中的参数值(指定当前选定模板中的参数值)包括实际的执行计划(在查询结果中同时显示执行计划)包括客户端统计信息(在查询结果中同时显示客户端统计数据)SQLCMD模式(启用SQLCMD脚本撰写模式)以文本格式显示结果以网格显示结果将结果保存到文件中注释选中行取消对选中行的注释减少缩进2020年1月29日第14页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题3.3数据定义语言数据定义语言用于创建数据库和数据库对象,为数据库操作提供对象。例如,数据库以及表、触发器、存储过程、视图、索引、函数、类型、用户等都是数据库中的对象,都需要通过定义才能使用。在DDL中,主要的Transact-SQL语句包括CREATE语句、ALTER语句、DROP语句。2020年1月29日第15页CREATE语句CREATE语句用于创建数据库以及数据库中的对象,是一个从无到有的过程。也就是说,CREATE语句用于创建将要在今后使用数据库或数据库对象。【例3-1】使用CREATE语句创建一个ContactDetail表。2020年1月29日第16页ALTER语句ALTER语句用于更改数据库以及数据库对象的结构。也就是说,ALTER语句的对象必须已经存在。ALTER语句仅仅是更改其对象的结构,其对象中已有的数据不受任何影响。对于表对象来说,使用ALTER语句在表中增加一个新列、删除一个列等操作都属于对表结构的更改。【例3-2】使用ALTER语句在ContactDetail表中增加一个productName列。2020年1月29日第17页DROP语句删除数据库或数据库对象的结构可以通过使用DROP语句来完成。需要注意的是,删除对象结构包括删除该对象中的所有内容和对象本身。例如,如果删除ContactDetail表,那么不仅仅ContactDetail表结构不再存在了,该表中的所有数据也都自然不存在了。【例3-3】使用DROP语句删除ContactDetail表。2020年1月29日第18页2020年1月29日第19页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题3.4数据操纵语言数据操纵语言主要是用于操纵表、视图中数据的语句。当我们创建表对象之后,初始状态时该表是空的,没有任何数据。如何向表中添加数据呢?这时需要使用INSERT语句。如何检索表中数据呢?可以使用SELECT语句。如果表中数据不正确的,那么可以使用UPDATE语句进行更新。当然,也可以使用DELETE语句删除表中的数据。实际上,DML语言正是包括了INSERT、SELECT、UPDATE及DELETE等语句。2020年1月29日第20页INSERT语句INSERT语句用于向已经存在的表中插入新的数据,一次插入一行数据。当需要向表中插入多行数据时,需要多次使用INSERT语句。【例3-4】使用INSERT语句向ContactDetail表中插入数据。2020年1月29日第21页UPDATE语句如果表中的数据不正确或不合适或者已经变化,那么可以使用UPDATE语句更新这些不恰当的数据。【例3-5】使用UPDATE语句将ContactDetail表中330号产品的销售数量由2500台更新为3000台,单价由1000元更改为990元。2020年1月29日第22页DELETE语句使用DELETE语句可以删除表中的数据。一般地,如果在DELETE语句中没有删除条件,那么将删除表中的所有数据。需要注意的是,DELETE语句与DROP语句不同。DELETE语句删除表中的数据,但是该表对象依然存在。DROP语句则删除了表对象,表中的数据自然也不存在了。【例3-6】使用DELETE语句删除ContactDetail表中351号产品的信息。2020年1月29日第23页2020年1月29日第24页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题3.5数据控制语言数据控制语言(DCL)主要用来执行有关安全管理的操作,该语言主要包括GRANT语句、REVOKE语句和DENY语句。GRANT语句可以将指定的安全对象的权限授予相应的主体,REVOKE语句则删除授予的权限,DENY语句拒绝授予主体权限,并且防止主体通过组或角色成员继承权限。下面,通过一个简单示例讲述DCL语言的特点。2020年1月29日第25页【例3-7】演示DCL语言【例3-7】演示DCL语言的特点。假设Cleon是ElecTravelCom数据库中的一个用户,GManager是该数据库中的一个角色,且Cleon用户是GManager角色的一个成员。2020年1月29日第26页2020年1月29日第27页本章内容3.1Transact-SQL语言的特点3.2Transact-SQL语言的执行方式3.3数据定义语言3.4数据操纵语言3.5数据控制语言3.6事务管理语言3.7附加的语言元素3.8数据类型3.9内置函数3.10上机练习3.11习题3.6事务管理语言在MicrosoftSQLServer系统中,可以使用BEGINTRANSACTION、COMMITTRANSACTION及ROLLBACKTRANSACTION等事务管理语言(TML)语句来管理显式事务。其中,BEGINTRANSACTION语句用于明确地定义事务的开始,COMMITTRANSACTION语句用于明确地提交完成的事务。如果事务中出现了错误,那么可以使用ROLLBACKTRANSACTION语句明确地取消定义的事务。2020年1月29日第28页【例3-8】演示TML语言【例3-8】演示如何使用TML语言。为了确保账户之间的转账过程准确无误,需要通过定义明确的事务来完成这种操作。2020年1月29日第29页创建ACCOUNTING表2020年1月29日第30页向ACCOUNTING表中插入数据2020年1月29日第31页ACCOUNTING表中当前信息2020年1月29日第32页转账事务语言示例2020年1月29日第33页ACCOUNTING表中转账后的信息2020年1月29日第34页2020年1月29日第35页本
本文标题:SQLServer2005_教程第三章_T-SQL语言
链接地址:https://www.777doc.com/doc-3382005 .html