补充内容Transact-SQL语言

上传人:宝路 文档编号:48187830 上传时间:2018-07-11 格式:PPT 页数:72 大小:478.36KB
返回 下载 相关 举报
补充内容Transact-SQL语言_第1页
第1页 / 共72页
补充内容Transact-SQL语言_第2页
第2页 / 共72页
补充内容Transact-SQL语言_第3页
第3页 / 共72页
补充内容Transact-SQL语言_第4页
第4页 / 共72页
补充内容Transact-SQL语言_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《补充内容Transact-SQL语言》由会员分享,可在线阅读,更多相关《补充内容Transact-SQL语言(72页珍藏版)》请在金锄头文库上搜索。

1、Transact-SQL语言1. T-SQL语言简介 2. T-SQL编程 3. T-SQL提供的函数 4. T-SQL游标 5. T-SQL存储过程 6. 触发器 7. 函数T-SQL,即事务SQL(Transact-SQL),是MS SQL Server和Sybase对标准SQL的扩展版本,它不仅与ANSI SQL标准兼容,还在存储过程等许多方面作了扩充和增强。本节 主要介绍如下几个问题:一.T-SQL语言简介u T-SQL的存储过程:由SQL语句组成,分系统存储过程和用 户自定义存储过程。由三部分组成,即:SQL语句、函数和存储过程。 u T-SQL的子语言:即DDL 、DML和DCL三

2、个子语言。 u T-SQL的函数:系统函数、聚集函数、数学函数、字符串函 数、数据类型转换函数和日期函数等。1. T-SQL组成2. T-SQL的数据类型SQL Server有两类数据类型:系统数据类型和用户自定义类型。 T-SQL系统数据类型(1/2)类型数值范围bigint从 -263 到 263-1 的整型数据(所有数字)。int从 -231 到 231-1 的整型数据(所有数字)。smallint从 -215 到 215-1 的整型数据(所有数字)。tinyint从 0 到 255 的整数数据。bit1 或 0 的整数数据。decimal(numeric)从 -1038 +1 到 10

3、38 1 的固定精度和小数位的数字数据。money 货币数据值介于 -263 与 263 - 1 之间,精确到货币单 位的 千分之十。 datetime从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间 数据,精确 到百分之三秒。 smalldatetime从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。T-SQL系统数据类型(2/2)类型数值范围 float从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。 real从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。 cha

4、r固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。 varchar可变长度的非 Unicode 数据,最长为 8,000 个字符。 text可变长度的非 Unicode 数据,最大长度为 231 - 1 个字符。 nchar固定长度的 Unicode 数据,最大长度为 4,000 个字符。 nvarchar可变长度 Unicode 数据,其最大长度为 4,000 字符。ntext可变长度 Unicode 数据,其最大长度为 230 - 1 个字符。 binary固定长度的二进制数据,其最大长度为 8,000 个字节。 varbinary可变长度的二进制数据,其最大长度为

5、 8,000 个字节。 image可变长度的二进制数据,其最大长度为 231 - 1 个字节。用户自定义类型利用SQL Server的系统数据类型,可定义用户自定义类型。u 具体方法利用系统存储过程sp_addtype、sp_droptype和sp_help, 分别创建、删除和查看用户定义类型。u sp_addtype命令语法:sp_addtype 类型名, 系统数据类型名, 属性关于数据的说明:属性有3种选择。 。NULL:允许列为空值 。NOT NULL:不允许列为空值 。IDENTITY:指定列为标识列,每张表只能有一个标 识列。IDENTITY ( seed , increment )

6、 用户自定义类型(续)u sp_addtypeEXEC sp_addtype notes, text, NULLEXEC sp_addtype test, char(2), NOT NULLu sp_droptype命令语法:sp_addtype 类型名u sp_help命令语法:sp_help 类型名(1) 概念 由多条T-SQL语句组成,类似于DOS中的批命令,通 过一个“批”将多条SQL语句用一个GO命令提交给服务器, 由服务器按一个“事务”来执行该批。(2)两种类型u 交互批:在交互使用SQL命令的环境中,用GO作为一个批的结束,并提交系统执行。交互方式下,一次只能提交一 个批。u 文

7、件批:将多个批放在一个文件中,提交给系统执行, 其中的每个批均以GO结束。大多数的SQL语句可放在一个批中。SQL Server中的批用“变量名”表示,一般由用户定义和使用。定义语法如 下:2.注释(Comment)方式(1) 多行时,用 /* . */ (2) 单行时,用 -3.变量DECLARE 变量名 类型 , n(1) 局部变量u 说明(1) 变量一旦定义,系统自动赋NULL值。(2) 对局部变量的赋值用SELECT语句。u 示例:4-19DECLARE myqty int, msg varchar(40)(1) 局部变量(续)u 两种赋值方式直接赋值方式: SELECT/SET 变量

8、名=值例如:select myqty=60间接赋值方式: 从表中取值赋给变量,但应保证类型一 致。若从表中返回的是多个值,则取最后一个值赋给变量 。例如:SELECT s=price FROM titles WHERE title_id=bu395u 查看变量值SELECT 变量名表示及概念: 变量名 ,由系统定义,用户可使用 之。作用:用于指明系统运行过程中的运行状态,用户只 能引用,不能修改和定义。(2) 全局变量常用的全局变量 : error:返回最后一个语句产生的错误码。 rowcount:返回语句执行后受影响的行数。 version:SQL SERVER版本号。 trancount:

9、事务计数。 FETCH_STATUS:返回被 FETCH 语句执行的最 后游标的状态。4.流程控制语句(1) IF (条件关系式) ELSE IF注意:如果关系式含有SELECT语句,则该SELECT语句须用圆括号 括起,其嵌套级别最多为150。u 用途及用法条件分支,同一般高级语言中的条件分支语句用法。u 举例:IF (SELECT AVG(price) FROM titles)=20UPDATE titles SET price=price*1.3ELSEPRINT 平均价格未知! (2) BEGIN . END u 用途及用法用于界定由多条SQL语句组成的语句块。类似于C/C+中的“ ”

10、 或PASCAL语言中的“BEGINEND”的用法。 u 举例:DECLARE avg_price money SELECT avg_price=AVG(price) FROM titles IF avg_price 30BREAKEND SELECT title_id, price FROM titles4.流程控制语句(4) GOTO .:跳到用户定义的标号处;建议尽量少用。 (5) RETURN:无条件退出;同C/C+中RETURN的用法。 (6) IF NOT EXISTS:判断是否有数据存在 。语法如下:IF NOT EXISTS (SELECT 语句)语句块示例:IF NOT EX

11、ISTS使用示例。 IF NOT EXISTS (SELECT * FROM titlesWHERE title_id=010101)BEGINPRINT 没有010101的任何记录RETURNEND5.信息显示(7) WAITFOR:延迟某段时间 示例:WAITFOR DELAY 00:30:00 /* 延迟30分钟 */ 语法:WAITFOR DELAY 日期时间格式的时间值| TIME 时间 | (1) Print .(2) Print msg 作用:显示局部变量的值DECLARE PrintMessage NVARCHAR(50); SET PrintMessage = NThis m

12、essage was printed on + RTRIM(CAST(GETDATE() AS NVARCHAR(30) + N.; PRINT PrintMessage; 4.流程控制语句6.RAISERROR用途:系统有很多系统信息及其代码(代码值在20000以下),用户也可用RAISERROR,自己定义错误信息及其代码(其代码值应在20000以上)。 语法:RAISERROR 错误代码 错误信息 | 局部变量 , 参数表举例:RAISEERROR使用示例。DECLARE table_name varchar(30)SELECT table_name=TITLERAISERROR 9999

13、9 表%1!不存在。,table_name 说明: 错误代码将放入全局变量error中,且须大于20000 局部变量的类型须为char或varchar,错误信息长度小于255三.T-SQL提供的函数1.字符串操作(1) 连接操作 “+”T-SQL提供的函数包括:字符串函数、日期函数、数据类型 转换函数、数学函数、聚集函数和系统函数等。这些函数在DML的各语句中被广泛使用。u 用途:使用“+” 连接字符串。结果字符串最大不超过255个字符。u 示例:China+,+Chengdu=China, Chengdu(2) 字符串函数Substring、right、upper、char、space2.类

14、型转换注:“”表示本身类型的转换;“i”表示隐式转换;“e”表示 显式转换realfloatcharvarcharmoneyrealieeIfloatieeIchareeiievarchareeiiemoneyiiiiSQL Server中的类型转换分两种,即:显式(Explict)和隐式 (Implict)。显式用convert函数转换,隐式由系统自动进行。下表 是SQL Server的类型转换。(2) 显式转换作用:将表达式按指定风格转换成指定的类型,其中的style 只用于日期类型到字符串的转换,用于指定日期时间 的输出格式。其他类型,则省略style参数。语法:convert(类型符,

15、表达式,style)(1) 隐式转换2.类型转换显式转换需使用convert函数。style取值输出格式2yy.mm.dd 3dd/mm/yy 4dd.mm.yy 5dd-mm-yy 102yyyy.mm.dd 103dd/mm/yyyy 104dd.mm.yyyy 105dd-mm-yyyy示例: SELECT convert(char(10),pubdate,105) FROM titlesWHERE title_id=PC1035其中,pubdate为日期型,返回值为字符型30-06-1986。3.有关日期的几个函数 (1) getdate()(2) datename()与datepart() datename(日期元素,日期表达式):以字符串形式返回日期元素 指定的日期的名字。用途:将服务器OS的时间送客户机。示例:SELECT getdate()datepart(日期元素,日期表达式):以数字形式返回日期元素指定 的日期的名字。 日期元素是什么呢?日期元素及其指定返回的日期部分为:示例:Select datename(mm,pubdate) from titiles where

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

当前位置:首页 > 中学教育 > 教学课件

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