SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章

上传人:E**** 文档编号:89181187 上传时间:2019-05-20 格式:PPT 页数:86 大小:1.37MB
返回 下载 相关 举报
SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章_第1页
第1页 / 共86页
SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章_第2页
第2页 / 共86页
SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章_第3页
第3页 / 共86页
SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章_第4页
第4页 / 共86页
SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章》由会员分享,可在线阅读,更多相关《SQL Server2005数据库实用教程 教学课件 ppt 作者 常军林 ppt 第七章(86页珍藏版)》请在金锄头文库上搜索。

1、7.1 Transact-SQL概述 7.2 批处理及注释关系数据模型 7.3 变量 7.4 运算符及其优先级 7.5 函数 7.6 流程控制语句 7.7 游标 7.8 实训 函数、游标的创建和使用,7.1 Transact-SQL概述 SQL全称是“结构化查询语言(Structured Query Language)”,SQL是一种通用标准的数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 Transact-SQL(又称 T-SQL)是微软在SQL Server中对SQL的扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素,使其功能更

2、加强大。Transact-SQL对SQL Server十分重要,SQL Server中使用图形界面能够完成的所有功能,都可以利用Transact-SQL来实现。使用Transact-SQL操作时,与SQL Server通信的所有应用程序都通过向服务器发送Transact-SQL语句来进行,而与应用程序的界面无关。 Transact-SQL是ANSI标准SQL数据库查询语言的一个强大的实现。根据其完成的具体功能,可以将Transact-SQL语句分为四大类,分别为数据定义语句、数据操作语句、数据控制语句和一些附加的语言元素。,7.2 批处理及注释 7.2.1 批处理 批处理是包含一个或多个Tra

3、nsact-SQL语句的组,这些语句被应用程序作为一个整体提交给服务器,并在服务器端作为一个整体执行。 使用GO命令可以将批处理作为一个执行单元发送给SQL Server执行。 【例7-1】建立一个简单的批处理。 USE 学生图书管理系统 GO CREATE TABLE 图书 ( 图书名称 varchar(20) not null, 作者 varchar(12) ) GO INSERT INTO 图书VALUES (数据库技术,张阳) GO,建立批处理时应注意以下几项: CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CR

4、EATE SCHEMA、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其他语句组合使用。但CREATE DATEBASE、CREATE TABLE和CREATE INDEX例外。 不能在删除一个对象之后,在同一批处理中再次引用这个对象。 不能把规则和默认值绑定到表字段或者自定义字段上之后,立即在同一批处理中使用它们。 不能定义一个CHECK约束之后,立即在同一个批处理中使用。 不能修改表中一个字段名之后,立即在同一个批处理中引用这个新字段。 使用SET语句设置的某些SET选项不能应用于同一个批处理中的查询。 如果 EXECUTE 语句是批处理中的第一句,则不需要

5、 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。 批处理出现错误时SQL Server的处理方式:,SQL Server是以批处理为处理单位,当批处理中的语句有错误时,会根据不同情况采用以下处理方式。 (1) 如果批处理中的语句出现编译错误(比如语法错误),那么将不能生成执行计划,批处理中的任何一个语句都不会被执行。 (2) 如果批处理编译无误而开始执行后,若遇到较严重的执行错误(例如找不到指定的数据表),则会终止执行而返回错误信息。此时除了造成执行错误的语句外,排在此语句后面的所有语句也都不会执行,但之前已经正确执行的语句则不会被

6、取消。 (3) 如果执行中发生轻微错误(例如在添加或修改数据时违反数据表的约束),则只会取消该错误语句的执行,而该语句之后的语句仍会继续执行。 (4) 每个批处理都是独立执行的,并不会相互影响。即无论前一个批处理是否正确执行,下一个批处理仍会继续执行。 7.2.2 注释 注释是程序代码中不执行的文本字符串。它起到注解说明代码或暂时禁用正在进行诊断调试的部分语句和批处理的作用。注释能使得程序代码更易于维护和被读者所理解。 SQL Server支持两种形式的注释语句: 行内注释。 块注释。,1行内注释 语法格式: - text_of_comment 说明: text_of_comment:包含注释

7、文本的字符串。 【例7-2】利用行内注释对T-SQL语句作出解释说明。 -选择数据库【学生图书管理系统】。 USE 学生图书管理系统 -检索显示【图书信息】表中的所有记录。 SELECT * FROM 图书信息 2块注释 语法格式: / * text_of_comment * / 说明: text_of_comment:包含注释文本的字符串。 【例7-3】利用块注释对T-SQL语句作出解释说明。,/* 选择学生图书管理系统数据库。 显示图书信息表中所有的记录。 */ USE 学生图书管理系统 SELECT * FROM 图书信息 7.3 变量 在Transact-SQL中,变量属于标识符的一种

8、,就像每个人都要有个名字一样,在SQL Server中,每一项对象也都要有一个作为标识用的名称,这就是标识符。例如数据库名称、数据表名称、字段名称、变量名等等,这些名称统称为标识符。 变量的定义命名要符合标识符的命名规则: (1) 可用做标识符的字符。 英文字符:AZ或az,在SQL中是不用区分大小写的。 数字:09,但数字不得作为标识符的第一个字符。 特殊字符:_、#、$,但$不得作为标识符的第一个字符。 特殊语系的合法文字:例如中文文字也可作为标识符的合法字符。 (2) 标识符不能是SQL的关健词。例如“table”、“TABLE”、“select”、“SELECT”等都不能作为标识符。,

9、(3)不允许嵌入空格或_、#、$之外的其他特殊字符。 (4) 若对象名称不符合上述规则,只要在名称的前后加上中括号,该名称就变成合法标识符了。 (5) 标识符的长度可以是1128个字符。 (6) 标识符的第一个字符必须为英文字母、汉字、下划线、或者#。 7.3.1 变量的定义 SQL Server中的变量可以分为两大类:全局变量和局部变量。 1全局变量 全局变量以开头,由系统定义和维护,不能由用户创建,对用户来说是只读的,大部分的全局变量记录了SQL Server服务器的当前状态信息。全部变量是不可以赋值的。 下面是一些常用的全局变量: ERROR:其值为最后一次执行错误的SQL语句产生的错误

10、代码。 MAX_CONNECTIONS:其值为SQL SERVER允许多用户同时连接的最大数。 CONNECTIONS:SQL SERVER最近一次启动后已连接或尝试连接的次数。 VERSION :本地SQL SERVER服务器的版本信息。 CURSOR_ROWS:已打开游标中当前存在的记录行数。 FETCH_STATUS:得到游标的当前状态。 ROWCOUNT:前一条命令处理的行数。,【例7-4】使用全局变量ROWCOUNT,运行结果如图7-1所示。 USE 学生图书管理系统; SELECT * FROM 图书信息 WHERE 图书类别=计算机 ; IF ROWCOUNT0 PRINT 找到

11、记录; GO 图7-1 查询编辑运行结果,2局部变量 局部变量以开头,由用户定义和赋值,指在T-SQL批 处理和脚本中用来保存数据值的对象。此外,还允许用 TABLE数据类型的局部变量来代替临时表。 局部变量的作用域是在一个批处理、一个存储过程或一 个触发器内,其生命周期从定义开始到它遇到的第一个GO 语句或者到存储过程、触发器的结尾结束,即局部变量只在 当前的批处理、存储过程、触发器中有效。 定义局部变量: 语法: DECLARE 变量名 数据类型(长度) ,n ,说明: DECLARE关键字用于声明局部变量。 局部变量名称前面必须加上字符“”用于表明该变量为局部变量。 变量名必须符合标识符

12、的构成规则。 变量的数据类型可以是系统类型,也可以是用户自定义类型,但不允许是TEXT、NTEXT、IMAGE类型。 系统固定长度的数据类型不需要指定长度。 若要声明多个局部变量,请在定义的第一个局部变量后使用一个逗号,然后指定下一个局部变量名称和数据类型。 【例7-5】下面使用 DECLARE 语句创建局部变量。 DECLARE MyCounter int; DECLARE NAME CHAR(6); - 定义NAME为长度为6的字符型 DECLARE 家庭住址 VARCHAR(30) - 定义长度为30的变长字符型 DECLARE R INT , S DECIMAL(8.4); - 定义R

13、为整型,S为小数总长度8位 -其中小数4位,【例7-6】下面的 DECLARE 语句创建三个局部变量,名称分别为 LAST_NAME、FNAME 和 STATE,并 将每个变量初始化为 NULL: DECLARE LASTNAME NVARCHAR(30), FIRSTNAME NVARCHAR(20), STATE NCHAR (2); 注意:Transact-SQL语句允许使用“;”来分隔一行中不同的SQL指令。行尾后面的“;”可有可无。 例如:DECLARE w int; DECLARE w int 7.3.2 变量的赋值和使用 第一次声明变量时,其值设置为 NULL。若要为变量赋值,可

14、以使用 SET 语句。这是为变量赋值的首选方法。也 可以通过 SELECT 语句的选择列表中当前所引用值为变量赋值。 1.通过SET赋值 语法: SET 局部变量= 表达式 说明: SET是赋值语句关键字,说明该语句是赋值语句。 不能在同一个SET语句中给多个变量赋值。 【例7-7】定义局部变量MyVariable,使用SET语句为其赋值: DECLARE MyVariable int SET MyVariable = 1 【例7-8】定义局部变量MyVariable,使用SET语句为其赋值,检索图书信息表中定价大于26的记录,运行结果如 图7-2所示。,USE 学生图书管理系统 DECLAR

15、E MyVariable int SET MyVariable =26 SELECT * FROM 图书信息 WHERE 定价MyVariable GO 图7-2 运行结果,2.通过SELECT赋值 语法: SELECT 局部变量= 表达式 ,n FROM 表名 WHERE 条 件表达式 说明: SELECT 局部变量通常用于将单个值返回到变量中。但是,如果表达式是列的名称,则可返回多个值。如果 SELECT 语句返回多个值,则将返回的最后一个值赋给变量。 如果 SELECT 语句没有返回行,变量将保留当前值。如果表达式是不返回值的标量子查询,则将变量设为 NULL。 一个 SELECT 语句

16、可以初始化多个局部变量。,【例7-9】定义变量var1,使用SELECT赋初值,运行结果如图7-3所示。 USE 学生图书管理系统 GO DECLARE var1 nvarchar(30) SELECT var1 = 张三 SELECT var1 = 作者 FROM dbo.图书信息 WHERE 图书编号 = 100002 ; SELECT var1 图书编号100002的作者为: GO 图7-3 运行结果,7.4 运算符及其优先级 运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。表7-1列出了 SQL Server 2005 所使用的运算符类别。 表7-1 SQL Server 2005运算符类别,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号