深入掌握SQL章节三资料教学课件

上传人:沈*** 文档编号:241563307 上传时间:2024-07-04 格式:PPT 页数:95 大小:1.46MB
返回 下载 相关 举报
深入掌握SQL章节三资料教学课件_第1页
第1页 / 共95页
深入掌握SQL章节三资料教学课件_第2页
第2页 / 共95页
深入掌握SQL章节三资料教学课件_第3页
第3页 / 共95页
点击查看更多>>
资源描述
第第3章章 Transact-SQL语言语言学习目标本章重点本章内容7/4/20241学习目标学习目标lTransact-SQL语言是微软公司在关系型数据库管语言是微软公司在关系型数据库管理系统理系统Microsoft SQL Server中的中的ISO SQL的实的实现。现。lSQL(structure query language,结构化查询语,结构化查询语言言)语言是国际标准化组织语言是国际标准化组织(international standardize organization,ISO)采纳的标准数采纳的标准数据库语言。据库语言。l通过使用通过使用Transact-SQL语言,用户几乎可以完成语言,用户几乎可以完成Microsoft SQL Server数据库中的所有操作。数据库中的所有操作。l本章将全面来研究本章将全面来研究Transact-SQL语言的特点和使语言的特点和使用方式。用方式。7/4/20242本章重点本章重点l特点和类型特点和类型l执行方式执行方式l数据定义语言数据定义语言l数据操纵语言数据操纵语言l数据控制语言数据控制语言l事务管理语言事务管理语言l附加语言元素附加语言元素7/4/20243本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/20244本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/202453.1 Transact-SQL语言的特点语言的特点l1970年年6月月,埃德加,埃德加考特考特(Edgar Frank Codd)在在Communications of ACM 上发表了大型共享数据库数上发表了大型共享数据库数据的关系模型一文。首次明确而清晰地为数据库系统提据的关系模型一文。首次明确而清晰地为数据库系统提出了一种崭新的模型,出了一种崭新的模型,即关系模型。即关系模型。l1970 年以后,考特继续致力于完善与发展关系理论。年以后,考特继续致力于完善与发展关系理论。l1972 年,他提出了关系代数和关系演算的概念,年,他提出了关系代数和关系演算的概念,定义了定义了关系的并、交、投影、选择、连接等各种基本运算,为关系的并、交、投影、选择、连接等各种基本运算,为SQL语言的形成和发展奠定了理论基础。语言的形成和发展奠定了理论基础。l1979年,年,SQL在商业数据库中成功得到了应用。在商业数据库中成功得到了应用。7/4/20246SQL标准标准l1986年,美国国家标准化组织正式发表了编号为年,美国国家标准化组织正式发表了编号为X3.135-1986的的SQL标准,并且在标准,并且在1987年获得了年获得了ISO组织的认可,组织的认可,被命名为被命名为ISO9075-1987。后来这个标准在。后来这个标准在1992、2019、2019、2019年等不断地得到了扩充和完善。年等不断地得到了扩充和完善。l从从SQL语言的历史来看,语言的历史来看,Transact-SQL语言与语言与SQL语言语言并不完全等同。不同的数据库供应商一方面采纳了并不完全等同。不同的数据库供应商一方面采纳了SQL语语言作为自己数据库的操作语言,另一方面又对言作为自己数据库的操作语言,另一方面又对SQL语言进语言进行了不同程度的扩展。这种扩展的主要原因是不同的数据行了不同程度的扩展。这种扩展的主要原因是不同的数据库供应商为了达到特殊目的和实现新的功能,不得不对标库供应商为了达到特殊目的和实现新的功能,不得不对标准的准的SQL语言进行扩展,而这些扩展往往又是语言进行扩展,而这些扩展往往又是SQL标准的标准的下一个版本的主要实践来源。下一个版本的主要实践来源。7/4/20247特点特点lTransact-SQL语言有语言有4个特点:个特点:l一是一体化的特点,集数据定义语言、数据操纵一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加语言语言、数据控制语言、事务管理语言和附加语言元素为一体。元素为一体。l二是有两种使用方式,即交互使用方式和嵌入到二是有两种使用方式,即交互使用方式和嵌入到高级语言中的使用方式。高级语言中的使用方式。l三是非过程化语言,只需要提出三是非过程化语言,只需要提出“干什么干什么”,不需,不需要指出要指出“如何干如何干”,语句的操作过程由系统自动完,语句的操作过程由系统自动完成。成。l四是,类似于人的思维习惯,容易理解和掌握。四是,类似于人的思维习惯,容易理解和掌握。7/4/20248类型类型l在在Microsoft SQL Server 2019系统中,根系统中,根据据Transact-SQL语言的功能特点,可以把语言的功能特点,可以把Transact-SQL语言分为语言分为5种类型,即种类型,即数据定义语言数据定义语言数据操纵语言数据操纵语言数据控制语言数据控制语言事务管理语言事务管理语言附加的语言元素附加的语言元素7/4/20249本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024103.2 Transact-SQL语言的执行方式语言的执行方式l在在Microsoft SQL Server 2019系统中,主要使系统中,主要使用用SQL Server Management Studio工具来执行工具来执行Transact-SQL语言编写的查询语句。语言编写的查询语句。l除此之外,还可以使用除此之外,还可以使用sqlcmd实用工具来执行实用工具来执行Transact-SQL语句。语句。l因为前面已经讲过如何使用因为前面已经讲过如何使用sqlcmd工具执行工具执行Transact-SQL语句了,下面主要介绍语句了,下面主要介绍SQL Server Management Studio工具的特点。工具的特点。7/4/202411执行执行Transact-SQL语句示例语句示例 7/4/202412【SQL编辑器】的工具栏编辑器】的工具栏 7/4/202413本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024143.3 数据定义语言数据定义语言l数据定义语言用于创建数据库和数据库对数据定义语言用于创建数据库和数据库对象,为数据库操作提供对象。象,为数据库操作提供对象。l例如,数据库以及表、触发器、存储过程、例如,数据库以及表、触发器、存储过程、视图、索引、函数、类型、用户等都是数视图、索引、函数、类型、用户等都是数据库中的对象,都需要通过定义才能使用。据库中的对象,都需要通过定义才能使用。l在在DDL中,主要的中,主要的Transact-SQL语句包括语句包括CREATE语句、语句、ALTER语句、语句、DROP语句。语句。7/4/202415CREATE语句语句lCREATE语句用于创语句用于创建数据库以及数据库建数据库以及数据库中的对象,是一个从中的对象,是一个从无到有的过程。也就无到有的过程。也就是说,是说,CREATE语句语句用于创建将要在今后用于创建将要在今后使用数据库或数据库使用数据库或数据库对象。对象。l【例【例3-1】使用】使用CREATE语句创建一语句创建一个个ContactDetail表。表。7/4/202416ALTER语句语句lALTER语句用于更改数据库以语句用于更改数据库以及数据库对象的结构。也就是及数据库对象的结构。也就是说,说,ALTER语句的对象必须已语句的对象必须已经存在。经存在。lALTER语句仅仅是更改其对象语句仅仅是更改其对象的结构,其对象中已有的数据的结构,其对象中已有的数据不受任何影响。对于表对象来不受任何影响。对于表对象来说,使用说,使用ALTER语句在表中增语句在表中增加一个新列、删除一个列等操加一个新列、删除一个列等操作都属于对表结构的更改。作都属于对表结构的更改。l【例【例3-2】使用】使用ALTER语句在语句在ContactDetail表中增加一个表中增加一个productName列。列。7/4/202417DROP语句语句l删除数据库或数据库对象删除数据库或数据库对象的结构可以通过使用的结构可以通过使用DROP语句来完成。需要语句来完成。需要注意的是,删除对象结构注意的是,删除对象结构包括删除该对象中的所有包括删除该对象中的所有内容和对象本身。例如,内容和对象本身。例如,如果删除如果删除ContactDetail表,表,那么不仅仅那么不仅仅ContactDetail表结构不再存在了,该表表结构不再存在了,该表中的所有数据也都自然不中的所有数据也都自然不存在了。存在了。l【例【例3-3】使用】使用DROP语句语句删除删除ContactDetail表。表。7/4/202418本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024193.4 数据操纵语言数据操纵语言l数据操纵语言主要是用于操纵表、视图中数据的语句。数据操纵语言主要是用于操纵表、视图中数据的语句。l当我们创建表对象之后,初始状态时该表是空的,没有任当我们创建表对象之后,初始状态时该表是空的,没有任何数据。何数据。l如何向表中添加数据呢?这时需要使用如何向表中添加数据呢?这时需要使用INSERT语句。语句。l如何检索表中数据呢?可以使用如何检索表中数据呢?可以使用SELECT语句。语句。l如果表中数据不正确的,那么可以使用如果表中数据不正确的,那么可以使用UPDATE语句进行语句进行更新。更新。l当然,也可以使用当然,也可以使用DELETE语句删除表中的数据。语句删除表中的数据。l实际上,实际上,DML语言正是包括了语言正是包括了INSERT、SELECT、UPDATE及及DELETE等语句。等语句。7/4/202420INSERT语句语句lINSERT语句用于向已经存在的表中插入新的数据,一次语句用于向已经存在的表中插入新的数据,一次插入一行数据。当需要向表中插入多行数据时,需要多插入一行数据。当需要向表中插入多行数据时,需要多次使用次使用INSERT语句。语句。l【例【例3-4】使用】使用INSERT语句向语句向ContactDetail表中插入数表中插入数据。据。7/4/202421UPDATE语句语句l如果表中的数据不正确如果表中的数据不正确或不合适或者已经变化,或不合适或者已经变化,那么可以使用那么可以使用UPDATE语句更新这些不恰当的语句更新这些不恰当的数据。数据。l【例【例3-5】使用】使用UPDATE语句将语句将ContactDetail表中表中330号产品的销售数量号产品的销售数量由由2500台更新为台更新为3000台,单价由台,单价由1000元更元更改为改为990元。元。7/4/202422DELETE语句语句l使用使用DELETE语句可以删除语句可以删除表中的数据。一般地,如果表中的数据。一般地,如果在在DELETE语句中没有删除语句中没有删除条件,那么将删除表中的所条件,那么将删除表中的所有数据。有数据。l需要注意的是,需要注意的是,DELETE语语句与句与DROP语句不同。语句不同。DELETE语句删除表中的数语句删除表中的数据,但是该表对象依然存在。据,但是该表对象依然存在。DROP语句则删除了表对象,语句则删除了表对象,表中的数据自然也不存在了。表中的数据自然也不存在了。l【例【例3-6】使用】使用DELETE语语句删除句删除ContactDetail表中表中351号产品的信息。号产品的信息。7/4/202423本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024243.5 数据控制语言数据控制语言l数据控制语言数据控制语言(DCL)主要用来执行有关安全主要用来执行有关安全管理的操作,该语言主要包括管理的操作,该语言主要包括GRANT语句、语句、REVOKE语句和语句和DENY语句。语句。GRANT语句语句可以将指定的安全对象的权限授予相应的可以将指定的安全对象的权限授予相应的主体,主体,REVOKE语句则删除授予的权限,语句则删除授予的权限,DENY语句拒绝授予主体权限,并且防止主语句拒绝授予主体权限,并且防止主体通过组或角色成员继承权限。体通过组或角色成员继承权限。l下面,通过一个简单示例讲述下面,通过一个简单示例讲述DCL语言的语言的特点。特点。7/4/202425【例【例3-7】演示】演示DCL语言语言l【例【例3-7】演示】演示DCL语言的特点。假设语言的特点。假设Cleon是是ElecTravelCom数数据库中的一个用户,据库中的一个用户,GManager是该数是该数据库中的一个角色,据库中的一个角色,且且Cleon用户是用户是GManager角色的角色的一个成员。一个成员。7/4/202426本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024273.6 事务管理语言事务管理语言l在在Microsoft SQL Server系统中,可以使用系统中,可以使用BEGIN TRANSACTION、COMMIT TRANSACTION及及ROLLBACK TRANSACTION等事务管理语言等事务管理语言(TML)语句来管理显式事务。语句来管理显式事务。l其中,其中,BEGIN TRANSACTION语句用于明确地语句用于明确地定义事务的开始,定义事务的开始,COMMIT TRANSACTION语句语句用于明确地提交完成的事务。用于明确地提交完成的事务。l如果事务中出现了错误,那么可以使用如果事务中出现了错误,那么可以使用ROLLBACK TRANSACTION语句明确地取消定语句明确地取消定义的事务。义的事务。7/4/202428【例【例3-8】演示】演示TML语言语言l【例【例3-8】演示如何使用】演示如何使用TML语言。语言。l为了确保账户之间的转账过程准确无误,为了确保账户之间的转账过程准确无误,需要通过定义明确的事务来完成这种操作。需要通过定义明确的事务来完成这种操作。7/4/202429创建创建accounting表表 7/4/202430向向accounting表中插入数据表中插入数据 7/4/202431accounting表中当前信息表中当前信息 7/4/202432转账事务语言示例转账事务语言示例 7/4/202433accounting表中转账后的信息表中转账后的信息 7/4/202434本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024353.7 附加的语言元素附加的语言元素l除了前面介绍的语句之外,除了前面介绍的语句之外,Transact-SQL语言还包括了附加的语言元素。语言还包括了附加的语言元素。l这些附加的语言元素主要包括标识符、变这些附加的语言元素主要包括标识符、变量和常量、运算符、表达式、数据类型、量和常量、运算符、表达式、数据类型、函数、控制流语言、错误处理语言及注释函数、控制流语言、错误处理语言及注释等。等。l下面,详细研究这些内容。下面,详细研究这些内容。7/4/202436标识符标识符l在在Transact-SQL语言中,数据库对象的名称就是语言中,数据库对象的名称就是其标识符。其标识符。l在在Microsoft SQL Server系统中,所有的数据库系统中,所有的数据库对象都可以有标识符,例如服务器、数据库、表、对象都可以有标识符,例如服务器、数据库、表、视图、索引、触发器、约束等。大多数对象的标视图、索引、触发器、约束等。大多数对象的标识符是必须的,例如创建表时必须为表指定标识识符是必须的,例如创建表时必须为表指定标识符。符。l但是,也有一些对象的标识符是可选的,例如创但是,也有一些对象的标识符是可选的,例如创建约束时用户可以不提供标识符,其标识符由系建约束时用户可以不提供标识符,其标识符由系统自动生成。统自动生成。7/4/202437标识符的类型标识符的类型l按照标识符的使用方式,可以把这些标识按照标识符的使用方式,可以把这些标识符分为常规标识符和分割标识符两种类型。符分为常规标识符和分割标识符两种类型。在在Transact-SQL语句中使用时不用将其分语句中使用时不用将其分割的标识符称为常规标识符。割的标识符称为常规标识符。7/4/202438标识符的规则标识符的规则l规则一,第一个字符必须是下列字符之一:规则一,第一个字符必须是下列字符之一:Unicode标准定义的字母或下划线标准定义的字母或下划线(_)、符号、符号()或或数字符号数字符号(#)。l规则二,后续字符可以包括:规则二,后续字符可以包括:Unicode标准中定义的字母。标准中定义的字母。基本拉丁字符或十进制数字。基本拉丁字符或十进制数字。下划线下划线(_)、符号、符号()、数字符号、数字符号(#)或美元符号或美元符号($)。l规则三,标识符不能是规则三,标识符不能是Transact-SQL语言的保留语言的保留字,包括大写和小写形式。字,包括大写和小写形式。l规则四,不允许嵌入空格或其他特殊字符。规则四,不允许嵌入空格或其他特殊字符。7/4/202439使用分割标识符使用分割标识符l有两种情况下使用分割标识符:一是对象名称中有两种情况下使用分割标识符:一是对象名称中包含了包含了Microsoft SQL Server保留字时需要使用保留字时需要使用分割标识符,例如分割标识符,例如where分割标识符;二是对象分割标识符;二是对象名称中使用了未列入限定字符的字符,例如名称中使用了未列入限定字符的字符,例如product1 table分割标识符。分割标识符。l使用双引号分割的标识符称为引用标识符,使用使用双引号分割的标识符称为引用标识符,使用方括号分割的标识符称为括号标识符。默认情况方括号分割的标识符称为括号标识符。默认情况下,只能使用括号标识符。当下,只能使用括号标识符。当QUOTED_IDENTIFIER选项设置为选项设置为ON时,才能时,才能使用引用的标识符。使用引用的标识符。7/4/202440【例【例3-9】l【例【例3-9】演示】演示QUOTED_IDENTIFIER选项选项的作用和特点。的作用和特点。7/4/202441QUOTED_IDENTIFIER选项值为选项值为OFF 7/4/202442QUOTED_IDENTIFIER选项值为选项值为ON 7/4/202443变量和常量变量和常量l在在Microsoft SQL Server 2019系统中,变量也被称为局部变量,是系统中,变量也被称为局部变量,是可以保存单个特定类型数据值的对象。一般地,经常在批处理和脚本可以保存单个特定类型数据值的对象。一般地,经常在批处理和脚本中使用变量,这些变量可以作为计数器计算循环执行的次数或控制循中使用变量,这些变量可以作为计数器计算循环执行的次数或控制循环执行的次数;保存数据值以供控制流语句测试;保存存储过程返回环执行的次数;保存数据值以供控制流语句测试;保存存储过程返回代码要返回的数据值或函数返回值。代码要返回的数据值或函数返回值。l在在Transact-SQL语言中,可以使用语言中,可以使用DECLARE语句声明变量。在声明语句声明变量。在声明变量时需要注意:第一,为变量指定名称,且名称的第一个字符必须变量时需要注意:第一,为变量指定名称,且名称的第一个字符必须是;第二,指定该变量的数据类型和长度;第三,默认情况下将该变是;第二,指定该变量的数据类型和长度;第三,默认情况下将该变量值设置为量值设置为NULL。l常量是表示特定数据值的符号,常量也被称为字面量。常量的格式取常量是表示特定数据值的符号,常量也被称为字面量。常量的格式取决于它所表示的值的数据类型。例如,决于它所表示的值的数据类型。例如,This is a book.、August 8,2019、29157等都是常量。对于字符常量或时间日期型常量,需要使等都是常量。对于字符常量或时间日期型常量,需要使用单引号引起来。用单引号引起来。7/4/202444【例【例3-10】演示如何定义和使用变】演示如何定义和使用变量。量。7/4/202445运算符运算符l运算符是一种符号,用来指定要在一个或运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。在多个表达式中执行的操作。在Microsoft SQL Server 2019系统中,可以使用的运算系统中,可以使用的运算符可以分为算术运算符、逻辑运算符、赋符可以分为算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运算值运算符、字符串串联运算符、按位运算符、一元运算符及比较运算符等。符、一元运算符及比较运算符等。l算术运算符可以用于对两个表达式进行数算术运算符可以用于对两个表达式进行数学运算,其类型如表学运算,其类型如表3-1所示。所示。7/4/202446【例【例3-11】演示如何使用算术运算】演示如何使用算术运算符符 7/4/202447【例【例3-12】演示如何使用逻辑运算】演示如何使用逻辑运算符符 7/4/202448【例【例3-13】演示如何使用赋值运算】演示如何使用赋值运算符符 7/4/202449【例【例3-14】演示如何使用字符串串】演示如何使用字符串串联运算符联运算符 7/4/202450【例【例3-15】演示如何使用位运算符】演示如何使用位运算符 7/4/202451【例【例3-16】演示如何使用比较运算】演示如何使用比较运算符符 7/4/202452【例【例3-17】演示如何使用复杂表达】演示如何使用复杂表达式式 7/4/202453控制流语言控制流语言l一般地,结构化程序设计语言的基本结构一般地,结构化程序设计语言的基本结构是顺序结构、条件分支结构和循环结构。是顺序结构、条件分支结构和循环结构。顺序结构是一种自然结构,条件分支结构顺序结构是一种自然结构,条件分支结构和循环结构都需要根据程序的执行状况对和循环结构都需要根据程序的执行状况对程序的执行顺序进行调整。程序的执行顺序进行调整。l在在Transact-SQL语言中,用于控制语句流语言中,用于控制语句流的语言被称为控制流语言。的语言被称为控制流语言。Microsoft SQL Server 2019系统提供了系统提供了8种控制流语句,种控制流语句,这些语句的说明如表这些语句的说明如表3-7所示。所示。7/4/202454【例【例3-18】演示如何使用控制流语】演示如何使用控制流语言言 7/4/202455错误捕捉语言错误捕捉语言l为了增强程序的健壮性,必须对程序中可能出现的错误进为了增强程序的健壮性,必须对程序中可能出现的错误进行及时处理。在行及时处理。在Transact-SQL语言中,可以使用两种方语言中,可以使用两种方式处理发生的错误,即使用式处理发生的错误,即使用TRYCATCH构造和使用构造和使用ERROR函数。函数。l在在Transact-SQL语句中,可以使用语句中,可以使用TRYCATCH构造来构造来处理处理Transact-SQL代码中的错误。代码中的错误。TRYCATCH构造由构造由一个一个TRY块和一个块和一个CATCH块组成,如果在块组成,如果在TRY块中包含块中包含了了Transact-SQL语句中检测到的错误条件,那么控制将语句中检测到的错误条件,那么控制将被传递到被传递到CATCH块中以便处理该错误。块中以便处理该错误。lERROR函数可以用于捕捉上一个函数可以用于捕捉上一个Transact-SQL语句生成语句生成的错误号。的错误号。7/4/202456【例【例3-19】演示使用】演示使用TRYCATCH 7/4/202457【例【例3-20】演示使用】演示使用ERROR函数函数 7/4/202458注释注释l所有的程序设计语言都有注释。所有的程序设计语言都有注释。l注释是程序代码中不执行的文本字符串,注释是程序代码中不执行的文本字符串,用于对代码进行说明或暂时仅用正在进行用于对代码进行说明或暂时仅用正在进行诊断的部分语句。一般地,注释主要描述诊断的部分语句。一般地,注释主要描述程序名称、作者名称、变量说明、代码更程序名称、作者名称、变量说明、代码更改日期、算法描述等。改日期、算法描述等。l在在Microsoft SQL Server系统中支持两种系统中支持两种注释方式,即双连字符注释方式,即双连字符(-)注释方式和正斜注释方式和正斜杠星号字符对杠星号字符对(/*/)注释方式。注释方式。7/4/202459【例【例3-21】演示使用注释】演示使用注释 7/4/202460本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024613.8 数据类型数据类型l本节将从六个方面研究本节将从六个方面研究Transact-SQL语言的数据语言的数据类型。类型。l首先,分析数据类型的概念、特点和主要类型。首先,分析数据类型的概念、特点和主要类型。l然后,讲述数字数据类型的主要内容和特点。然后,讲述数字数据类型的主要内容和特点。l之后,描述字符数据类型的使用方式。之后,描述字符数据类型的使用方式。l接下来,研究日期和时间数据类型的输入输出特接下来,研究日期和时间数据类型的输入输出特点。点。l接着,分析二进制数据类型的特点。接着,分析二进制数据类型的特点。l最后,讲述其他数据类型的内容和特点。最后,讲述其他数据类型的内容和特点。7/4/202462数据类型的类型和特点数据类型的类型和特点l在在Microsoft SQL Server 2019系统中,包含数据的对象系统中,包含数据的对象都有一个数据类型。实际上,数据类型是一种用于指定对都有一个数据类型。实际上,数据类型是一种用于指定对象可保存的数据的类型。例如,象可保存的数据的类型。例如,INT数据类型的对象只能数据类型的对象只能包含整数型数据,包含整数型数据,DATETIME数据类型的对象只能包含符数据类型的对象只能包含符合日期时间格式的数据。合日期时间格式的数据。l在在Microsoft SQL Server 2019系统中,需要使用数据类系统中,需要使用数据类型的对象包括表中的列、视图中的列、定义的局部变量、型的对象包括表中的列、视图中的列、定义的局部变量、存储过程中的参数、存储过程中的参数、Transact-SQL函数及存储过程的返函数及存储过程的返回值等。回值等。lMicrosoft SQL Server 2019系统提供了系统提供了28种数据类型。种数据类型。这些数据类型可以分为数字数据类型、字符数据类型、日这些数据类型可以分为数字数据类型、字符数据类型、日期和时间数据类型、二进制数据类型以及其他数据类型。期和时间数据类型、二进制数据类型以及其他数据类型。7/4/202463数字数据类型数字数据类型l数字数据类型包括数字数据类型包括BIGINT、INT、SMALLINT、TINYINT、BIT、DECIMAL、NUMERIC、MONEY、SMALLMONEY、FLOAT和和REAL 11种数据类型。种数据类型。7/4/202464字符数据类型字符数据类型l字符数据类型包括了字符数据类型包括了CHAR、VARCHAR、TEXT、NCHAR、NVARCHAR和和NTEXT等等6种数据类型。种数据类型。7/4/202465日期和时间数据类型日期和时间数据类型l日期和时间数据类型包括日期和时间数据类型包括DATETIME和和SMALLDATETIME两种数据类型。两种数据类型。7/4/202466二进制数据类型二进制数据类型l二进制数据类型包括二进制数据类型包括BINARY、VARBINARY和和IMAGE 3种数据类型。种数据类型。7/4/202467其他数据类型其他数据类型l除此之外,还包括除此之外,还包括CURSOR、SQL_VARIANT、TABLE、TIMESTAMP、UNIQUEIDENTIFIER和和XML 6种数据类型。种数据类型。7/4/202468数字数据类型数字数据类型l使用数字数据的数据类型被称为数字数据类型。使用数字数据的数据类型被称为数字数据类型。这些数据类型的数字可以参加各种数学运算。我这些数据类型的数字可以参加各种数学运算。我们还可以为这些数据类型继续进行分类。们还可以为这些数据类型继续进行分类。l从这些数字是否有小数,可以把这些数据类型分从这些数字是否有小数,可以把这些数据类型分为整数类型和小数类型。为整数类型和小数类型。l从这些数字的精度和位数是否可以明确地确定,从这些数字的精度和位数是否可以明确地确定,可以把这些数据类型分为精确数字类型和近似数可以把这些数据类型分为精确数字类型和近似数字类型。字类型。l从是否可以表示金额,可以分为货币数字类型和从是否可以表示金额,可以分为货币数字类型和非货币数字类型。非货币数字类型。l下面,详细研究每一种数据类型的特点。下面,详细研究每一种数据类型的特点。7/4/202469整数数据类型整数数据类型l整数数据类型表示可以存储整数精确数据。整数数据类型表示可以存储整数精确数据。l在在Microsoft SQL Server 2019系统中,有系统中,有4种整数数据类型即种整数数据类型即BIGINT、INT、SMALLINT、TINYINT。l可以从取值范围和长度两个方面理解这些可以从取值范围和长度两个方面理解这些整数数据类型。整数数据类型。7/4/202470【例【例3-22】演示数据溢出现象】演示数据溢出现象 7/4/202471DECIMAL和和NUMERIC数据类型数据类型lDECIMAL和和NUMERIC数据类型都是带固定精度数据类型都是带固定精度和位数的数据类型。和位数的数据类型。l这两种数据类型在功能是等价的,只是名称不同这两种数据类型在功能是等价的,只是名称不同而已。而已。l在在Microsoft SQL Server 2019系统中,把这两系统中,把这两种数据类型实际上作为完全相同的一种数据类型种数据类型实际上作为完全相同的一种数据类型来对待。来对待。l下面主要介绍下面主要介绍DECIMAL数据类型的特点和使用方数据类型的特点和使用方式。式。7/4/202472MONEY和和SMALLMONEY数据类型数据类型l如果希望存储代表货币数值的数据,那么可以使如果希望存储代表货币数值的数据,那么可以使用用MONEY和和SMALLMONEY数据类型。这两种数据类型。这两种数据类型的差别在于存储字节的大小和取值范围数据类型的差别在于存储字节的大小和取值范围不同。不同。l在在Microsoft SQL Server 2019系统中,系统中,MONEY数据类型需要耗费数据类型需要耗费8个存储字节,其取值范围是个存储字节,其取值范围是-922,337,203,685,477.5808至至922,337,203,685,477.5807。SMALLMONEY数数据类型只需要据类型只需要4个存储字节,取值范围是个存储字节,取值范围是-214,748.3648至至214,748.3647。7/4/202473【例【例3-23】演示】演示MONEY数据类型数据类型 7/4/202474FLOAT或或REAL数据类型数据类型l如果希望进行科学计算,并且希望存储更如果希望进行科学计算,并且希望存储更大的数值,但是对数据的精度要求并不是大的数值,但是对数据的精度要求并不是绝对的严格,那么应该考虑使用绝对的严格,那么应该考虑使用FLOAT或或REAL数据类型。数据类型。lFLOAT或或REAL数据类型是用于表示数值数数据类型是用于表示数值数的大致数据值的数据类型。的大致数据值的数据类型。7/4/202475BITlBIT是可以存储是可以存储1、0或或NULL数据的数据类数据的数据类型。型。l这些数据主要是用于一些条件逻辑判断。这些数据主要是用于一些条件逻辑判断。l也可以把也可以把TRUE和和FALSE数据存储到数据存储到BIT数数据类型中,这时需要按照字符格式存储据类型中,这时需要按照字符格式存储TRUE和和FALSE数据。数据。7/4/202476字符数据类型字符数据类型l字符数据类型用于存储固定长度或可变长字符数据类型用于存储固定长度或可变长度的字符数据。度的字符数据。l在在Microsoft SQL Server 2019系统中,提系统中,提供了供了CHAR、VARCHAR、TEXT、NCHAR、NVARCHAR和和NTEXT 6种数据种数据类型。类型。l前前3种数据类型是非种数据类型是非Unicode字符数据,后字符数据,后3种是种是Unicode字符数据。字符数据。7/4/202477日期和时间数据日期和时间数据l如果希望存储日期和时间数据,那么可以使用如果希望存储日期和时间数据,那么可以使用DATETIME或或SMALLDATETIME数据类型。数据类型。l这两种数据类型的差别在于其表示的日期和时间范围不同、这两种数据类型的差别在于其表示的日期和时间范围不同、时间精确度也不同。时间精确度也不同。lDATETIME数据类型可以表示的范围是数据类型可以表示的范围是1753年年1月月1日至日至9999年年12月月31日,时间精确度是日,时间精确度是3.33毫秒。毫秒。SMALLDATETIME数据类型可以表示的范围是数据类型可以表示的范围是1900年年1月月1日至日至2079年年12月月31日,时间精确度是日,时间精确度是1分钟。分钟。l建议用户在大型应用程序中不要使用建议用户在大型应用程序中不要使用SMALLDATETIME数据类型,避免出现类似千年虫的问题。因为数据类型,避免出现类似千年虫的问题。因为2079年年12月月31日不是一个特别遥远的日期。日不是一个特别遥远的日期。7/4/202478【例【例3-24】演示如何使用】演示如何使用SET DATEFORMAT语句语句 7/4/202479二进制数据类型二进制数据类型l二进制数据类型包括二进制数据类型包括BINARY、VARBINARY和和IMAGE 3种数据类型,可以用于存储二进制数据。种数据类型,可以用于存储二进制数据。l其中,其中,BINARY可以用于存储固定长度的二进制可以用于存储固定长度的二进制数据,数据,VARBINARY用于存储可变长度的二进制用于存储可变长度的二进制数据。数据。BINARY(n)和和VARBINARY(n)的数据长度的数据长度由由n值来确定,值来确定,n的取值范围是的取值范围是1至至8000。IMAGE数据类型用于存储图像信息。数据类型用于存储图像信息。l但是,在但是,在Microsoft SQL Server 2019系统中,系统中,微软建议使用微软建议使用VARBINARY(MAX)代替代替IMAGE数数据类型据类型7/4/202480【例【例3-25】演示】演示BINARY数据类型数据类型 7/4/202481其他数据类型其他数据类型l出了前面介绍的数据类型之外,出了前面介绍的数据类型之外,Microsoft SQL Server 2019系统还提供了系统还提供了CURSOR、SQL_VARIANT、TABLE、TIMESTAMP、UNIQUEIDENTIFIER及及XML等数据类型。等数据类型。7/4/202482本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024833.9 内置函数内置函数lMicrosoft SQL Server 2019系统提供了许系统提供了许多内置函数,这些函数可以完成许多特殊多内置函数,这些函数可以完成许多特殊的操作,增强了系统的功能,提高了系统的操作,增强了系统的功能,提高了系统的易用性。的易用性。l本节介绍这些内置函数的特点。本节介绍这些内置函数的特点。7/4/202484内置函数的特点和类型内置函数的特点和类型l可以把可以把Microsoft SQL Server 2019系统提系统提供的内置函数分为供的内置函数分为14种类型,每一种类型种类型,每一种类型的内置函数都可以完成某种类型的操作,的内置函数都可以完成某种类型的操作,这些类型的函数名称和主要功能如表这些类型的函数名称和主要功能如表3-8所所示。示。7/4/202485【例【例3-26】演示使用聚合函数】演示使用聚合函数 7/4/202486【例【例3-27】演示使用配制函数】演示使用配制函数 7/4/202487【例【例3-28】演示使用数学函数】演示使用数学函数 7/4/202488【例【例3-29】演示使用】演示使用RANK和和DENSE_RANK排名函数排名函数 7/4/202489【例【例3-30】演示使用字符串函数】演示使用字符串函数 7/4/202490【例【例3-31】演示使用】演示使用CASE函数函数 7/4/202491本章内容本章内容3.1 Transact-SQL语言的特点语言的特点3.2 Transact-SQL语言的执行方式语言的执行方式3.3 数据定义语言数据定义语言3.4 数据操纵语言数据操纵语言3.5 数据控制语言数据控制语言3.6 事务管理语言事务管理语言3.7 附加的语言元素附加的语言元素3.8 数据类型数据类型3.9 内置函数内置函数3.10 上机练习上机练习3.11 习题习题7/4/2024923.10 上机练习上机练习l本章上机练习的内容是练习使用本章上机练习的内容是练习使用ERROR函函数、安全函数、聚合函数、数、安全函数、聚合函数、CASE函数、数函数、数学函数等。学函数等。7/4/2024933.11 习题习题1.练习使用练习使用CONVERT函数,将数值数据转函数,将数值数据转化为字符之后再用在字符串函数中。化为字符之后再用在字符串函数中。2.练习使用日期函数。练习使用日期函数。7/4/202494供娄浪颓蓝辣袄驹靴锯澜互慌仲写绎衰斡染圾明将呆则孰盆瘸砒腥悉漠堑脊髓灰质炎(讲课2019)脊髓灰质炎(讲课2019)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!