欢迎来到天天文库
浏览记录
ID:48670879
大小:151.50 KB
页数:47页
时间:2020-01-24
《T-SQL编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、T-SQL编程1、T-SQL语言基础任务1使用T-SQL语句中的标识符、注释、变量、常量和表达式,编写简单的批处理。1、T-SQL语言基础1、标识符标识符是指用户在SQLServer中定义的服务器、数据库、数据库对象、变量和列等对象名称。SQLServer标识符分为常规标识符和分隔标识符两类。1、T-SQL语言基础常规标识符应遵守以下的命名规则:标识符长度可以为1-128个字符。对于本地临时表,标识符最多可以有116个字符。标识符的首字符必须为Unicode3.2标准所定义的字母或_、@、#符号。标识符第一个字符后面的字符可以为U
2、nicode3.2标准所定义的字符、数字或@、#、$、_符号。标识符内不能嵌入空格或其他特殊字符。标识符不能与SQLServer中的保留关键字同名。1、T-SQL语言基础分隔标识符允许在标识符中使用SQLServer保留关键字或常规标识符中不允许使用的一些特殊字符,这是由双引号或方括号分隔符进行分隔的标识符。符合标识符格式规则的标识符可以分隔,也可以不分隔。1、T-SQL语言基础2、批处理多条语句放在一起依次执行,称为批处理执行,批处理语句之间用GO分隔。这里的GO表示向SQLServer实用工具发出一批T-SQL语句结束的信号。
3、但并不是所有的T-SQL语句都可以组合成批处理,在使用批处理时有如下限制。规则和默认不能在同一个批处理中既绑定又使用。CHECK约束不能在同一个批处理中既定义又使用。在同一个批处理中不能删除对象又重新创建该对象。用SET语句改变的选项在批处理结束时生效。在同一个批处理中不能改变一个表再立即引用该表的新列。1、T-SQL语言基础【提示】GO不是T-SQL语句,它是sqlcmd和osql实用工具以及SSMS代码编辑器识别的命令。SQLServer实用工具将Go解释为应该向SQLServer实例发送当前批T-SQL语句的信号。当前批处理
4、由上一个GO命令后的所有语句组成。GO命令和T-SQL语句不能在同一行中,但在GO命令行中可包含注释。1、T-SQL语言基础3、注释注释是程序代码中不执行的文本字符串。在SQLServer中,可以使用两种类型的注释字符。“--”用于单行注释。“/**/”用于多行注释1、T-SQL语言基础4、输出语句PRINT语句。PRINT语句把用户定义的消息返回客户端,其基本语句格式如下所示:PRINT<字符串表达式>2、变量和运算符1、变量SQLServer中的变量分为局部变量和全局变量,其中全局变量是指由系统定义和维护,名称以@@字符开始的
5、变量。局部变量是指名称以一个@字符开始,由用户自己定义和赋值的变量。2、变量和运算符局部变量声明变量:T-SQL中使用DECLARE语句声明变量,并在声明后将变量的值初始化为NULL。在一个DECLARE语句中可以同时声明多个局部变量,它们相互之间用逗号分隔。DECLARE语句的基本语句格式如下:DECLARE{@变量名数据类型[(长度)]}[,…n]2、变量和运算符局部变量必须以@开头以区别字段名变量。变量名必须符合标识符的构成规则。变量的数据类型可以是系统类型,也可以是用户自定义类型,但不允许是text、ntext、image
6、类型。系统固定长度的数据类型不需要指定长度。2、变量和运算符变量赋值用SET、SELECT给局部变量赋值语法格式:SET@局部变量=表达式SELECT{@局部变量=表达式}[,…n]SET只能给一个变量赋值,而SELECT可以给多个变量赋值。两种格式可以通用,建议首选使用SET,而不推荐使用SELECT语句。2、变量和运算符表达式中可以包含SELECT语句子查询,但只能是集合函数返回的单值。且必须用圆括号括起来。SELECT也可以直接使用查询的单值结果给局部变量赋值。如:SELECT@局部变量=表达式或字段名FROM表名WHERE
7、条件2、变量和运算符【任务】使用@birthday存储出生日期,实用@age存储年龄,实用@name存储姓名。同时为所声明的@birthday变量赋值“1999-4-14”(使用set语句);然后将Student表中的学生的最大年龄赋值给变量@age(使用Select语句)。2、变量和运算符Declare@birthdaydatetimeDeclare@ageint,@namechar(8)Set@birthday=‘1994-4-14’UsedatabasenameSelect@age=max(age)fromstudentPr
8、int‘------变量的输出结果------’Print‘@birthday的值’Print@birthdayPrint‘最大年龄’Print@agePrint@name2、变量和运算符局部变量的作用域是在一个批处理、一个存储过程或一个触发器内,
此文档下载收益归作者所有