SQL SERVER2000部分函数和控制流程及其它介绍

 

l          SQL SERVER中的函数

l          系统函数:

l          ISNULL: 用指定值替换表达式中的指定空值 select ISNULL(polity(字段名),’团员’), 如果polity字段值为null,则该字段值用团员填充

l          ISNUMERIC: 检查给定的表达式是否为有效的数字格式

l          字符串函数

l          LTRIM(EXP): 删除字符串前面的空格

l          RTRIMEXP):删除字符串后面的空格

l          LOWER(EXP): 转换成小写字母

l          UPPER(EXP): 转换成大写字符

l          STUFF(EXP1,START,LENGTH,EXP2):在EXP1中,把从位置start开始长度为length的字符串用EXP2替换

l          SUBSTRING(EXP1,START,LENGTH): EXP1中,返回从START开始长度为length的字符串

l          LEFT(EXP,INT):返回字符串从左开始到指定位置的部分字符

l          RIGHT(EXP,INT):返回字符串从右开始到指定位置的部分字符

l          STR(FLOAT,[,length[,decimal]]):把数值变成字符串返回,length是总长度,decimal是小数点右边的位数

l          REVERSE(EXP): 求方向表达式

l          日期和时间函数

l          GETDATE(): 返回当前日期和时间 Day(date), Month(date), Year(date) 返回当前时间的年,月,日

l          数字函数

l          ABSnumber):返回绝对值

l          PI(): 常量 

l          RAND():返回01之间的一个随机值

l          SIGNnumber: 根据给定的数值是否为正、负或零而分别返回1-10

l          转换函数

l          CAST(EXP AS Data_Type): 把一种数据类型强制转化为另一种数据类型

l          CONVERT(data_type, EXP[,style]):允许用户把表达式从一种数据类型转换成另一种数据类型,还允许把时间转换成不同的样式 style选项能以不同的格式显示日期和时间, 101 表示mm/dd/yyyy, Convert(‘1111’, money)  

l          创建自定义的函数

l          传入课程编号,返回一个表中该课程的总分

l          Create function fun_sumScore

l          {

l             @parClassNo as varchar(10)
}

l          Returns real

l          Begin

l          Declare @sumScore real

l          Select @sumScore = sum(score)

l          From t_score

l          Where classNo=@parClassNo

l          Return @sumScore

l          End

l          使用自定义函数: select dbo. fun_sumScore(‘12312’) from t_score 在调用返回数值的用户自定义函数时,一定要在函数名称的前面加上用户名,否则会出现“‘函数名称’”不是可以识别的函数名“的错误提示信息

 

 

 

 

l          流程控制语句

l          IF…ELSE: IF(Exp) BEGIN END ELSE BEGIN END

l          if ((select top 1 rid from report) > 1)

l              print 'a'

l          else

l              print 'b'

l          CASE EXP

l                 WHEN when_Exp THEN result_Exp

l                 WHEN when_Exp THEN result_Exp

l          END   

l          Select *,班级名称(新字段名)=case number(本表字段名) WHEN ‘123’ THEN ‘高等数学’      WHEN ‘234’ THEN ‘中国历史’ END

l          WHILE…CONTINUE…BREAK

l          Declare @i int

l          Set @i=1

l          While(@i>0)

l          Begin

l          Set @i=@i-1 (Break   or   continue)

l          End

l          GOTO

l          WIATFOR 用于暂停执行SQL语句

l          WIATFOR DELAY ‘0.0.10’ 暂停指定10

l          Return语句,和break类型,但return语句可以返回一个整型值

 

 

 

l          创建视图

l          可以在企业管理器中直接创建,或者用create view view_name as select * from A,B where A.name=b.name语句创建视图

l          三个关于视图的存储过程: sp_help ; sp_helptext ; sp_depends ;sp_rename old_name,new _name 重命名存储过程

l          修改视图中的数据时,不能同时修改两个或多个基表。可以对基于两个或多个基表或者视图进行修改,但是每次只能修改一个基表。

l          如果视图创建时定义了限制条件或者基表的列允许控制或有默认值,而插入的记录不满足条件时,此时仍然可以向表中插入记录,只是用视图检索不会显示出新插入的记录。如果不想这种情况发生,则可以使用with checkbox point选项限制插入不符合视图规则的视图,这样,在插入记录时,如果记录不符合限制条件则不能插入.

l          索引 sp_helpindex Report(数据表名) 查看数据表上的索引, 设置主键时会自动创建索引

l          建立索引的一般原则

l          对经常用来检索的字段建立索引

l          对数据表中的主键建立索引

l          对数据表中的外键建立索引

l          对经常用于连接的字段建立索引

l          索引的分类

l          聚集索引(一个表只能建立一个聚集索引,表中的物理顺序和索引中的物理顺序是相同的)和非聚集索引(一个表可以包含多个非聚集索引)

l          复合索引(多个字段组合的索引)

l          唯一索引(字段最好设置为not null,因为两个null值将认为是重复的字段值)

l          管理索引   所有任务à管理索引,创建,修改,删除索引

l          Create Index Index_Name on Table_name(Field_Name)

l          存储过程

l          三个组成部分: 所有输入参数以及传给调用者的输出函数

l          被执行的针对数据库的操作语句,包括调用其它存储过程的语句

l          返回给调用者的状态值,已指明调用是成功还是失败(可以 @@error全局变量)

l          Create procedure stu_age   (创建存储过程)

l          ( @s_number varchar(10),

l            @age in output)

l          As

l          Declare @errorValue int

l          Set @errorValue=0

l          Select @age=year(getdate())-year(birthday)

l          From t_student

l          Where s_number=@s_number

l          If(@@error<>0)

l           Set @errorValue=@@error

l          Return @errorValue

l          执行存储过程

l          Execute pro_name paraName=value;   execute stu_info @s_number=’12321’

l          Declare @stuage int, @returnvalue int, @s_number char(10)

l          Set @s_number=’1232’

l          Execute @returnvalue=stu_age(proName) @s_number, @stuage output

l          全局存储过程

l          Sp_help:用于显示存储过程的参数及其数据类型

l          sp_helptext:用于显示存储过程的源代码

l          sp_depends 用于显示和存储过程相关的数据库对象

l          sp_stored_procedures 用于返回当前数据库中的存储过程列表

l          触发器

l          触发器是一种特殊的存储过程, 存储过程通过名称被调用,触发器主要通过事件进行触发而执行,触发器一般是在对数据表进行增,删,改时触发

l          创建触发器: 选择表à所有任务à管理触发器

l          Create trigger trigger_name

l          On table_name

l          For insert,update,delete

l          As

l          Sql_statement

l          备份和还原数据库

l          选择数据库à所有任务à备份数据库

l          选择数据库à所有任务à还原数据库; 如果还原失败,可在‘选项’中‘最下面选中’使数据库不再运行‘项,然后在还原一遍就行

l          导出和导入数据

l          选择表à所有任务à导出数据; 可以导出到excel,文本文件等类型

l          选择表à所有任务à导入数据; 可以导入excel,文本文件等类型

posted @ 2009-01-06 15:23    阅读(1605)  评论(0编辑  收藏  举报