收藏 分享(赏)

数据库函数.ppt

上传人:知足长乐 文档编号:1278020 上传时间:2018-06-21 格式:PPT 页数:40 大小:238KB
下载 相关 举报
数据库函数.ppt_第1页
第1页 / 共40页
数据库函数.ppt_第2页
第2页 / 共40页
数据库函数.ppt_第3页
第3页 / 共40页
数据库函数.ppt_第4页
第4页 / 共40页
数据库函数.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、系统内置函数,T-SQL语言提供了多种系统内置函数:集合函数、配置函数、游标函数、日期函数、数学函数、元数据函数、行集函数、安全函数、字符串函数、系统函数、文本和图像函数等。,行集函数可以像使用SQL语句的表一样。行集函数返回一个对象,这个对象可以用作T-SQL语句中的表引用。,一、 系统函数,系统函数返回跟SQL Server环境相关的信息,它们可以返回对象名、标识符、当前用户、当前数据库、会话、应用和登录等信息;可以检验一个表达式的数据类型;执行数据类型间的类型转换。,1 字符串函数,字符串函数用于对字符串进行连接、截取等操作。下表列出了常用的字符串函数。,1 字符串函数,1 日期函数,日

2、期函数用于对日期的处理。下表列出了常用的字符串函数。,1 日期函数,例1 显示服务器的当前系统日期和时间Print GETDATE ()例2 下例从日期 03/12/1998 中返回年份数。SELECT Year Number = YEAR(03/12/1998)GO 例3 下例从日期 03/12/1998 中返回月份数。SELECT Year Number = MONTH(03/12/1998)GO,例4 下例从日期 03/12/1998 中返回几号数。SELECT Year Number = DAY(03/12/1998)GO,2系统综合函数,系统综合函数用来获得SQL Server的有关

3、信息。表列出了最常用的系统综合函数。,这个程序中的DATENAME(Year,ru_Date)可用DATEPART(Year,ru_Date)和YEAR(ru_Date)来代替。,3 数学函数数学函数通常对输入的数字参数执行某些特定的数学计算,并返回运算结果。 SQL系统中经常使用的数学函数如下 ABS ( numeric_expression ):返回给定数字表达式的绝对值。ASIN、ACOS、ATAN ( float_expression):返回反正弦、反余弦、反正切。SIN、COS、TAN、COT(float_expression):返回正弦、余弦、余切。ATAN2 ( float_ex

4、pression ):返回四个象限的反正切弧度值DEGREES ( numeric_expression ):将给出的弧度值转化为相应的角度值。,RADIANS ( numeric_expression ):将给出的角度值转化为相应的弧度值。 EXP ( float_expression ):返回所给的 float 表达式的指数值。LOG ( float_expression ):返回给定 float 表达式的自然对数。LOG10 ( float_expression ):返回给定 float 表达式的以 10 为底的对数。SQRT ( float_expression ):返回给定表达式的平

5、方根。CEILING ( numeric_expression ):返回大于或等于所给数字表达式的最小整数。FLOOR ( numeric_expression ):返回小于或等于所给数字表达式的最大整数。ROUND ( numeric_expression , length):将给定的数据四舍五入到给定的长度。SIGN ( numeric_expression ):返回表达式的正 (+1)、零 (0)或负(-1)号。PI ( ):常量3.14159265358979。 RAND ( seed ):返回 0 到1 之间的随机float 值。,例:,使用ROUND函数SELECT ROUND (

6、24.5654,3)使用CEILING函数SELECT CEILING (45.5)使用POWER函数SELECT POWER(4.00,3),集合函数游标函数,4、用户自定义函数,1、用户函数的定义与调用 用户函数需要用CREATE FUNCTION语句来创建,用ALTER FUNCTION语句来修改。通过sp_helptext系统存储过程来获取所创建函数的源代码。,用户创建函数时可以有0个、1个或多个参数,必须返回单一的值。返回值可以是标量,也可以是一个表。,1标量函数,(1)标量函数例:定义求两数之和的自定义函数CREATE FUNCTION mf_sum (d1 AS tinyint,

7、 d2 AS tinyint)RETURNS intBEGIN DECLARE my_sum int SELECT my_sum= d1+d2RETURN my_sumEND,标量函数的定义语法:CREATE FUNCTION owner_name. function_name( parameter_name AS scalar_parameter_data_type = default ,n ),RETURNS scalar_return_data_type WITH ENCRYPTION | SCHEMABINDING , n AS BEGIN function_body RETURN s

8、calar_expressionEND,参数说明: 语法比较复杂,但大致是这样几个部分:函数名,参数列表,返回值类型,函数体。 函数名部分:owner_name指函数的拥有者。function_name指函数名称。要符合T-SQL标识符命名规则。, 参数列表部分:parameter_name指参数名。scalar_parameter_data_type指参数的数据类型,不能是text、ntext、image和timestamp,也不能是用户自定义数据类型。default可以指定参数的默认值。如果调用函数时省略了该参数,那么该参数就使用default值。, 返回值类型:用scalar_retur

9、n_data_type指定。 函数体部分:用BEGINEDN括起来。由于是标量函数,所以要有RETURN语句来返回函数值给调用者。, 其他部分:WITH ENCRYPTION用于对函数的定义语句进行加密。WITH SCHEMABINDING用于将函数绑定到它所引用的数据库对象上。,(2)标量函数的调用语法: 所有者名.函数名(实参1,实参n) 所有者名.函数名 实参1,实参n 或者写成 所有者名.函数名 形参1=实参1, 形参n=实参n,参数说明: 第一种调用方法很类似与平常使用函数的方法。所以可以和SELECT或SET联合使用。 第二种调用方法需结合EXEC来使用。这类似于存储过程了。当采用

10、“形参1=实参1, 形参n=实参n”的形式时形参的顺序可以与函数定义时的顺序不一致。所有者名一般就使用dbo。如:print dbo.mf_sum(1,2),2内嵌表值函数,(1)内嵌表值函数的定义例:建立一个查询性别姓名的函数CREATE FUNCTION mf_sname_sex (ssex AS varchar(12)RETURNS table asRETURN (select sname, ssex from student where ssex=ssex),内嵌表值函数的定义语法:CREATE FUNCTION owner_name. function_name ( paramete

11、r_name AS scalar_parameter_data_type = default ,n ),RETURNS TABLE WITH ENCRYPTION | SCHEMABINDING , n AS RETURN (select-stmt) ,参数说明:与标量函数相比不同的地方是:返回值类型为TABLE,表示返回一个表。用RETURN (select-stmt) 代替了BEGINEND语句块,表示返回内嵌表值。,(2)内嵌表值函数的调用使用上面所定义的mf_sname_sex函数select * from mf_sname_sex(男)select * from mf_sname_s

12、ex(女),3通过企业管理器创建用户定义函数,(1)打开“企业管理器”并展开数据库,进而展开“数据库”,选择“Student”下的“用户定义的函数”项目,单击鼠标右键,出现弹出菜单后选择“新建用户定义的函数”命令。如图6-3所示。,图6-3 新建用户自定义函数,(2)这时出现用户定义函数的模板界面。用函数的文本替换模板中的内容。如图6-4所示。,图6-4 完成用户定义函数,(3)可以单击“检查语法”按钮来检查函数文本有无语法错误,确认没有错误后单击“确定”便完成了创建工作。,6.7.2 用户定义函数的删除,语法:DROP FUNCTION owner_name.function_name,n参

13、数说明: owner_name:函数的拥有者。 该语句一次可以删除多个用户定义函数。,6.8.1 批处理语句利用批处理语句来提高程序的执行效率。批处理是使用GO语句将多条SQL语句进行分隔,其中每两个GO之间的SQL语句就是一个批处理单元。一个批处理中可以只包含一条语句,也可以包含多条语句,当利用批处理时注意以下规则:CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其它语句将被解释为第一个 CREATE 语句定义的一部分。不能在同一个批处理中更改表,然后引用新列。如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。在书写批处理语句时,需要使用GO语句作为批处理命令的结束标志。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报