数据库技术

上传人:jiups****uk12 文档编号:45919611 上传时间:2018-06-20 格式:PPT 页数:42 大小:716KB
返回 下载 相关 举报
数据库技术_第1页
第1页 / 共42页
数据库技术_第2页
第2页 / 共42页
数据库技术_第3页
第3页 / 共42页
数据库技术_第4页
第4页 / 共42页
数据库技术_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《数据库技术》由会员分享,可在线阅读,更多相关《数据库技术(42页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 2005第8章 T-SQL编程与应用 目标:n 掌握T-SQL语言基础 n掌握表达式的使用n掌握流程控制语句的使用n熟练掌握CASE表达式的应用n学会使用游标SQL Server 20058.1 T-SQL语言基础T-SQL语言的编程功能1标 识 符2注 释3SQL Server 20058.1.1T-SQL语言的编程功能l 基本功能支持ANSI SQL-92标准:DDL,DML,DCL,DDl 扩展功能加入程序流程控制结构加入局部变量,系统变量等SQL Server 20058.1.2 标识符标识符分类常规标识符(严格遵守标识符格式规则) 界定标识符(引号或方括号)标识

2、符格式规则字母或_、开头的字母数字或_、$序列 不与保留字相同 长度小于128*不符合规则的标识符必须加以界定(双引号”或方括号)对象命名规则服务器名.数据库名.拥有者名.对象名SQL Server 20058.1.3注释不执行语句。作用:解释说明暂不执行l注释多行/* */* fshjhfjkshfjsdhfsdjffsjdkfljskdlfjkldsfjkdslfjfjfj */注释单行-ghjfghkfdjhgkfhgjfdhgkgjfdhSQL Server 20058.1.4 数据类型 在 SQL Server 2005 中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。数

3、据类型是一种属性,用于指定对象可保存的数据的类型:整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等。第5章已进行了较为详细的介绍,此处不再赘述。SQL Server 20058.2 表达式常量变量函数运算符SQL Server 20058.2.1 常量 常量,文字值或标量值,是表示一个特定数据值的符号。 常量的格式取决于它所表示值的数据类型。SQL Server 20058.2.2 变量l 局部变量局部变量:用户自定义的变量,其作用范围仅在程序内部。局部变量用DECLARE语句声明,用SELECT或SET语句赋值。DECLARE 变量名 数据类型,变量名 数据类型变量名必须以 at

4、 符 () 开头,必须先用DECLARE声明后才能使用。SQL Server 20058.2.2 变量赋值 格式:SELECT 变量名=表达式/SELECT 子句(最后一个值或空) 例8-1:SELECT命令赋值,执行脚本 USE Library GO DECLARE var1 varchar(8) -声明局部变量 SELECT var1=读者姓名 -为局部变量赋值 SELECT var1=Rname -查询结果赋值给变量 FROM Reader WHERE RID=2003216008 SELECT var1 as 读者姓名 -显示局部变量结果 执行结果:SQL Server 20058.2

5、.2 变量n 例8-2:SELECT命令赋值,多个返回值中取最后一个USE LibraryDECLARE var1 varchar(8)SELECT var1=读者姓名SELECT var1=Rname -查询结果赋值FROM ReaderSELECT var1 AS 读者姓名 -显示局部变量的结果执行结果:n 格式:SET 变量名=表达式SQL Server 20058.2.2 变量n 例8-3:SET命令赋值执行结果:USE LibraryDECLARE no varchar(10) SET no=2004060003 -变量赋值SELECT RID,RnameFROM ReaderWHE

6、RE RID=noGOSQL Server 20058.2.2 变量l 全局变量 变量名 全局变量是SQL Server系统提供并赋值的变量。 例8-4:显示SQL Server的版本。SQL Server 20058.2.3 函数SQL Server 2005 提供了一些内置函数,用户可以使用这些函数方便的实现一些功能。以下举例说明一些常用的函数,其他函数请参考联机手册。P93聚合函数COUNT ,SUM ,AVG,MAX,MIN在第6章介绍过。 例:查询出图书中价格最高的图书 USE Library GO SELECT MAX(Price) FROM BookSQL Server 2005

7、8.2.3 函数日期时间函数DATEADD():返回加上一个时间的新时间DECLARE OLDTime datetimeSET OLDTime=24 March 2006 3:00 PMSELECT DATEADD(hh,4,OldTime)SQL Server 20058.2.3 函数DATEDIFF():两时间之差 DECLARE FirstTime datetime, SecondTime datetime SET FirstTime=24 March 2006 3:00 PM SET SecondTime=24 March 2006 3:33 PM SELECT DATEDIFF(ms

8、,FirstTime,SecondTime)SQL Server 20058.2.3 函数 DATENAME()返回年月日星期等字符串。DECLARE StatementDate datetimeSET StatementDate=24 March 2006 3:00 PMSELECT DATENAME(dw,StatementDate)SQL Server 20058.2.3 函数 DATEPART()返回部分日期 DECLARE WhatsTheDay datetime SET WhatsTheDay=23 March 2007 3:00 PM SELECT CAST(DATEPART(y

9、yyy,WhatsTheDay) AS char(4)+年 + CAST(DATEPART(mm,WhatsTheDay) AS char(2)+月+ CAST(DATEPART(dd,WhatsTheDay) AS varchar(2)+日 SQL Server 20058.2.3 函数字符函数 ASCII() DECLARE StringTest char(10)SET String Test=ASCII(Robin )SELECT StringTest CHAR() DECLARE StringTest char(10)SET StringTest=ASCII(Robin )SELECT

10、 CHAR(StringTest)SQL Server 20058.2.3 函数 LEFT() DECLARE StringTest char(10) SET StringTest=Robin SELECT LEFT(StringTest,3) LOWER() DECLARE StringTest char(10) SET StringTest=Robin SELET LOWER(LEFT(StringTest,3) LTRIM() DECLARE StringTest char(10) SET StringTest= Robin SELECT Start-+LTRIM(StringTest)

11、,Start- +StringTestSQL Server 20058.2.3 函数 RIGHT() DECLARE StringTest char(10) SET StringTest= Robin SELECT RIGHT(StringTest,3) RTRIM() DECLARE StringTest char(10) SET StringTest=Robin SELECT StringTest+-End,RTRIM(StringTest)+-End STR() SELECT A+82 SELECT A+STR(82) SELECT A+LTRIM(STR(82)SQL Server 2

12、0058.2.3 函数 SUBSTRING() DECLARE StringTest char(10) SET StringTest=Robin SELECT SUBSTRING(StringTest,3,LEN(StringTest) UPPER() DECLARE StringTest char(10) SET StringTest=Robin SELECT UPPER(StringTest)SQL Server 20058.2.3 函数 4. 空值置换函数ISNULL(空值,指定的空值),用指定的值代替空值。 USE Library GO SELECT Lendnum,ISNULL(Le

13、ndnum,0) AS 空值置换 FROM Reader WHERE ISNULL(Lendnum,0)=0 GO 查询结果:SQL Server 20058.2.4运算符运算符类别 所包含运算符 赋值运算符 =(赋值) 算术运算符 +(加)、-(减)、*(乖)、/(除)、%(取模)按位运算符 &(位与)、|(位或)、(位异或)字符串串联运算符 (连接)比较运算符 =(等于)、(大于)、=(大于等于)、( 或!=不等于)、!(不大于)逻辑运算符all(所有)、and(与)、any(任意一个)、between(两者 之间)、exists(存在)、in(在范围内)、like(匹配)、not(非)、

14、or(或)、some(任意一个)一元运算符、+(正)、-(负)、(取反)SQL Server 20058.3流程控制语句 T-SQL 语言支持基本的流控制逻辑,它允许按照给定的某种条件执行程序流和分支,T-SQL 提供的控制流有: IFELSE分支,CASE多重分支,WHILE循环结构,GOTO语句,WAITFOR语句和RETURN语句。SQL Server 20058.3.1 IFELSE语句 制定 T-SQL 语句的执行条件。如果满足条件,则在 IF 关键字及其条件之后执行 T-SQL 语句:布尔表达式返 回 TRUE。可选的 ELSE 关键字引入另一个 T-SQL 语句 ,当不满足 IF

15、 条件时就执行该语句:布尔表达式返回 FALSE。 语法: IF Boolean_expression /* 条件表达式 */ sql_statement | statement_block /* 条件表达式为 TRUE时执行 */ ELSE sql_statement | statement_block /* 条件表达式为 FALSE时执行 */SQL Server 20058.3.1 IFELSE语句 例89:IF查询图书中有没有英语书。USE LibraryGO-如果图书中有英语书,统计其数量,否则显示没有英语书IF exists(SELECT * FROM Book WHERE Bname=英语) SELECT COUNT(*) AS 英语图书数量FROM BookWHERE Bname=英语ELSEPRINT 数据库中没有英语

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

当前位置:首页 > 行业资料 > 其它行业文档

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