第一篇:SQL Server字符串处理函数大全
SQL Server字符串处理函数大全.txt SQL Server字符串处理函数大全2009年10月18日 星期日 08:48select 字段1 from 表1 where 字段1.IndexOf(“云”)=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。left()是sql函数。
select 字段1 from 表1 where charindex('云',字段1)=1;字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、BINARY、和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。常用的字符串函数有:
一、字符转换函数
1、ASCII()返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
2、CHAR()将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR()返回NULL。
3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
4、STR()把数值型数据转换为字符型数据。
STR(
二、去空格函数
1、LTRIM()把字符串头部的空格去掉。
2、RTRIM()把字符串尾部的空格去掉。
三、取子串函数
1、left()LEFT(
2、RIGHT()RIGHT(
3、SUBSTRING()SUBSTRING(
四、字符串比较函数
1、CHARINDEX()返回字符串中某个指定的子串出现的开始位置。
CHARINDEX(<’substring_expression’>,
2、PATINDEX()返回字符串中某个指定的子串出现的开始位置。
PATINDEX(<’%substring _expression%’>,
五、字符串操作函数
1、QUOTENAME()返回被特定字符括起来的字符串。
QUOTENAME(<’character_expression’>[,quote_ character])其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
2、REPLICATE()返回一个重复character_expression 指定次数的字符串。
REPLICATE(character_expression integer_expression)如果integer_expression 值为负值,则返回NULL。
3、REVERSE()将指定的字符串的字符排列顺序颠倒。REVERSE(
4、REPLACE()返回被替换了指定子串的字符串。
REPLACE(
4、SPACE()返回一个有指定长度的空白字符串。
SPACE(
5、STUFF()用另一子串替换字符串指定位置、长度的子串。
STUFF(
如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。
六、数据类型转换函数
1、CAST()CAST(
2、CONVERT()CONVERT(
1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。2)length用于指定数据的长度,缺省值为30。3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。
4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。
5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。
6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。
7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。
8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。
9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。
七、日期函数
1、day(date_expression)返回date_expression中的日期值
2、month(date_expression)返回date_expression中的月份值
3、year(date_expression)返回date_expression中的年份值
4、DATEADD()DATEADD(
5、DATEDIFF()DATEDIFF(
6、DATENAME()DATENAME(
7、DATEPART()DATEPART(
8、GETDATE()以DATETIME 的缺省格式返回系统当前的日期和时间。
演讲稿
尊敬的老师们,同学们下午好:
我是来自10级经济学(2)班的学习委,我叫张盼盼,很荣幸有这次机会和大家一起交流担任学习委员这一职务的经验。
转眼间大学生活已经过了一年多,在这一年多的时间里,我一直担任着学习委员这一职务。回望这一年多,自己走过的路,留下的或深或浅的足迹,不仅充满了欢愉,也充满了淡淡的苦涩。一年多的工作,让我学到了很多很多,下面将自己的工作经验和大家一起分享。
学习委员是班上的一个重要职位,在我当初当上它的时候,我就在想一定不要辜负老师及同学们我的信任和支持,一定要把工作做好。要认真负责,态度踏实,要有一定的组织,领导,执行能力,并且做事情要公平,公正,公开,积极落实学校学院的具体工作。作为一名合格的学习委员,要收集学生对老师的意见和老师的教学动态。在很多情况下,老师无法和那么多学生直接打交道,很多老师也无暇顾及那么多的学生,特别是大家刚进入大学,很多人一时还不适应老师的教学模式。学习委员是老师与学生之间沟通的一个桥梁,学习委员要及时地向老师提出同学们的建议和疑问,熟悉老师对学生的基本要求。再次,学习委员在学习上要做好模范带头作用,要有优异的成绩,当同学们向我提出问题时,基本上给同学一个正确的回复。
总之,在一学年的工作之中,我懂得如何落实各项工作,如何和班委有效地分工合作,如何和同学沟通交流并且提高大家的学习积极性。当然,我的工作还存在着很多不足之处。比日:有的时候得不到同学们的响应,同学们不积极主动支持我的工作;在收集同学们对自己工作意见方面做得不够,有些事情做错了,没有周围同学的提醒,自己也没有发觉等等。最严重的一次是,我没有把英语四六级报名的时间,地点通知到位,导致我们班有4名同学错过报名的时间。这次事使我懂得了做事要脚踏实地,不能马虎。
在这次的交流会中,我希望大家可以从中吸取一些好的经验,带动本班级的学习风气,同时也相信大家在大学毕业后找到好的工作。谢谢大家!
第二篇:ASP 字符串处理函数
ASP 字符串处理函数.txt ASP 字符串处理函数
Len Len(string|varname)返回字符串内字符的数目,或是存储一变量所需的字节数 Trim Trim(string)将字符串前后的空格去掉 Ltrim Ltrim(string)将字符串前面的空格去掉 Rtrim Rtrim(string)将字符串后面的空格去掉 Mid Mid(string,start,length)从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串
Left Left(string,length)从string字符串的左边取得length长度的字符串 Right Right(string,length)从string字符串的右边取得length长度的字符串 LCase LCase(string)将string字符串里的所有大写字母转化为小写字母 UCase UCase(string)将string字符串里的所有大写字母转化为大写字母
StrComp StrComp(string1,string2[,compare])返回string1字符串与string2字符串的比较结果,如果两个字符串相同,则返回0,如果小于则返回-1,如果大于则返回1
InStr InStr(string1,string2[, compare])返回string1字符串在string2字符串中第一次出现的位置
Split Split(string1,delimiter[, count[, start]])将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格(“")作为分隔符。count 返回的子字符串数目,-1 指示返回所有子字符串。
start为 1 执行文本比较;如果为 0 或者省略执行二进制比较。
Replace Replace(expression, find, replacewith[, compare[, count[, start]]])返回字符串,其中指定数目的某子字符串(find)被替换为另一个子字符串(replacewith)
------------------
[示例:]
1、Len函数示例:
下面的示例利用 Len 函数返回字符串中的字符数目: Dim MyString MyString = Len(”VBSCRIPT“)'MyString 包含 8。
2、Trim、Ltrim、Rtrim函数示例:
下面的示例利用 LTrim, RTrim, 和 Trim 函数分别用来除去字符串开始的空格、尾部空格、开始和尾部空格: Dim MyVar MyVar = LTrim(” vbscript “)'MyVar 包含 ”vbscript “。MyVar = RTrim(” vbscript “)'MyVar 包含 ” vbscript“。MyVar = Trim(” vbscript “)'MyVar 包含”vbscript“。
3、Mid函数示例:
下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符: Dim MyVar MyVar = Mid(”VB脚本is fun!“, 4, 6)'MyVar 包含 ”Script“。
4、Left函数示例:
下面的示例利用Left 函数返回MyString 的左边三个字母: Dim MyString, LeftString MyString = ”VBSCript“ LeftString = Left(MyString, 3)'LeftString 包含 ”VBS
5、Right函数示例:
下面的示例利用 Right 函数从字符串右边返回指定数目的字符: Dim AnyString, MyStr AnyString = “Hello World” '定义字符串。MyStr = Right(AnyString, 1)'返回 “d”。
MyStr = Right(AnyString, 6)' 返回 “ World”。
MyStr = Right(AnyString, 20)' 返回 “Hello World”。
6、LCase函数示例:
下面的示例利用 LCase 函数把大写字母转换为小写字母: Dim MyString Dim LCaseString MyString = “VBSCript” LCaseString = LCase(MyString)' LCaseString 包含 “vbscript”。
7、UCase函数示例:
下面的示例利用 UCase 函数返回字符串的大写形式: Dim MyWord MyWord = UCase(“Hello World”)' 返回“HELLO WORLD”。
8、StrComp函数示例:
下面的示例利用 StrComp 函数返回字符串比较的结果。如果第三个参数为 1 执行文本比较;如果第三个参数为 0 或者省略执行二进制比较。Dim MyStr1, MyStr2, MyComp MyStr1 = “ABCD”: MyStr2 = “abcd” '定义变量。MyComp = StrComp(MyStr1, MyStr2, 1)' 返回 0。MyComp = StrComp(MyStr1, MyStr2, 0)' 返回-1。MyComp = StrComp(MyStr2, MyStr1)' 返回 1。
9、InStr示例:
下面的示例利用 InStr 搜索字符串: Dim SearchString, SearchChar, MyPos SearchString =“XXpXXpXXPXXP”??? SearchChar = “P”?? MyPos = Instr(SearchString, SearchChar)???'返回 9.注意:返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。
10、Split函数示例:
Dim MyString, MyArray, Msg MyString = “VBScriptXisXfun!” MyArray = Split(MyString, “x”,-1,1)' MyArray(0)contains “VBScript”.' MyArray(1)contains “is”.' MyArray(2)contains “fun!”.Response.Write(MyArray(0))
11、Replace函数示例:
Replace(“ABCD”, “BC”, “12”)'得到A12D
演讲稿
尊敬的老师们,同学们下午好:
我是来自10级经济学(2)班的学习委,我叫张盼盼,很荣幸有这次机会和大家一起交流担任学习委员这一职务的经验。
转眼间大学生活已经过了一年多,在这一年多的时间里,我一直担任着学习委员这一职务。回望这一年多,自己走过的路,留下的或深或浅的足迹,不仅充满了欢愉,也充满了淡淡的苦涩。一年多的工作,让我学到了很多很多,下面将自己的工作经验和大家一起分享。
学习委员是班上的一个重要职位,在我当初当上它的时候,我就在想一定不要辜负老师及同学们我的信任和支持,一定要把工作做好。要认真负责,态度踏实,要有一定的组织,领导,执行能力,并且做事情要公平,公正,公开,积极落实学校学院的具体工作。作为一名合格的学习委员,要收集学生对老师的意见和老师的教学动态。在很多情况下,老师无法和那么多学生直接打交道,很多老师也无暇顾及那么多的学生,特别是大家刚进入大学,很多人一时还不适应老师的教学模式。学习委员是老师与学生之间沟通的一个桥梁,学习委员要及时地向老师提出同学们的建议和疑问,熟悉老师对学生的基本要求。再次,学习委员在学习上要做好模范带头作用,要有优异的成绩,当同学们向我提出问题时,基本上给同学一个正确的回复。
总之,在一学年的工作之中,我懂得如何落实各项工作,如何和班委有效地分工合作,如何和同学沟通交流并且提高大家的学习积极性。当然,我的工作还存在着很多不足之处。比日:有的时候得不到同学们的响应,同学们不积极主动支持我的工作;在收集同学们对自己工作意见方面做得不够,有些事情做错了,没有周围同学的提醒,自己也没有发觉等等。最严重的一次是,我没有把英语四六级报名的时间,地点通知到位,导致我们班有4名同学错过报名的时间。这次事使我懂得了做事要脚踏实地,不能马虎。
在这次的交流会中,我希望大家可以从中吸取一些好的经验,带动本班级的学习风气,同时也相信大家在大学毕业后找到好的工作。谢谢大家!
第三篇:sqlserver日志文件总结及充满处理
sqlserver日志文件总结及充满处理 文章来源:sqlserver论坛 作者:hansbj
交易日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分。由于它并不像数据库中的schema那样活跃,因此很少有人关注交易日志。
交易日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。对于任何每一个交易过程,交易日志都有非常全面的记录,根据这些记录可以将数据文件恢复成交易前的状态。从交易动作开始,交易日志就处于记录状态,交易过程中对数据库的任何操作都在记录范围,直到用户点击提交或后退后才结束记录。每个数据库都拥有至少一个交易日志以及一个数据文件。
出于性能上的考虑,SQL Server将用户的改动存入缓存中,这些改变会立即写入交易日志,但不会立即写入数据文件。交易日志会通过一个标记点来确定某个交易是否已将缓存中的数据写入数据文件。当SQL Server重启后,它会查看日志中最新的标记点,并将这个标记点后面的交易记录抹去,因为这些交易记录并没有真正的将缓存中的数据写入数据文件。这可以防止那些中断的交易修改数据文件。
维护交易日志
因为很多人经常遗忘交易日志,因此它也会给系统带来一些问题。随着系统的不断运行,日志记录的内容会越来越多,日志文件的体积也会越来越大,最终导致可用磁盘空间不足。除非日常工作中经常对日志进行清理,否则日志文件最终会侵占分区内的全部可用空间。日志的默认配置为不限容量,如果以这种配置工作,它就会不断膨胀,最终也会占据全部可用空间。这两种情况都会导致数据库停止工作。
对交易日志的日常备份工作可以有效的防止日志文件过分消耗磁盘空间。备份过程会将日志中不再需要的部分截除。截除的方法是首先把旧记录标记为非活动状态,然后将新日志覆盖到旧日志的位置上,这样就可以防止交易日志的体积不断膨胀。如果无法对日志进行经常性的备份工作,最好将数据库设置为“简单恢复模式”。在这种模式下,系统会强制交易日志在每次记录标记点时,自动进行截除操作,以新日志覆盖旧日志。
截除过程发生在备份或将旧标记点标为非活动状态时,它使得旧的交易记录可以被覆盖,但这并不会减少交易日志实际占用的磁盘空间。就算不再使用日志,它依然会占据一定的空间。因此在维护时,还需要对交易日志进行压缩。压缩交易日志的方法是删除非活动记录,从而减少日志文件所占用的物理硬盘空间。
通过使用DBCC SHRINKDATABASE语句可以压缩当前数据库的交易日志文件,DBCC SHRINKFILE语句用来压缩指定的交易日志文件,另外也可以在数据库中激活自动压缩操作。当压缩日志时,首先会将旧记录标记为非活动状态,然后将带有非活动标记的记录彻底删除。根据所使用的压缩方式的不同,你可能不会立即看到结果。在理想情况下,压缩工作应该选在系统不是非常繁忙的时段进行,否则有可能影响数据库性能。
恢复数据库
交易记录备份可以用来将数据库恢复到某一指定状态,但交易记录备份本身不足以完成恢复数据库的 任务,还需要备份的数据文件参与恢复工作。恢复数据库时,首先进行的是数据文件的恢复工作。在整个数据文件恢复完成前,不要将其设为完成状态,否则交易日志就不会被恢复。当数据文件恢复完成,系统会通过交易日志的备份将数据库恢复成用户希望的状态。如果在数据库最后一次备份后,存在多个日志文件的备份,备份程序会按照它们建立的时间依次将其恢复。
另一种被称为log shipping的过程可以提供更强的数据库备份能力。当log shipping配置好后,它可以将数据库整个复制到另一台服务器上。在这种情况下,交易日志也会定期发送到备份服务器上供恢复数据使用。这使得服务器一直处于热备份状态,当数据发生改变时它也随之更新。另一个服务器被称作监视(monitor)服务器,可以用来监视按规定时间间隔发送的shipping信号。如果在规定时间内没有收到信号,监视服务器会将这一事件记录到事件日志。这种机制使得log shipping经常成为灾难恢复计划中使用的方案。
性能优化
交易日志对数据库有重要作用,同时它对系统的整体性能也有一定影响。通过几个选项,我们可以对交易日志的性能进行优化。由于交易日志是一个连续的磁盘写入过程,在这当中不会发生读取动作。因此将日志文件放在一个独立的磁盘,对优化性能有一定作用。
另一项优化措施与日志文件的体积有关。我们可以设置日志文件的体积不超过硬盘空间的百分之几,或者确定它的大小。如果将其设置的过大会浪费磁盘空间,而如果设置的过小则会强制记录文件不断尝试扩展,导致数据库性能下降。
事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf。
在 SQL Server 7.0 和 SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展。
一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发。
然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满。通常,在事务日志文件占尽可用磁盘空间且不能再扩展时,您将收到如下错误消息:
Error:9002, Severity:17, State:2
The log file for database '%.*ls' is full.除了出现此错误消息之外,SQL Server 还可能因为缺少事务日志扩展空间而将数据库标记为 SUSPECT。有关如何从此情形中恢复的其他信息,请参见 SQL Server 联机帮助中的“磁盘空间不足”主题。
另外,事务日志扩展可能导致下列情形:
· 非常大的事务日志文件。
· 事务可能会失败并可能开始回滚。
· 事务可能会用很长时间才能完成。
· 可能发生性能问题。
· 可能发生阻塞现象。
原因
事务日志扩展可能由于以下原因或情形而发生:
· 未提交的事务
· 非常大的事务
· 操作:DBCC DBREINDEX 和 CREATE INDEX
· 在从事务日志备份还原时
· 客户端应用程序不处理所有结果
· 查询在事务日志完成扩展之前超时,您收到假的“Log Full”错误消息
· 未复制的事务
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery simple
另外,数据库属性有两个选项,与事务日志的增长有关:
Truncate log on checkpoint
(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)
当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True
Auto shrink
定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。
第四篇:SQLServer中获取18位身份证号码校验码的函数
在SQL Server中编写获取18位身份证的校验码函数
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[fn_getChkVal](@IDCardNo nvarchar(18))RETURNS nvarchar(1)AS BEGIN Declare @iSum integer,@iMod integer if len(@IDCardNo)<>18 return '' if LEFT(@IDCardNo,17)like '%[^0-9]%' RETURN ''--判断1-17位是否为数字0-9,如果不是退出
set @iSum= cast(substring(@IDCardNo,1,1)as int)*7 set @iSum=@iSum+cast(substring(@IDCardNo,2,1)as int)*9 set @iSum=@iSum+cast(substring(@IDCardNo,3,1)as int)*10 set @iSum=@iSum+cast(substring(@IDCardNo,4,1)as int)*5 set @iSum=@iSum+cast(substring(@IDCardNo,5,1)as int)*8 set @iSum=@iSum+cast(substring(@IDCardNo,6,1)as int)*4 set @iSum=@iSum+cast(substring(@IDCardNo,7,1)as int)*2 set @iSum=@iSum+cast(substring(@IDCardNo,8,1)as int)*1 set @iSum=@iSum+cast(substring(@IDCardNo,9,1)as int)*6 set @iSum=@iSum+cast(substring(@IDCardNo,10,1)as int)*3 set @iSum=@iSum+cast(substring(@IDCardNo,11,1)as int)*7 set @iSum=@iSum+cast(substring(@IDCardNo,12,1)as int)*9 set @iSum=@iSum+cast(substring(@IDCardNo,13,1)as int)*10 set @iSum=@iSum+cast(substring(@IDCardNo,14,1)as int)*5 set @iSum=@iSum+cast(substring(@IDCardNo,15,1)as int)*8 set @iSum=@iSum+cast(substring(@IDCardNo,16,1)as int)*4 set @iSum=@iSum+cast(substring(@IDCardNo,17,1)as int)*2
set @iMod=@iSum % 11
return substring('10X98765432',@imod+1,1)END
第五篇:SqlServer教学大纲
《SQL Server2005案例教程》教学大纲
一、教学目的:
1.通过本门课程的学习,使学员掌握数据库的概念,安装以及数据库在程序设计中的重要地位和作用 2.理解关系型数据库和表,约束,索引的创建
3.了解SQL语言基础与使用SQL语言实现数据的查询与更新 4.熟悉sqlserver的应用环境及掌握常用的管理方法 5.掌握视图,存储过程,触发器等数据库对象的创建与使用 6.掌握数据库的安全管理 7.掌握数据的备份与恢复 8.掌握数据的导入导出步骤
9.理解SqlServer下事务的概念,并能在实际应用中合理的使用事务控制命令
二、教学重点:
1.数据库基本概念
2.数据库表,约束,索引的创建 3.使用SQL语言实现数据的查询与更新 4.Select,update,delete,insert 5.index 6.constraint 7.view视图
三、教学难点:
1.SqlServer体系结构
2.SqlServer下事务的概念,并能在实际应用中合理的使用事务控制 3.存储过程 4.触发器
四、教学内容及学时分配
第1章、数据库概述 6课时
第2章、SQL Server安装及管理 4课时 第3章、数据库及表的设计 4课时 第4章、T-ransact SQL语言基础 6课时 第5章、T-ransact SQL数据查询与更新 14课时 第6章、视图 6课时 第7章、存储过程 复习
5课时
4课时
第8章、触发器
6课时 第9章、SQL安全 3第10章、数据备份与恢复 第11章、数据转换
复习4
课时 4课时 2课时
课时 68课时