T-SQL编程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
T-SQL编程 7
1、 T-SQL 语言基础 、
3、注释 、 注释是程序代码中不执行的文本字符串。 注释是程序代码中不执行的文本字符串。 在SQL Server中,可以使用两种类型的 中 注释字符。 注释字符。
用于单行注释。 “--”用于单行注释。 用于单行注释 “/* */”用于多行注释 用于多行注释
Байду номын сангаас
T-SQL编程
17
2、 变量和运算符 、
全局变量 全局变量是由系统提供的有确定值的变量, 全局变量是由系统提供的有确定值的变量,用户不能自己定义全局 变量,也不能用SET语句来修改全局变量的值。 语句来修改全局变量的值。 变量,也不能用 语句来修改全局变量的值 系统全局变量都是以@@开头的,全局变量实际上是一些特殊的不 开头的, 系统全局变量都是以 开头的 需要参数、也不需要加括号调用的函数,可直接返回特定的值。 需要参数、也不需要加括号调用的函数,可直接返回特定的值。例 如:
BEGIN 语句1 语句 语句2 语句 … END 不论多少个语句,放在BEGIN…END中间就构成一个独立的语 不论多少个语句,放在 中间就构成一个独立的语 句块,被系统当作一个整体单元来处理。 句块,被系统当作一个整体单元来处理。 条件的某个分支或循环体语句中, 条件的某个分支或循环体语句中,如果要执行两个以上的复合 语句,则必须将它们放在BEGIN…END中间。 中间。 语句,则必须将它们放在 中间
SELECT @局部变量 表达式或字段名 局部变量=表达式或字段名 局部变量 FROM 表名 WHERE 条件
T-SQL编程
14
2、 变量和运算符 、
存储出生日期, 【任务】使用@birthday存储出生日期, 任务】使用 存储出生日期 实用@age存储年龄,实用 存储年龄, 实用 存储年龄 实用@name存储姓 存储姓 同时为所声明的@birthday变量赋值 名。同时为所声明的 变量赋值 语句); “1999-4-14”(使用 (使用set语句);然后将 语句);然后将 Student表中的学生的最大年龄赋值给变 表中的学生的最大年龄赋值给变 语句)。 量@age(使用 (使用Select语句)。 语句
T-SQL编程
4
1、 T-SQL 语言基础 、
分隔标识符允许在标识符中使用SQL 分隔标识符允许在标识符中使用 Server保留关键字或常规标识符中不允许 保留关键字或常规标识符中不允许 使用的一些特殊字符, 使用的一些特殊字符,这是由双引号或方 括号分隔符进行分隔的标识符。 括号分隔符进行分隔的标识符。 符合标识符格式规则的标识符可以分隔, 符合标识符格式规则的标识符可以分隔, 也可以不分隔。 也可以不分隔。
T-SQL编程
5
1、 T-SQL 语言基础 、
2、批处理 、
多条语句放在一起依次执行,称为批处理执行, 多条语句放在一起依次执行,称为批处理执行,批处理 语句之间用GO分隔。这里的 分隔。 表示向SQL Server实用 语句之间用 分隔 这里的GO表示向 表示向 实用 工具发出一批T-SQL语句结束的信号。但并不是所有的 语句结束的信号。 工具发出一批 语句结束的信号 T-SQL语句都可以组合成批处理,在使用批处理时有如 语句都可以组合成批处理, 语句都可以组合成批处理 下限制。 下限制。 规则和默认不能在同一个批处理中既绑定又使用。 规则和默认不能在同一个批处理中既绑定又使用。 CHECK约束不能在同一个批处理中既定义又使用。 约束不能在同一个批处理中既定义又使用。 约束不能在同一个批处理中既定义又使用 在同一个批处理中不能删除对象又重新创建该对象。 在同一个批处理中不能删除对象又重新创建该对象。 语句改变的选项在批处理结束时生效。 用SET语句改变的选项在批处理结束时生效。 语句改变的选项在批处理结束时生效 在同一个批处理中不能改变一个表再立即引用该表的 新列。 新列。
T-SQL编程
10
2、 变量和运算符 、
局部变量 声明变量: 中使用DECLARE语句 声明变量:T-SQL中使用 中使用 语句 声明变量, 声明变量,并在声明后将变量的值初始化 为NULL。在一个 。在一个DECLARE语句中可以同 语句中可以同 时声明多个局部变量, 时声明多个局部变量,它们相互之间用逗 号分隔。 号分隔。DECLARE语句的基本语句格式 语句的基本语句格式 如下: 如下:
T-SQL编程 16
2、 变量和运算符 、
局部变量的作用域是在一个批处理、 局部变量的作用域是在一个批处理、一个存储过 程或一个触发器内, 程或一个触发器内,其生命周期从定义开始到它 遇到的第一个GO语句或者到存储过程、触发器 语句或者到存储过程、 遇到的第一个 语句或者到存储过程 的结尾结束,即局部变量只在当前的批处理、 的结尾结束,即局部变量只在当前的批处理、存 储过程、触发器中有效。 储过程、触发器中有效。 如果在批处理、存储过程、 如果在批处理、存储过程、触发器中使用其他批 处理、存储过程、触发器定义的变量, 处理、存储过程、触发器定义的变量,则系统出 现错误并提示“必须声明变量” 现错误并提示“必须声明变量”。
@@error:其值为最后一次执行错误的SQL语句产生的错误代码 :其值为最后一次执行错误的 语句产生的错误代码 @@max_connections:其值为 :其值为SQL Server允许多用户同时连接的 允许多用户同时连接的 最大数 @@connections:SQL Server最近一次启动后已连接或尝试连接的 : 最近一次启动后已连接或尝试连接的 次数 @@version :本地 本地SQL Server服务器的版本信息 服务器的版本信息 @@cursor_rows:已打开游标中当前存在的记录行数 : @@FETCH_STATUS得到游标的当前状态 得到游标的当前状态
T-SQL编程 编程
T-SQL编程
1
1、 T-SQL 语言基础 、
任务1 任务
使用T-SQL语句中的标识符、注释、变量、常 语句中的标识符、注释、变量、 使用 语句中的标识符 量和表达式,编写简单的批处理。 量和表达式,编写简单的批处理。
T-SQL编程
2
1、 T-SQL 语言基础 、
1、标识符 、
标识符是指用户在SQL Server中定义的服务 标识符是指用户在 中定义的服务 数据库、数据库对象、 器、数据库、数据库对象、变量和列等对象名 称。SQL Server标识符分为常规标识符和分 标识符分为常规标识符和分 隔标识符两类。 隔标识符两类。
T-SQL编程
3
1、 T-SQL 语言基础 、
常规标识符应遵守以下的命名规则: 常规标识符应遵守以下的命名规则:
标识符长度可以为1-128个字符。对于本地临时表, 个字符。对于本地临时表, 标识符长度可以为 个字符 标识符最多可以有116个字符。 个字符。 标识符最多可以有 个字符 标识符的首字符必须为Unicode3.2标准所定义的字 标识符的首字符必须为 标准所定义的字 母或_、 、 符号 符号。 母或 、@、#符号。 标识符第一个字符后面的字符可以为Unicode3.2标 标识符第一个字符后面的字符可以为 标 准所定义的字符、数字或@、#、$、_符号。 准所定义的字符、数字或 、 、 、 符号。 符号 标识符内不能嵌入空格或其他特殊字符。 标识符内不能嵌入空格或其他特殊字符。 标识符不能与SQL Server中的保留关键字同名。 中的保留关键字同名。 标识符不能与 中的保留关键字同名
T-SQL编程
12
2、 变量和运算符 、
变量赋值 用SET、SELECT给局部变量赋值 、 给局部变量赋值
语法格式: 局部变量=表达式 语法格式:SET @局部变量 表达式 局部变量 SELECT { @局部变量 表达式 } [ ,…n ] 局部变量=表达式 局部变量 SET只能给一个变量赋值,而SELECT可以给 只能给一个变量赋值, 只能给一个变量赋值 可以给 多个变量赋值。 多个变量赋值。 两种格式可以通用,建议首选使用SET,而不 两种格式可以通用,建议首选使用 , 推荐使用SELECT语句。 语句。 推荐使用 语句
T-SQL编程 6
1、 T-SQL 语言基础 、
【提示】 提示】
GO不是 不是T-SQL语句,它是 语句, 不是 语句 它是sqlcmd和osql实 和 实 用工具以及SSMS代码编辑器识别的命令。 用工具以及 代码编辑器识别的命令。 代码编辑器识别的命令 SQL Server实用工具将 解释为应该向 实用工具将Go解释为应该向 实用工具将 解释为应该向SQL Server实例发送当前批 实例发送当前批T-SQL语句的信号。 语句的信号。 实例发送当前批 语句的信号 当前批处理由上一个GO命令后的所有语句组 当前批处理由上一个 命令后的所有语句组 成。 GO命令和 命令和T-SQL语句不能在同一行中,但在 语句不能在同一行中, 命令和 语句不能在同一行中 GO命令行中可包含注释。 命令行中可包含注释。 命令行中可包含注释
T-SQL编程
15
2、 变量和运算符 、
Declare @birthday datetime Declare @age int, @name char(8) Set @birthday = ‘1994-4-14’ Use databasename Select @age=max(age),@name=Sname from student Print ‘------变量的输出结果 变量的输出结果------’ 变量的输出结果 Print ‘@birthday的值’ 的值’ 的值 Print @birthday Print ‘最大年龄’ 最大年龄’ 最大年龄 Print @age Print @name
1、变量 、
SQL Server中的变量分为局部变量和全局变 中的变量分为局部变量和全局变 其中全局变量是指由系统定义和维护, 量,其中全局变量是指由系统定义和维护,名 称以@@字符开始的变量。局部变量是指名称 字符开始的变量。 称以 字符开始的变量 以一个@字符开始 字符开始, 以一个 字符开始,由用户自己定义和赋值的 变量。 变量。
T-SQL编程
18
3、 T-SQL流程控制语句 、 流程控制语句
流程控制语句是控制程序执行的命令, 流程控制语句是控制程序执行的命令,比如条件控制语 无条件控制语句、循环语句等, 句、无条件控制语句、循环语句等,可以实现程序的结 构性和逻辑性,以完成比较复杂的操作。 构性和逻辑性,以完成比较复杂的操作。 1、顺序控制语句 、顺序控制语句BEGIN…END语句块 语句块
T-SQL编程
8
1、 T-SQL 语言基础 、
4、输出语句 、 PRINT语句。PRINT语句把用户定义的消 语句。 语句 语句把用户定义的消 息返回客户端,其基本语句格式如下所示: 息返回客户端,其基本语句格式如下所示:
PRINT <字符串表达式 字符串表达式> 字符串表达式
T-SQL编程
9
2、 变量和运算符 、
T-SQL编程 13
2、 变量和运算符 、
表达式中可以包含SELECT语句子查询, 语句子查询, 表达式中可以包含 语句子查询 但只能是集合函数返回的单值。 但只能是集合函数返回的单值。且必须用 圆括号括起来。 圆括号括起来。 SELECT也可以直接使用查询的单值结果 也可以直接使用查询的单值结果 给局部变量赋值。 给局部变量赋值。 如:
DECLARE { @变量名 数据类型 长度 长度)] } 变量名 数据类型[(长度 [ ,…n ]
T-SQL编程
11
2、 变量和运算符 、
局部变量必须以@开头以区别字段名变量。 局部变量必须以 开头以区别字段名变量。 开头以区别字段名变量 变量名必须符合标识符的构成规则。 变量名必须符合标识符的构成规则。 变量的数据类型可以是系统类型, 变量的数据类型可以是系统类型,也可以是用户 自定义类型,但不允许是text、ntext、image 自定义类型,但不允许是 、 、 类型。 类型。 系统固定长度的数据类型不需要指定长度。 系统固定长度的数据类型不需要指定长度。
相关文档
最新文档