第十章SQL函数 函数综述 系统函数 用户自定义函数的基本操作 创建用户自定义函数 查看用户自定义函数 冷修改用户自定义函数 删除用户自定义函数
第十章 SQL函数 ❖ 函数综述 ❖ 系统函数 ❖ 用户自定义函数的基本操作 ❖ 创建用户自定义函数 ❖ 查看用户自定义函数 ❖ 修改用户自定义函数 ❖ 删除用户自定义函数
第十章SQL函数 函数综述 为了使用户对数据库进行查询和修改时更加方便, SQL Server在 T-SQL语言中提供了许多内部函数以供调用。用户也可以根据自己的 需要创建函数。 函数可以由系统提供,也可以由用户创建。系统提供的函数称为 内置函数,也叫做系统函数,它为用户方便快捷地执行某些操作提供 帮助;用户创建的函数称为用户自定义函数,它是用户根据自己的特 殊需求而创建的,用来补充和扩展内置函数
第十章 SQL函数 ❖ 函数综述 为了使用户对数据库进行查询和修改时更加方便,SQL server在 T-SQL语言中提供了许多内部函数以供调用。用户也可以根据自己的 需要创建函数。 函数可以由系统提供,也可以由用户创建。系统提供的函数称为 内置函数,也叫做系统函数,它为用户方便快捷地执行某些操作提供 帮助;用户创建的函数称为用户自定义函数,它是用户根据自己的特 殊需求而创建的,用来补充和扩展内置函数
第十章SQL函数 ÷系统函数标量函数 系统函数 标量函数 聚合函数 行集函数。 标量函数 标量函数对单一值操作,返回单一值。只要在能够使用表达式的 地方,就可以使用标量函数。 数学函数 日期和时间函数 字符串函数 数据类型转换函数
第十章 SQL函数 ❖ 系统函数 —标量函数 系统函数 标量函数 聚合函数 行集函数。 标量函数 标量函数对单一值操作,返回单一值。只要在能够使用表达式的 地方,就可以使用标量函数。 数学函数 日期和时间函数 字符串函数 数据类型转换函数
第十章SQL函数 ÷系统函数标量函数 数学函数 1、abs(数值型表达式) 功能:返回表达式的绝对值,其值的数据类型与参数一致。 B]: SELECT ABS(1),ABS(O), ABS(1) 2、 ceiling(数值型表达式) 功能:返回最小的大于或等于给定数值型表达式的整数值,值的 类型和给定的值相同。 noor(数值型表达式) 功能:返回最大的小于或等于给定数值型表达式的整数值 B: SELECT FLOOR(123 45), CEILING(12345) SELECT FLOOR(12345), CEILING(123 45)
第十章 SQL函数 ❖ 系统函数—标量函数 数学函数 1、abs(数值型表达式) 功能:返回表达式的绝对值,其值的数据类型与参数一致。 例:SELECT ABS(-1), ABS(0), ABS(1) 2、ceiling(数值型表达式) 功能:返回最小的大于或等于给定数值型表达式的整数值,值的 类型和给定的值相同。 floor(数值型表达式) 功能:返回最大的小于或等于给定数值型表达式的整数值。 例:SELECT FLOOR(123.45),CEILING(123.45) SELECT FLOOR(-123.45), CEILING(-123.45)
第十章SQL函数 系统函数_标量函数 数学函数 3、 SQUARE(oa表达式函数 功能:此函数用于返回给定表达式的平方值 例如: SQUARE(3)的结果为90。 POWER(数值型表达式1,数值型表达式2)函数 功能:此函数用于返回给定表达式乘指定次方的值。成方运算函 数返回值的数据类型与第一个参数的数据类型相同。 例如: POWER(2,3)表示2的3次方。 SELECT POWER(2, 3), POWER(2.0, -3), POWER(2000, -3) 4、sign(数值型表达式) 功能:判断数值的正负属性,+1表示正数;-1表示负数
第十章 SQL函数 ❖ 系统函数—标量函数 数学函数 3、SQUARE(float表达式)函数 功能:此函数用于返回给定表达式的平方值 例如:SQUARE(3)的结果为9.0。 POWER(数值型表达式1,数值型表达式2)函数 功能:此函数用于返回给定表达式乘指定次方的值。成方运算函 数返回值的数据类型与第一个参数的数据类型相同。 例如:POWER(2,3)表示2的3次方。 SELECT POWER(2,-3),POWER(2.0,-3),POWER(2.000,-3) 4、sign(数值型表达式) 功能:判断数值的正负属性,+1表示正数;-1表示负数
第十章SQL函数 系统函数_标量函数 数学函数 5、rand(整型表达式 功能:返回一个位于0和1之间的随机数,在单个查询中反复调用 rand(将产生相同的值 B]: DECLARE@counter smallint SET counter= 1 WHILE counter< 5 BEGIN SELECT RAND(@counter) Random Number SET NOCOUNT ON SET counter=(@counter+1 SET NOCOUNT OFF END GO
第十章 SQL函数 ❖ 系统函数—标量函数 数学函数 5、 rand(整型表达式) 功能:返回一个位于0和1之间的随机数,在单个查询中反复调用 rand( )将产生相同的值。 例:DECLARE @counter smallint SET @counter = 1 WHILE @counter < 5 BEGIN SELECT RAND(@counter) Random_Number SET NOCOUNT ON SET @counter = @counter + 1 SET NOCOUNT OFF END GO
第十章SQL函数 系统函数标量函数 数学函数 6、 round(数值表达式,整数) 功能:将数值四舍五入成整数指定的精度形式。整数为正表示要 进行的运算位置在小数点后,为负表示在小数点前。 B: SELECT ROUND(789. 34, 1), ROUND(789.34, 0) SELCET ROUND(789.34, -1), ROUND(789.34, -2) 7、三角函数 ACOS(noa表达式)反余弦函数:返回以弧度表示的角度值。 ASIN(noat表达式反正弦函数:返回以弧度表示的角度值 ATAN(oa表达式)反正切函数:返回以弧度表示的角度值。 SIN(noa表达式)正弦函数:返回输入表达式的三角正弦值 COS(oa表达式余弦函数:返回输入表达式的三角余弦值 TAN(noa表达式正切函数:返回输入表达式的三角正切值 no表达式余切函数:返回输入表达式的三角余切值
第十章 SQL函数 ❖ 系统函数—标量函数 数学函数 6、 round(数值表达式,整数) 功能:将数值四舍五入成整数指定的精度形式。整数为正表示要 进行的运算位置在小数点后,为负表示在小数点前。 例:SELECT ROUND(789.34,1),ROUND(789.34,0) SELCET ROUND(789.34,-1),ROUND(789.34,-2) 7、三角函数 ACOS(float表达式)反余弦函数:返回以弧度表示的角度值。 ASIN(float表达式)反正弦函数:返回以弧度表示的角度值。 ATAN(float表达式)反正切函数:返回以弧度表示的角度值。 SIN(float表达式)正弦函数:返回输入表达式的三角正弦值。 COS(float表达式)余弦函数:返回输入表达式的三角余弦值。 TAN(float表达式)正切函数:返回输入表达式的三角正切值。 COT(float表达式)余切函数:返回输入表达式的三角余切值
第十章SQL函数 系统函数标量函数 日期和时间函数 GETDATE():返回当前系统日期和时间。 DATEADD( datepart, number;date):在date值上加上 datepart和 number参数指定的时间间隔,返回新的 datetime值。 DATEDIFF( datepart, startdate, enddate):返回跨两个指定日期 的日期和时间边界数。 DATENAME( datepart,date):返回代表指定日期的指定日期部 分的字符串。 DATEPART( datepart,date):返回代表指定日期的指定日期部分 的整数 YEAR(date):返回表示指定日期中的年份的整数。 MONTH(date):返回代表指定日期月份的整数。 DAY(date):返回代表指定日期的天的日期部分的整数
第十章 SQL函数 ❖ 系统函数—标量函数 日期和时间函数 GETDATE():返回当前系统日期和时间。 DATEADD(datepart , number, date):在date值上加上datepart和 number参数指定的时间间隔,返回新的datetime值。 DATEDIFF(datepart , startdate , enddate):返回跨两个指定日期 的日期和时间边界数。 DATENAME(datepart , date):返回代表指定日期的指定日期部 分的字符串。 DATEPART(datepart , date):返回代表指定日期的指定日期部分 的整数。 YEAR(date):返回表示指定日期中的年份的整数。 MONTH(date):返回代表指定日期月份的整数。 DAY(date):返回代表指定日期的天的日期部分的整数
第十章SQL函数 系统函数标量函数 个date型数据日期部分的取值如下: Datepart缩写 Datepart缩写 vear quarter qq, q month ml dayof year dy day dd. d week wk,ww weekday dw hour hh minute m. n second millisecond ms
第十章 SQL函数 ❖ 系统函数—标量函数 一个date型数据日期部分的取值如下: Datepart 缩写 Datepart 缩写 year yy , yyyy quarter qq , q month mm , m dayof year dy , y day dd , d week wk , ww weekday dw hour hh minute mi , n second ss , s millisecond ms
第十章SQL函数 系统函数标量函数 例:查看今天的年月日,并以格式化的形式显示。在查询分析器中输 入以下代码: SELECT'今天是+ DATENAME(YY, GETDATEC)+年+ DATENAME(MM, GETDATEO)+H +DATENAME(DD, GETDATEO)+'A 例:用日期函数计算教师表中教师的年龄。其程序代码如下: USE STUDENT GO SELECT姓名, DATEDIFF(Y,出生日期 GETDATEO)AS年龄 FROM教师 GO
第十章 SQL函数 ❖ 系统函数—标量函数 例:查看今天的年月日,并以格式化的形式显示。在查询分析器中输 入以下代码: SELECT '今天是' + DATENAME (YY,GETDATE()) + '年' + DATENAME(MM,GETDATE())+‘月‘ +DATENAME(DD,GETDATE())+'日‘ 例:用日期函数计算教师表中教师的年龄。其程序代码如下: USE STUDENT GO SELECT 姓名,DATEDIFF(YY,出生日期,GETDATE()) AS 年龄 FROM 教师 GO