SELECT @StringTest select char(@StringTest)
(3)LEFT()
返回从字符串左边开始指定个数的字符。
DECLARE @StringTest char(10) SET @StringTest='Robin ' SELECT LEFT(@StringTest,3)
(4)LOWER()
将大写字符数据转换为小写字符数据后返回字符表达式
DECLARE @StringTest char(10) SET @StringTest='Robin '
SELECT LOWER(LEFT(@StringTest,3))
(5)LTRIM()
删除起始空格后返回字符表达式
DECLARE @StringTest char(10) SET @StringTest=' Robin'
SELECT 'Start-'+LTRIM(@StringTest),'Start-'+@StringTest
(6)RIGHT()
返回字符串中从右边开始指定个数的 integer_expression 字符。
DECLARE @StringTest char(10) SET @StringTest=' Robin' SELECT RIGHT(@StringTest,3)
(7)RTRIM()
截断所有尾随空格后返回一个字符串。
DECLARE @StringTest char(10) SET @StringTest='Robin'
SELECT @StringTest+'-End',RTRIM(@StringTest)+'-End'
(8)STR()
由数字数据转换来的字符数据。
SELECT 'A'+82
SELECT 'A'+'82'
SELECT 'A'+STR(82)
SELECT 'A'+LTRIM(STR(82))
(9)SUBSTRING() 求子串函数
DECLARE @StringTest char(10) SET @StringTest='Robin '
SELECT SUBSTRING(@StringTest,3,LEN(@StringTest))
(10)UPPER()
返回将小写字符数据转换为大写的字符表达式。
DECLARE @StringTest char(10) SET @StringTest='Robin ' SELECT UPPER(@StringTest)
4. 空值置换函数ISNULL(空值,指定的空值),用指定的值代替空值。 USE Library GO
SELECT Lendnum,ISNULL(Lendnum,0) AS 空值置换 FROM Reader
WHERE ISNULL(Lendnum,0)=0 查询结果:
6.2.5 运算符
SQL Server 2005的运算符和其他高级语言类似,用于指定要在一个或多个表达式中执行的操作,将变量、常量和函数连接起来。
优先级 1 2 3 4 5 6 7 8 9 运算符类别 一元运算符 算术运算符 所包含运算符 +(正)、-(负)、~(取反) *(乖)、/(除)、%(取模) =(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、<>( 或!=不等于)、!<(不小于)、!>(不大于) &(位与)、|(位或)、^(位异或) not(非) and(与) all(所有)、any(任意一个)、between(两者之间)、exists(存在)、in(在范围内)、like(匹配)、or(或)、some(任意一个) =(赋值) 算术字符串运算符 +(加)、-(减)、+(连接) 比较运算符 按位运算符 逻辑运算符 逻辑运算符 逻辑运算符 赋值运算符 6.3 批处理与脚本
6.3.1批处理? 1 概念
批处理是指包含一条或多条T-SQL语句的语句组,被一次性的执行。是作为一个单元发出的一个和多个SQL语句的集合。SQL Server将批处理编译成一个可执行单元,称为执行计划。批中如果某处发生编译错误,整个执行计划都无法执行。
1 .批处理:指包含一条或多条T - SQL语句的语句组,这组语句从应用程序一次性地发送到SQL server服务器执行。
2 .执行单元:SQL server服务器将批处理语句编译成一个可执行单元,这种单元称为执行单元。
3 .若批处理中的某条语句编译出错,则无法执行。若运行出错,则视情况而定。
4 .书写批处理时,GO语句作为批处理命令的结束标志,当编译器读取到GO语句时,会把GO语句前的所有语句当作一个批处理,并将这些语句打包发送给服务器。GO语句本身不是T - SQL语句的的组成部分,只是一个表示批处理结束的前端指令。 2批处理有以下规则:
( 1 ). create default , create rule , create trigger, create procedure和create view等语句在同一个批处理中只能提交一个。
( 2 ).不能在删除一个对象之后,在同一批处理中再次引用这个对象。
( 3 ).不能把规则和默认值绑定到表字段或者自定义字段上之后,立即在同一批处理中使用它们。
( 4 ).不能定义一个check约束之后,立即在同一个批处理中使用。
( 5 ).不能修改表中一个字段名之后,立即在同一个批处理中引用这个新字段。 ( 6 ).使用set语句设置的某些set选项不能应用于同一个批处理中的查询
( 7 ).若批处理中第一个语句是执行某个存储过程的execute语句,则execute关键字可以省略。若该语句不是第一个语句,则必须写上。 3 几种指定批处理的方法
(1) 应用程序作为一个执行单元发出的所有SQL语句构成一个批处理,并生成单个执行计划。 (2) 存储过程或触发器内的所有语句构成一个批处理,每个存储过程或触发器都编译为一个执行计划。
(3) 由EXECUTE语句执行的字符串是一个批处理,并编译为一个执行计划。 (4) 由sp_executesql存储过程执行的字符串是一个批处理,并编译为一个执行计划。 说明:若应用程序发出的批处理过程中含有EXECUTE语句,已执行字符串或存储过程的执行计划将和包含EXECUTE语句的执行计划分开执行。
若sp_executesql存储过程所执行的字符串生成的执行计划也与包含sp_executesql调用的批处理执行计划分开执行。
若批处理中的语句激发了触发器,则触发器执行疾患将和原始的批处理分开执行。 2批处理的结束和推出
? 批处理结束语句:GO
作为批处理的结束标志。也就是说当编译器执行到GO时会把GO之前的所有语句当作一个批处理来执行。GO 不是T-SQL语句。
GO命令和T-SQL语句不可在同一行,在批处理中的第一条语句后执行任何存储过程必须包含EXECUTE关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在GO命令后引用。
在联机帮助里,GO解释为Signals the end of a batch of Transact-SQL statements to the Microsoft? SQL Server? utilities. 就是一个语句的结束信号。也可以理解为一个分段执行命令(有些
地方如此解释,不太好)。
GO is not a Transact-SQL statement; it is a command recognized by the osql and isql utilities and SQL Query Analyzer
EXECUTE
功能:执行标量值的用户定义函数、系统过程、用户定义存储过程或扩展存储过程。同时支持 Transact-SQL 批处理内的字符串的执行
联机帮助里解释为Executes a command string or character string within a Transact-SQL batch, or one of the following modules: system stored procedure, user-defined stored procedure, scalar-valued user-defined function, or extended stored procedure.
? 批处理退出语句:RETURN [整型表达式]
无条件中止查询、存储过程或批处理的执行。存储过程或批处理不执行位于RETURN之后的语句。当存储过程使用该语句,则可用该语句指定返回给调用应用程序、批处理或过程的整数值。若return语句未指定值,则存储过程的返回值是0。
注意:当用于存储过程时,RETURN不能返回空值。
例:返回状态,该过程检查在SC表中是否存在选修了80012课程的学生。存在则返回1,不存在返回2
create procedure checksid @param char(20) as
if (select sid from sc where cid=@param)='bj10001' return 1
else return 2
6.3.2 脚本 1 什么是脚本?
脚本是存储在文件中一系列T-SQL语句。可包含一个或多个批处理,GO作为批处理结束语句,如果脚本中无GO语句,则作为单个批处理。脚本文件扩展名为.sql
6.4 流程控制语句
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第6章 T-SQL编程与应用(3)在线全文阅读。
相关推荐: