数据库原理与应用(SQL Server)笔记 流程控制语句系统内置函数
Posted 晚风(●•σ )
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理与应用(SQL Server)笔记 流程控制语句系统内置函数相关的知识,希望对你有一定的参考价值。
目录
一、流程控制语句
(一)BEGIN...END语句块
BEGIN...END语句块的作用是将多条T-SQL语句定义为一个语句块来执行,即当做一个整体,BEGIN...END语句块可以嵌套使用,其中关键字BEGIN指示语句块的开始,END指示语句块的结束。
BEGIN
<T-SQL语句> (BEGIN...END语句块) /*BEGIN...END语句块可以嵌套使用*/
END
(二)条件语句
学过c语言或者c++语言的应该知道有if-else条件语句,这里的条件语句跟其相同。即使用IF...ELSE语句时,当条件为真或假时,分别执行不同的T-SQL语句或语句序列。根据带不带ELSE可分为两种形式,即ELSE可省略,不带ELSE时执行条件表达式的值,当条件表达式为真时执行T-SQL语句或语句块,然后执行IF语句的下一条语句;当为假时,直接执行IF语句的下一条语句。如果条件判断不止两个结果,比如有三个结果,就可以使用[if]-[else if]-[else]的结构,假设还有结果,就继续在中间添加else if即可。
IF <条件表达式>
<T-SQL语句或BEGIN...END语句块>
(ELSE
<T-SQL语句或BEGIN...END语句块>)
(三)循环语句
1、WHILE语句
当程序中的一部分语句需要循环执行时,使用WHILE语句来实现。首先根据条件表达式进行判断,当条件表达式为真时,执行循环体中的T-SQL语句或语句序列,再进行条件判断,当条件表达式为真时,重复执行上述操作;直到条件表达式为假时,退出循环体,执行WHILE语句的下一条语句。同时,在循环体中,也可以进行WHILE语句的嵌套。
WHILE <条件表达式>
<T-SQL语句构成的循环体或BEGIN...END语句块>
2、BREAK语句和CONTINUE语句
BREAK语句可以在循环语句中退出本层循环,而CONTINUE语句可以在循环语句中结束本次循环,从而进入循环开始条件的判断。
(四)无条件转移语句
GOTO语句用于实现无条件跳转,将执行流程转移到标号指定的位置。语句格式:
标号:
语句 ......
GOTO <跳转至标号名称>
例、计算从1乘到100的值。
sql语句:
DECLARE @sum int,@i int
SET @i=1
SET @sum=1
x:
SET @sum=@sum*@i
SET @i=@i+1
IF @i<=10
GOTO x
PRINT '1*2*...*10='+CAST(@sum AS char(10))
输出结果:
这里最后一行的PRINT '1*2*...*10='+CAST(@sum AS char(10))使用到了CAST()函数,其将数据类型varchar的表达式显式转换为另一种数据类型char,之间的AS用于分隔两个参数,在AS为要处理的数据类型,AS之后是要转换的数据类型。如果不转换将会报错无法运行。
查询中的x就是我们定义的要跳转的语句标号名称。
附:CAST()函数可转换的类型有字符型、日期、时间、浮点数、整数等等。
(五)返回语句
返回语句即RETURN语句,用于查询语句块、存储过程或批处理中无条件退出,即位于RETURN之后的语句将不再执行。
格式如下:
RETURN <整型表达式>
(六)等待语句
等待语句WAITFOR指定语句块、存储过程或事务执行的时刻或需要等待的时间间隔。
格式如下:
WAITFOR <DELAY 等待的时间>(TIME 等待到某一时刻)
(七)错误处理语句
TRY...CATCH语句用于对T-SQL语言中的错误进行处理,即在执行TRY中的语句时,若执行的过程中没有异常拋出,那么执行完后就执行最后一个CATCH 块后面的语句,所有 CATCH块中的语句都不会被执行,CATCH可以有多个,但至少要有一个。
格式如下:
TRY
T-SQL语句或BEGIN...END语句块
CATCH(异常类型)
T-SQL语句或BEGIN...END语句块
...
CATCH(异常类型)
T-SQL语句或BEGIN...END语句块
二、系统内置函数
(一)数学函数
数学函数用于对数值表达式进行数学运算并返回运算结果,这里介绍几个常用的数学函数。
1、ABS函数
ABS()用于返回数值表达式的绝对值。
例、-9.2222取绝对值输出9.2222,0.35555取绝对值输出0.35555。
sql语句:
SELECT ABS(-9.2222),ABS(0.35555)
输出结果:
2、EXP函数
EXP()用于返回指定表达式以e为底的指数。
例、求以e为底的平方的值:
sql语句:
SELECT EXP(2) AS 'e的平方'
输出结果:
3、CEILING函数和FLOOR函数
CEILING()用于返回大于或等于数值表达式的最小整数,而FLOOR()用于返回小于或等于数值表达式的最大整数。
4、LOG函数
LOG()用于返回数值表达式以10为底的对数。
例、输出LOG(1)的值:
sql语句:
SELECT LOG(1)
输出结果:
5、POWER函数
POWER()用于返回数值表达式进行幂运算的结果,这里要注意POWER()函数带有两个参数,格式是POWER(数值,幂次方)。
例、输出2的10次方的值,运用POWER函数:
sql语句:
SELECT POWER(2,10)
输出结果:
6、SQRT函数
SQRT()函数用于返回数值表达式的平方根。
例、输出16的平方根。
sql语句:
SELECT SQRT(16)
输出结果:
7、SIGN函数
SIGN()函数用于返回数值表达式的正号(+)、负号(-)或零(0)。
8、RAND函数
RAND()函数用于返回0到1之间的一个随机值,RAND()函数中有seed参数,指定种子值,其返回值类型为float。当指定种子值时,输出结果相同;当未指定时,则随机分配种子。
例、通过RAND函数产生种子随机数。
sql语句:
DECLARE @count float
SET @count=0
SELECT RAND(@count) AS cont
输出结果:
(二)字符串函数
函数 | 作用 |
ASCII | 返回字符表达式中最左侧的ASCII码 |
CHAR | 返回指定ASCII码的对应字符 |
CHARINDEX | 返回指定模式的起始位置 |
LEN | 返回字符串表达式的字符数(不包括尾随空格) |
REPLACE | 有三个字符串表达式,用第三个字符串表达式替换第一个字符串表达式中包含的第二个字符串表达式,并返回替换后的表达式 |
REPLICATE | 以指定的次数复制字符表达式 |
LEFT | 返回字符串中从左侧开始指定个数的字符 |
RIGHT | 返回字符串中从右侧开始指定个数的字符 |
SPACE | 返回由重复的空格组成的字符串 |
LTRIM | 删除前导空格字符串,返回删除了前导空格之后的字符表达式 |
STR | 返回由数字数据转换来的字符数据 |
SUBSTRING | 返回表达式中指定的部分数据,可指定数据类型、开始位置、返回的字节数 |
结语
以上就是本次数据库原理与应用(SQL Server)笔记流程控制语句、系统内置函数的全部内容,感谢您的阅读和支持,篇幅较长,若有表述以及代码中的不当之处,望指出!您的指出和建议能给作者带来很大的动力!!!
以上是关于数据库原理与应用(SQL Server)笔记 流程控制语句系统内置函数的主要内容,如果未能解决你的问题,请参考以下文章
数据库原理与应用(SQL Server)笔记 第五章 索引和视图
数据库原理与应用(SQL Server)笔记 第十章 用户定义函数
数据库原理与应用(SQL Server)笔记 第三章 连接查询
数据库原理与应用(SQL Server)笔记 第十一章 游标