存储过程基本语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储过程
1.存储过程例子 (1)
2.SQL Server 字符串函数 (4)
3. SQL Server 存储过程基本语法 (9)
1.存储过程例子
以下通过表Student 来了解存储过程,因为是要了解存储过程的简单用法,所以所有例子
均很简单。
无参数存储过程:
选出Student表中的所有信息,
有参数存储过程:
全局变量
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。
选出指定姓名的学生信息:
上面是在外部给变量赋值,也可以在内部直接给变量设置默认值
也可以把变量的内容输出,使用output
以上是全局变量,下面来了解局部变量
局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。
局部变量的定义:必须先用Declare命令定以后才可以使用,declare{@变量名数据类型}局部变量的赋值方法:set{@变量名=表达式}或者select{@变量名=表达式}
局部变量的显示:select @变量名
那如果是要把局部变量的数据显示出来怎么办呢?
2.SQL Server 字符串函数
以下所有例子均Studnet表为例:
计算字符串长度
len()用来计算字符串的长度
字符串转换为大、小写
lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写
截去字符串左、右侧空格
ltrim() 用来将一个字符串左侧的空格去掉,rtrim()用来将一个字符串右侧的空格去掉
返回由重复的空格组成的字符串
space(integer_expression)integer_expression 指示空格个数的正整数。如
果 integer_expression 为负,则返回空字符串。
取子字符串
substring(string,start_position,length) 可以从任意位置取任意长度的子字符串,left(string,length) 从左侧开始取子字符串
right(string,length)从右侧开始取子字符串
字符串替换
replace(string,要被替换的字符串,替换的字符串)
返回字符串值的逆向值
reverse(string_expression)
删除指定长度的字符,并在指定的起点处插入另一组字符
stuff(character_expression , start , length ,character_expression)
start 一个整数值,指定删除和插入的开始位置。
length 一个整数,指定要删除的字符数。
以指定的次数重复字符串值
replicate(string_expression ,integer_expression)
返回字符串中指定表达式的开始位置
charindex(expression1 ,expression2 , start_location )或
charindex(expression1 ,expression2 )
expression1在expression2 中的开始位置
返回指定表达式中模式第一次出现的开始位置
patindex('%pattern%',expression) 返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
返回输入表达式的第一个字符的整数值
unicode( 'ncharacter_expression' )' ncharacter_expression '为
nchar 或 nvarchar 表达式。
返回由数字数据转换来的字符数据
str(float_expression , length ,decimal )
float_expression 带小数点的近似数字(float) 数据类型的表达式。
length 总长度。它包括小数点、符号、数字以及空格。默认值为10。decimal 小数点右边的小数位数。decimal 必须小于等于16。如
果 decimal 大于16,则将结果截断为小数点右边的16 位。
结果为:
得到字符的ASCII码
ascii()用来得到一个字符的ASCII码,它有且只有一个参数,如果参数为字符串,那么取第一个字符的ASCII码
得到一个与ASCII码数字对应的字符
Char(integer_expression) integer_expression 介于0 和255 之间的整数。如果该整数表达式不在此范围内,将返回NULL 值。
返回返回具有指定的整数代码的Unicode 字符
nchar(integer_expression)integer_expression 介于0 与65535 之间的正整数。如果指定了超出此范围的值,将返回NULL。
返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的SQL Server 分隔标识符。
quotename('character_string') character_string 不得超过128 个字符。超过128 个字符的输入将返回NULL。
结果为:[abc[]]def] 请注意,字符串 abc[]def 中的右方括号有两个,用于指示转义符。select QUOTENAME('abcdef','''') --分隔符是两个单引号
-- 'abcdef'
select QUOTENAME('abcdef') --分隔符是]
-- [abcdef]
select QUOTENAME('abcdef','{}') --分隔符是}
-- {abcdef}
发音匹配度
有时候我们并不知道一个人姓名的拼写,但是我们知道他的发音,这时我们可以进行发音的匹配度测试。
soundex()用于计算一个字符串的发音特征性,这个特征值为一个四个字符的字符串,特征性的第一个字符总是初始字符串中的第一个字符,而后是一个三位数的数值。
结果为:
发音特征值的含义非常复杂,如果要根据两个发音特征值来分析两个字符串的发音相似度的话非常麻烦。
可以使用difference()来简化两个字符串的发音相似度比较,它可以计算两个字符串的
发音特征值,并且比较它们,
然后返回一个0~4之间的值来反映两个字符串的发音相似度,这个值越大则表示两个字符
串的发音相似度越大。