康索特软件有限公司 SQL Server 2005数据库技能培训
参数化的存储过程可以防止SQL注入式的攻击。
六 函数(掌握)
6.1 内部函数 6.1.1 常用5个内部函数
COUNT,SUM,MIN,MAX,AVG 五个常用的集合函数不用多说
6.1.2 SUBSTRING
SUBSTRING ( expression , start , length )
返回字符、binary、text 或 image 表达式的一部分。 例:
SELECT SUBSTRING(‘2011asd’,5,3) 结果:asd
6.1.3 CONVERT
CONVERT (data_type[(length)], expression [, style])
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。 例:
SELECT convert(varchar,getdate(),112) 结果:20070328
6.1.4 CAST
CAST ( expression AS data_type )
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。 例:
SELECT cast(2 as varchar(10))+cast(11 as varchar(10)) 结果:211
6.1.5 LEFT
LEFT ( character_expression , integer_expression )
地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489
康索特软件有限公司 SQL Server 2005数据库技能培训
返回从字符串左边开始指定个数的字符。 例:
SELECT left('my name is viwo',4) 结果:my n
6.1.6 RIGHT
RIGHT ( character_expression , integer_expression ) 返回字符串中从右边开始指定个数的 integer_expression 字符。 例:
SELECT right('my name is viwo',4) 结果:viwo
6.1.7 DATEADD
DATEADD ( datepart , number, date )
在向指定日期加上一段时间的基础上,返回新的 datetime 值。 例:
SELECT dateadd(month,2,getdate()) 结果:2007-05-28 14:24:37.280
6.1.8 DATEPART
DATEPART( datepart , date )
用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等,返回的是int值。 例:
SELECT datepart(wk,getdate()) 结果:21
6.1.9 CHARINDEX
CHARINDEX ( expression1 , expression2 [ , start_location ] ) 返回字符串中指定表达式的起始位置。 例:
SELECT charindex('ab','eabcd')
地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489
康索特软件有限公司 SQL Server 2005数据库技能培训
结果:2
6.1.10 LTRIM
LTRIM ( character_expression ) 删除起始空格后返回字符表达式。 例:
SELECT ltrim(' abc ') 结果:abc
6.1.11 RTRIM
RTRIM ( character_expression ) 截断所有尾随空格后返回一个字符串。 例:
SELECT rtrim(' abc ') 结果:abc
6.1.12 REPLACE
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' ) 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。 例:
SELECT replace('大连XXXX公司大连XXXX办事处','大连','北京') 结果:北京XXXX公司北京XXXX办事处
6.1.13 STUFF
STUFF ( character_expression , start , length , character_expression ) 删除指定长度的字符并在指定的起始点插入另一组字符。 例:SELECT STUFF('201101241152', 11, 2, '50') 结果:201101241150
6.2 自定义函数(了解) 6.2.1 语法
地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489
康索特软件有限公司 SQL Server 2005数据库技能培训
6.2.2 注意的地方
1. SQL Server中尽量避免使用自定义函数,执行效率会慢很多。
2. SQL Server函数中不能使用内部扩展存储过程,内部函数,游标,触发器,存储过程等,
否则会报错。
七 其他(了解)
7.1 游标 7.1.1 游标使用步骤
声明->打开->(填充->取数->填充->取数)->关闭->释放
7.1.2 游标基本语法
地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489
康索特软件有限公司 SQL Server 2005数据库技能培训
7.1.3 游标优缺点
优点:
某些复杂的业务,简单的一句SQL无法处理的,可以用游标处理。 缺点:
如果游标嵌套游标的处理,运行效率比较低。
7.2 BCP工具 7.2.1 BCP导入
BCP 数据库.用户名.表名 in d:\\文件名.txt -c –u “sa” –p “sa”
7.2.2 BCP导出
BCP “select * from 数据库.用户名.表名” queryout d:\\文件名.txt -c –u “sa” –p “sa”
7.2.3 BCP作用
1. 主要是针对大数据量数据需要导出查看时,可用到BCP工具导出成txt文档进行查看。 2. 可用来数据库数据的备份还原。
7.3 触发器 7.3.1 触发器介绍
1. 触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。 2. 在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。
INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句,则不会执行操作。
AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化,十分好用。
7.3.2 触发器优缺点
优点:
1. 触发器可通过数据库中的相关表实现级联更改;
2. 触发器可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改。 缺点:
地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489