第5章数据库PPT讲稿.ppt
《第5章数据库PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第5章数据库PPT讲稿.ppt(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章数据章数据库第1页,共142页,编辑于2022年,星期一第第5章章 SQL Server 2008高级应用高级应用5.1 T-SQL程序设计程序设计5.2 存储过程存储过程5.3 触发器触发器5.4 用户自定义函数用户自定义函数第2页,共142页,编辑于2022年,星期一5.1T-SQL程序设计程序设计v1什么是什么是SQL语言语言SQL语言的全名是结构化查询语言(语言的全名是结构化查询语言(StructuredQueryLanguage),),是用于数据库中的标准数据查询语言,是用于数据库中的标准数据查询语言,IBM公司最早使用该语言在其公司最早使用该语言在其开发的数据库系统中。开发
2、的数据库系统中。1986年年10月,美国月,美国ANSI对对SQL进行规范后,进行规范后,以此作为关系数据库管理系统的标准语言。以此作为关系数据库管理系统的标准语言。不同的数据库管理系统在其实践过程中都对不同的数据库管理系统在其实践过程中都对SQL规范做了某些改规范做了某些改变和扩充。所以,实际上,不同数据库管理系统之间的变和扩充。所以,实际上,不同数据库管理系统之间的SQL语言语言不能完全通用。例如,微软公司的不能完全通用。例如,微软公司的MSSQL-Server支持的是支持的是T-SQL,而甲,而甲骨文公司的骨文公司的Oracle数据库所使用的数据库所使用的SQL语言则是语言则是PL-SQ
3、L。第3页,共142页,编辑于2022年,星期一5.1T-SQL程序设计程序设计v2什么是什么是T-SQL语言语言T-SQL是是SQL语言的一种版本,且只能在微软语言的一种版本,且只能在微软MSSQL-Server以及以及SybaseAdaptiveServer系列数据库上使用。系列数据库上使用。T-SQL是是ANSISQL的扩展加强版语言,除了提供标准的的扩展加强版语言,除了提供标准的SQL命令命令之外,之外,T-SQL还对还对SQL做了许多补充,提供了类似做了许多补充,提供了类似C、BASIC和和Pascal的的基本功能,如变量说明、流控制语言、功能函数等。基本功能,如变量说明、流控制语言
4、、功能函数等。第4页,共142页,编辑于2022年,星期一5.1.1T-SQL程序结构程序结构一个一个Transact-SQL程序结构有如下要素组成:程序结构有如下要素组成:注释注释批处理批处理程序中使用的变量程序中使用的变量流程控制语句流程控制语句错误和消息的处理错误和消息的处理第5页,共142页,编辑于2022年,星期一5.1.2T-SQL程序的批处理程序的批处理批处理是从客户机传递到服务器上的一组完整的数据和批处理是从客户机传递到服务器上的一组完整的数据和SQL指令。指令。在一个批处理中,可以包含一条在一个批处理中,可以包含一条SQL指令,也可以包含多条指令,也可以包含多条SQL指指令。
5、令。所有的批处理命令都使用所有的批处理命令都使用GO作为结束的标志。当作为结束的标志。当SQLServer编译编译器读到器读到GO时,他就会把时,他就会把GO前面所有的语句当做一个批处理而打包成前面所有的语句当做一个批处理而打包成一个数据包发送给服务器。一个数据包发送给服务器。SQLServer会将一批会将一批T-SQL语句当成一个执语句当成一个执行单元,将其编译后一次执行,而不是将一个个行单元,将其编译后一次执行,而不是将一个个T-SQL语句编译后在一个语句编译后在一个个执行。个执行。第6页,共142页,编辑于2022年,星期一5.1.3数据类型数据类型v1系统数据类型系统数据类型系统数据类
6、型又称为基本数据类型。在第系统数据类型又称为基本数据类型。在第4章已详细地介绍了系章已详细地介绍了系统数据类型,此处不再赘述。统数据类型,此处不再赘述。v2用户自定义数据类型用户自定义数据类型用户自定义数据类型可看做系统数据类型的别名。用户自定义数据类型可看做系统数据类型的别名。在多表操作的情况下,当多个表中的列要存储相同类型的数据时,在多表操作的情况下,当多个表中的列要存储相同类型的数据时,往往要确保这些列具有完全相同的数据类型、长度和为空性(数据类往往要确保这些列具有完全相同的数据类型、长度和为空性(数据类型是否允许空值)。用户自定义数据类型并不是真正的数据类型,它型是否允许空值)。用户自
7、定义数据类型并不是真正的数据类型,它只是提供了一种提高数据库内部元素和基本数据类型之间一致性的机只是提供了一种提高数据库内部元素和基本数据类型之间一致性的机制。制。第7页,共142页,编辑于2022年,星期一5.1.4常量、变量与数据类型常量、变量与数据类型根据常量值的不同类型,常量分为字符串常量、整型常量、根据常量值的不同类型,常量分为字符串常量、整型常量、实型常量、日期时间常量、货币常量、唯一标识常量。各类常实型常量、日期时间常量、货币常量、唯一标识常量。各类常量举例说明如下。量举例说明如下。v1字符串常量字符串常量字符串常量分为字符串常量分为ASCII字符串常量和字符串常量和Unicod
8、e字符串常量。字符串常量。(1)ASCII字符串常量。字符串常量。ASCII字符串常量是用单引号括起来,由字符串常量是用单引号括起来,由ASCII字符构成的符号串。字符构成的符号串。ASCII字符串常量举例如下:字符串常量举例如下:ChinaHowdoyou!OBbaar/*如果单引号中的字符串包含引号,可以使用两个单引号来表示如果单引号中的字符串包含引号,可以使用两个单引号来表示嵌入的单引号。嵌入的单引号。*/第8页,共142页,编辑于2022年,星期一5.1.4常量常量(2)Unicode字符串常量。字符串常量。Unicode字符串常量与字符串常量与ASCII字符串常字符串常量相似,但它前
9、面有一个量相似,但它前面有一个N标识符(标识符(N代表代表SQL-92标准中的国际语言标准中的国际语言NationalLanguage),),N前缀必须为大写字母。前缀必须为大写字母。Unicode字符串常量举例如下:字符串常量举例如下:NChinaNHowdoyou!Unicode数据中的每个字符用两个字节存储,而每个数据中的每个字符用两个字节存储,而每个ASCII字符用一字符用一个字节存储。个字节存储。第9页,共142页,编辑于2022年,星期一5.1.4常量常量v2整型常量整型常量按照不同表示方式,整型常量又分为二进制整型常量、十六进制整型常量和按照不同表示方式,整型常量又分为二进制整型
10、常量、十六进制整型常量和十进制整型常量。十进制整型常量。十六进制整型常量的表示:前辍十六进制整型常量的表示:前辍0 x后跟十六进制数字串。后跟十六进制数字串。十六进制常量举例:十六进制常量举例:0 xEBF0 x69048AEFDD010E0 x/*空十六进制常量空十六进制常量*/二进制整型常量的表示:即数字二进制整型常量的表示:即数字0或或1,并且不使用引号。如果使用一个大,并且不使用引号。如果使用一个大于于1的数字,它将被转换为的数字,它将被转换为1。十进制整型常量即不带小数点的十进制数,例如,十进制整型常量即不带小数点的十进制数,例如,18942+145345234-2147483648
11、第10页,共142页,编辑于2022年,星期一5.1.4常量常量v3实型常量实型常量实型常量有定点表示和浮点表示两种方式,举例如下。实型常量有定点表示和浮点表示两种方式,举例如下。定点表示:定点表示:1894.12042.0+145345234.2234-2147483648.10浮点表示:浮点表示:101.5E50.5E-2+123E-3-12E5第11页,共142页,编辑于2022年,星期一5.1.4常量常量v4日期时间常量日期时间常量日期时间常量:用单引号将表示日期时间的字符串括起来构成。日期时间常量:用单引号将表示日期时间的字符串括起来构成。SQLServer可以识别如下格式的日期和时
12、间。可以识别如下格式的日期和时间。字母日期格式,如字母日期格式,如April20,2000;数字日期格式,如数字日期格式,如4/15/1998,1998-04-15;未分隔的字符串格式,如未分隔的字符串格式,如20001207;以下是时间常量的例子:以下是时间常量的例子:14:30:2404:24:PM以下是日期时间常量的例子:以下是日期时间常量的例子:April20,200014:30:24第12页,共142页,编辑于2022年,星期一5.1.4常量常量v5money常量常量money常量是以常量是以“$”作为前缀的一个整型或实型常量数据。下面作为前缀的一个整型或实型常量数据。下面是是mon
13、ey常量的例子:常量的例子:$12$542023-$45.56+$423456.99v6uniqueidentifier常量常量uniqueidentifier常量是用于表示全局唯一标识符(常量是用于表示全局唯一标识符(GUID)值的)值的字符串。可以使用字符串或十六进制字符串格式指定。例如,字符串。可以使用字符串或十六进制字符串格式指定。例如,6F9619FF-8A86-D011-B42D-00004FC964FF0 xff19966f868b11d0b42d00c04fc964ff第13页,共142页,编辑于2022年,星期一5.1.4变量变量变量名必须是一个合法的标识符。变量名必须是一个
14、合法的标识符。(1)标识符。在)标识符。在SQLServer中标识符分为两类。中标识符分为两类。常规标识符:以常规标识符:以ASCII字母、字母、Unicode字母、下划线(字母、下划线(_)、)、或或#开头,后续可跟一个或若干个开头,后续可跟一个或若干个ASCII字符、字符、Unicode字符、下划线(字符、下划线(_)、)、美元符号(美元符号($)、)、或或#,但不能全为下划线(,但不能全为下划线(_)、)、或或#。注意:常规标识符不能是注意:常规标识符不能是T-SQL的保留字。常规标识符中不允许的保留字。常规标识符中不允许嵌入空格或其他特殊字符。嵌入空格或其他特殊字符。分隔标识符:包含在
15、双引号(分隔标识符:包含在双引号()或者方括号()或者方括号()内的常规标识)内的常规标识符或不符合常规标识符规则的标识符。符或不符合常规标识符规则的标识符。标识符允许的最大长度为标识符允许的最大长度为128个字符。符合常规标识符格式规则的个字符。符合常规标识符格式规则的标识符可以分隔,也可以不分隔。对不符合标识符规则的标识符必须标识符可以分隔,也可以不分隔。对不符合标识符规则的标识符必须进行分隔。进行分隔。第14页,共142页,编辑于2022年,星期一5.1.4变量变量(2)变量的分类。)变量的分类。SQLServer中变量可分为两类。中变量可分为两类。全局变量:全局变量由系统提供且预先声明
16、,通过在名称前加两全局变量:全局变量由系统提供且预先声明,通过在名称前加两个个“”来区别于局部变量。来区别于局部变量。T-SQL全局变量作为函数引用。例如,全局变量作为函数引用。例如,ERROR返回执行的上一个返回执行的上一个T-SQL语句的错误号;语句的错误号;CONNECTIONS返回自上次启动返回自上次启动SQLServer以来连接或试图连接的次数。全局变量的意义以来连接或试图连接的次数。全局变量的意义及使用请参考附录及使用请参考附录B。局部变量:局部变量用于保存单个数据值。例如,保存运算的中局部变量:局部变量用于保存单个数据值。例如,保存运算的中间结果,作为循环变量等。间结果,作为循环
17、变量等。当首字母为当首字母为“”时,表示该标识符为局部变量名;当首字母为时,表示该标识符为局部变量名;当首字母为“#”时,此标识符为一临时数据库对象名,若开头含一个时,此标识符为一临时数据库对象名,若开头含一个“#”,表示,表示局部临时数据库对象名;若开头含两个局部临时数据库对象名;若开头含两个“#”,表示全局临时数据库对,表示全局临时数据库对象名。象名。第15页,共142页,编辑于2022年,星期一5.2.3变量变量v2局部变量的使用局部变量的使用(1)局部变量的定义与赋值。)局部变量的定义与赋值。局部变量的定义。在批处理或过程中用局部变量的定义。在批处理或过程中用DECLARE语句声明局部
18、变量,所有局部变量在语句声明局部变量,所有局部变量在声明后均初始化为声明后均初始化为NULL。语法格式:。语法格式:DECLARElocal_variabledata_type=value,.n说明如下。说明如下。local_variable:局部变量名,应为常规标识符。前面的:局部变量名,应为常规标识符。前面的“”表示是局部变量。表示是局部变量。data_type:数据类型,用于定义局部变量的类型,可为系统类型或自定义类型。:数据类型,用于定义局部变量的类型,可为系统类型或自定义类型。=value:为变量赋值,值可以是常量或表达式,但它必须与变量声明类型匹配。:为变量赋值,值可以是常量或表达
19、式,但它必须与变量声明类型匹配。n:表示可定义多个变量,各变量间用逗号隔开。:表示可定义多个变量,各变量间用逗号隔开。局部变量的赋值。当声明局部变量后,可用局部变量的赋值。当声明局部变量后,可用SET或或SELECT语句为其赋值。语句为其赋值。用用SET语句赋值:语句赋值:将将DECLARE语句创建的局部变量设置为给定表达式的值。语法格式:语句创建的局部变量设置为给定表达式的值。语法格式:SETlocal_variableexpression第16页,共142页,编辑于2022年,星期一5.1.4变量变量【例例5.2】创建局部变量创建局部变量var1、var2并赋值,然后输出变量的值。并赋值,
20、然后输出变量的值。DECLAREvar1char(10),var2char(30)SETvar1=中国中国/*一个一个SET语句只能为一个变量赋值语句只能为一个变量赋值*/SETvar2=var1+是一个伟大的国家是一个伟大的国家SELECTvar1,var2GO执行结果如下:执行结果如下:第17页,共142页,编辑于2022年,星期一5.1.4变量变量【例例5.3】创建一个名为创建一个名为sex的局部变量,并在的局部变量,并在SELECT语句中使用该局部变量查找表语句中使用该局部变量查找表XSB中所中所有女同学的学号、姓名。有女同学的学号、姓名。USEPXSCJGODECLAREsexbit
21、SETsex=0SELECT学号学号,姓名姓名FROMXSBWHERE性别性别=sex执行结果如下:执行结果如下:第18页,共142页,编辑于2022年,星期一5.1.4变量变量【例例5.4】使用查询为变量赋值。使用查询为变量赋值。DECLAREstudentchar(8)SETstudent=(SELECT姓名姓名FROMXSBWHERE学号学号=081101)SELECTstudent用用SELECT语句赋值:语句赋值:语法格式:语法格式:SELECTlocal_variable=expression,n关于关于SELECT,需说明以下几点:,需说明以下几点:vSELECTlocal_va
22、riable通常用于将单个值返回到变量中。如果通常用于将单个值返回到变量中。如果expression为列名,为列名,则返回多个值,此时将返回的最后一个值赋给变量。则返回多个值,此时将返回的最后一个值赋给变量。v如果如果SELECT语句没有返回行,变量将保留当前值。语句没有返回行,变量将保留当前值。v如果如果expression是不返回值的标量子查询,则将变量设为是不返回值的标量子查询,则将变量设为NULL。v一个一个SELECT语句可以初始化多个局部变量。语句可以初始化多个局部变量。第19页,共142页,编辑于2022年,星期一5.1.4变量变量【例例5.5】使用使用SELECT语句为局部变量
23、赋值。语句为局部变量赋值。DECLAREvar1nvarchar(30)SELECTvar1=刘丰刘丰SELECTvar1ASNAME执行结果如下:执行结果如下:第20页,共142页,编辑于2022年,星期一5.1.4变量变量【例例5.6】为局部变量赋空值。为局部变量赋空值。DECLAREvar1nvarchar(30)SELECTvar1=刘丰刘丰SELECTvar1=(SELECT姓名姓名FROMXSBWHERE学号学号=089999)SELECTvar1ASNAME执行结果如下:执行结果如下:第21页,共142页,编辑于2022年,星期一5.1.4变量变量(2)局部游标变量的定义与赋值。
24、)局部游标变量的定义与赋值。局部游标变量的定义。局部游标变量的定义。语法格式:语法格式:DECLAREcursor_variable_nameCURSOR,.ncursor_variable_name是局部游标变量名,应为常规标识符。前是局部游标变量名,应为常规标识符。前面的面的“”表示是局部的。表示是局部的。CURSOR表示该变量是游标变量。表示该变量是游标变量。局部游标变量的赋值。利用局部游标变量的赋值。利用SET语句为一个游标变量赋值,语句为一个游标变量赋值,有三种情况:有三种情况:将一个已存在的并且赋值的游标变量的值赋给另一个局部游将一个已存在的并且赋值的游标变量的值赋给另一个局部游标
25、变量。标变量。将一个已声明的游标名赋给指定的局部游标变量。将一个已声明的游标名赋给指定的局部游标变量。声明一个游标,同时将其赋给指定的局部游标变量。声明一个游标,同时将其赋给指定的局部游标变量。第22页,共142页,编辑于2022年,星期一5.1.4变量变量上述三种情况的语法描述如下。上述三种情况的语法描述如下。语法格式:语法格式:SETcursor_variable=cursor_variable/*将一个已赋值的游标变量的值赋给将一个已赋值的游标变量的值赋给一个目标游标变量一个目标游标变量*/|cursor_name/*将一个已声明的游标名赋给游标变量将一个已声明的游标名赋给游标变量*/|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 PPT 讲稿
限制150内