SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--函数)

                                  函数

系统函数(算术函数,聚合函数,数据类型转换函数,字符串函数,日期函数,系统统计函数,文本图像函数)

         算术函数:是对数据类型为整型、浮点型、实型,货币型这些列进行操作

             算术函数包括(三角函数,反三角函数,幂函数,角度弧度转化函数,取近似值函数,随机函数)
           
          三角函数:显示60度角的正弦、余弦值。                               
                                                   三角函数(返回指定角度的正弦余弦等值)  反三角函数(根据指定正弦或余弦的浮点值,返回指定的弧度角)                         
        declare @test_Var float,@Test_Value float          SIN(浮点表达式)正弦函数            ASIN(浮点表达式)反正弦
        set @test_Var=60                                   COS(浮点表达式)余弦函数            ACOS(浮点表达式)反余弦
        set @Test_Value=SIN(@test_Var)                     TAN(浮点表达式)正切函数            ATAN(浮点表达试)反正切
        select '60弧度角的正弦值为:',@Test_Value          COT(浮点表达式)余切函数            ACOT(浮点表达式)反余切
                                                                                              
在面向对象编程设计中,函数可以认为是一个集成的代码块。函数是可以反复调用。                                                                      

                     算术函数                                                       符号函数    
      角度弧度转换函数     幂函数                                               ABS(数字表达式)  取绝对值                                                        
                                                                                SIGN(数字表达式) 判断参数的符号是正号还是负号
   DEGREES:角度转换弧度    EXP  (浮点表达式)返回指定表达式的指定值                  随机函数
   RADIANS:弧度转换角度    LOG  (浮点表达式)返回指定表达式的自然对数            RAND
                           LOG10(浮点表达式)返回表达式以10为底的对数值          PI()函数
                           SQRT (浮点表达式)返回指定表达式的平方根

                                                                                                        随机函数
          取近似值的函数                                                                       declare @test_var float \声明变量,为浮点数                                               
   CELLING(数字表达式)     返回大于或等于表达式的最小整数(取整)                                set @test_var=RAID()    \为此变量赋值,该变量为一个浮点数(浮点数为0到1之间的任意浮点数)                                                                   
   FLOOR  (数字表达式)     返回小于或等于表达式的最大整数(取整)                                print @test_var
   ROUND  (数字表达式,整型表达式) 以整型的形式返回数字表达式的整型值(四舍五入)

                                                                                                        PI() 返回的是圆周率 

                                                                                               declare @test_var folat
                                                                                               set @test_var=PI()      \返回的是圆周率
                                                                                               print @test_var
declare @test_var float,@Test_Value float    \声明变量为浮点数          
set @test_var=60                             \设置角的弧度为60            
set @Test_value=RADIANS(@test_var)           \设置将弧度转换为角度
select '60弧度角转换为角度其值为:',@Test_var


        判断是否为正

declare @test_var float,@test_var2 float \声明变量为浮点数
set @test_var=-76.23352                  \为变量赋值
set @test_var2=SIGN(@test_var)           \通过SIGN函数来判断@test_ var变量是否为负数,来赋值给@test_var2if @test_var2=1                          \如果@test_var2为正数(1在SQL代表正数,-1代表负数,1和-1是判断条件)
select '当前值为正直'                    
else
print '当前值为负值'

                                             
                     字符串函数
是对二进制数据字符串和表达式执行不同的运算,此类函数作用于char、varcharbinary、 varbinary以及可以隐式转换char和varchar的数据类型。


    将字母转换为ASCII码 ASCII()                                                        将ASCII码转换为对应的数值
declare @test_String1 char(60)                                                                 
set @test_String1='H'                                                                 (!!!大写的CHAR()是ASCII码转换的)
select 'H的ASCII码是:',ASCII('A')                                                     select 'H的ASCII码是:',ASCII('A')

        所有的字符串转换为大写
declare @test_String1 char(60),@test_String2 varchar(60) \声明变量以及变量类型               将数值转换为字符 str()
set @test_String1='Hello,world!'                         \为变量1赋值            declare @test_String float,@test_String2 varchar(60)  \声明变量以及变量数据类型
set @test_String2=UPPER(@test_String1)                   \为变量2赋值            set @test_String1=1000.23456                          \为变量1赋值
print @test_String2                                      \打印变量2的值          set @test_String2='Hello,world!'                      \为变量2赋值
                                                                                  print @test_String2+str(@test_String1,20,2)           \输出变量2的值+变量1数据类型转换后的值,
UPPER(小写转换大写)                                                                                                                       字符长度最长为20为小数点后保留2位整数
LOWER(大写转换小写)



            测试字符串长度
declare @test_String1 float,@test_String2 varchar(60) \声明变量以及变量数据类型
set @test_String2='Hello, word!'                      \为变量2赋值
set @test_String1=LEN(@test_String2)                  \利用LEN测试变量2字符串长度,并把该值赋值给变量1
select '字符串Helloword!长度为:',@test_String1        \输出该程序


                  去除表达式头部空格的函数                                                                                              去除表达式尾部空格


declare @test_String1 float,@test_String2 varchar(60)\声明变量以及变量数据类型                                    declare @test_String float,@test_String2 varchar(60)\声明变量以及变量数据类型   
set @test_String2='                Hello, word!'    \为变量2赋值                                                  set @test_String2='Hello,world!    '                 \为变量2赋值   
set @test_String1=LEN(ltrim (@test_String2))        \利用LEN测试变量2字符串长度,并把该值赋值给变量1              set @test_String1=rtrim(@test_String2)               \利用LEN测试变量2字符串长度,并把该值赋值给变量1 
select '字符串Helloword!长度为:',@test_String1        利用ltrim去除变量2中的空格,(在varchar中空格算字符串的长度)   select '字符串Hello,world!长度为:'@test_String1    利用rtrim去除变量2中尾部的空格,(在varchar中空格算字符串的长度)



                       取子串函数                                                                                                          SUBSTRING(截取指定字符串从哪个字符到哪个)

LEFT函数(返回从字符串截取的指定个数的字符)

declare @test_String1 varchar(60),@test_String2 varchar(60)\声明变量以及变量数据类型                                    declare @test_String1 varchar(30),@test_String2 varchar(30)\声明变量以及变量数据类型                                     
set @test_String1=Hello, word!'                         \为变量2赋值                                                    set @test_String1='Hello, word!'                           \为变量1赋值                  
set @test_String2=LEFT(@test_String1,5)                 \利用LEFT截取变量1的字符串,截取长度为前五个字符。               set @test_String2=SUBSTRING(@test_String1,2,6)             \利用SUBSTRING截取变量1的字符串,截取长度为从第二个      
select '截取后的字符串长度为:',@test_String1                                                                             select '输出结果为:'+@test_String2                           到第六个字符。

                                       
RIGHT(从右往左截取字符串)

   


                                                                     字符串操作函数

            REPLICATE 重复函数                                                                                                                       REVERSE(将字符反转)

declare @test_String varchar(10)   \声明变量                                                                               declare @test_String1 varchar(10),@test_String2 varchar(60)   \声明变量                  
set @test_String=REPLICATE('a',6)  \使用REPLICATE函数将a字母重复六次                                                       set @test_String2='Hello,word'                                \赋值
select @test_String                \变量输出                                                                               set @test_String1=REVERSE(@test_String)                       \赋值并声明需要反转的变量
                                                                                                                            select @test_string1                                          \输出变量


           REPLACE(替换函数)

declare @test_String1 varchar(20),@test_String2 varchar(10) \声明变量
set @test_String1='Hello world!'                            \1赋值
set @test_String2= REPLACE(@test_String1'l','a')            \2赋值,并把1中字符串中所有的L转换成A。
selcet @test_String2                                        \输出


           SPACE函数                                                                                                                                       STUFF函数(替换函数)

declare @test_String1 varchar(20),@test_String2 varchar(30) \声明变量                                                  declare @test_String1 varchar(20),@test_String2 varchar(30) \声明变量
set @test_String1='Hello,world!'                            \为变量1赋值                                               set @test_String1='Hello,world!'                            \为变量1赋值
set @test_String2=@test_String1+space(5)+'空格后的内容'     \变量1后接space()函数(括号里的数字决定加多少个空格,)       set @test_String2=STUFF(@test_String1,2,3,'替换后的内容')   \利用STUFF函数将变量1中字符串,从第二个字符开始截取   
print @test_String2           \输出变量2的值                 并赋值给变量2。                                           print '输出结果为:'+@test_String2                             截取三个字符并利用''中的内容为其替换



 
            数据类型转换函数(cast)       !可转换任意数据类型                                                                                convert(数据类型转换函数) !可转换任意数据类型                                                                                                             
                                               
declare @test_String1 int,@test_String2 varchar(30)                    \声明变量                                         declare @test_var1 int                              \声明变量
set @test_String1=3000                                                 \为变量赋值                                       set @test_var1=3000                                 \为变量1赋值
print '变量@test_String1的值为'+cast(@test_String1 as varchar(30))   \将字符串类型变量转换为字符型变量                 print 'Hello,world!'+convert(varchar(30),@test_var1)\利用convert函数将变量1的数据类型转换



           日期时间函数    GETDATE()                                                                                          获取年份函数  YEAR()
declare @test_var varchar(100)  \声明变量                                                                                 declare @test_var varchar(100)   \声明变量
set @test_var=GETDATE()         \为变量赋值时间函数                                                                       set @test_var=YEAR(GETDATE())    \为变量赋值。YEAR()函数必须需要一个参数,此参数为GETDATE()
print'当前日期时间为:'+@test_var\输出当前的年份、日期和时间                                                               print '当前年份为'+@test_var     \输出变量
                                                                                                                           
                                                                                                                           set @test_var=month(GETDATE())    \获取月份值  
                                                                                                                           set @test_var=(GETDATE())         \获取当前日期
                                                                                                                           select DATENAME(DW,GETDATE())     \获取当前星期

在SQLSERVER中char、varchar、nchar、nvarchar可存放字符型数据(字符串)


                                                                            
                                                                                                                               
                                                                                                   DATEPARK   以整数的形式返回日期的指定部分
                                                                                                                                   
DATENAME()函数\以字符串的形式返回日期的指定部分                                                 eclare @test_var1 int                 \声明变量
                                                                                                 set @test_var1=DATEPART(HOUR,GETDATE())\返回小时部分(通过GETDATE函数来获取所需要输出的小时部分)
select DATENAME(HOUR,GETDATE()) \从后面的日期时间里面返回当前的小时数                           select'当前小时数为':+cast(@test_var1 as varchar(100))\通过cast将变量1转换为字符串数据类型,
                           MINUTE,         \分钟数                                                                                                      来与'当前小时数'来匹配输出





        (DATEADD)从原有日期时间增加多长时间
    
declare @test_var1 datetime              \声明变量为日期型数据类型datetime,若当前日期为5月25号如果定义为int类型+10就会变成35号而非6月4号,这里应当注意!!!
set @test_var1=DATEADD(DAY,10,GETDATE()) \利用GETDATE函数来获取当前日期,并通过DATEADD函数来给当前日期增加10天,并赋值给变量1。
select'当前小时数为:'+cast(@test_var1 as varchar(100)) \输出,并把变量1的datetime数据类型转换为字符串数据类型。



            DATEDIFF函数

DATEDIFF(datepart.startpart.endpart)


参数是给函数体内调用准备的,参数就好像调用参数时给函数下达的指令。

                   利用T-SQL语句创建函数                                         

Create Function 函数名(@parameter 变量类型[.@parameter 变量类型])       
Returns 变量类型 
as 
Begin
命令行和程序块
end


   \!!!此函数名称为 test_functionA(),此函数的作用为在()括号里填写的任何值都乘以8              

                                     
                                     1到多个参数
   \创建函数      \函数名称        \传递参数     \返回值                            
     create Function test_functionA (@test_var int) returns int\定义函数创建函数名称,定义参数名称,定义返回值。
     as
     begin\从这开始是函数体
     declare @sum int       \声明变量sum
     set @sum=@test_var*8   \为变量赋值,值为参数*8
     return @sum            \@sum只是返回值        
     end

 print dbo.test_functionA(6000)



      用循环语句调用函数

declare @test_var int    \声明变量并定义变量数值类型
set @test_var=0          \并将其变量赋值,此变量为循环值(循环次数)
while @test_var<=20      \循环的条件是@test_var<=20
begin
print dbo.test_functionA(@test_var)  \利用print输出函数的返回值
set @test_var=@test_var+1            \赋值
end

     
          修改函数                         
alter function test_functionA(@test_var int) returns int \alter function声明修改函数
as
begin
declare @sum int      \声明变量以及变量数据类型
set @sum=@test_var*20 \为变量赋值
return @sum           \定义返回值
end

\这里的returns和return的区别在于;用户定义函数时,returns是定义该函数返回值的数据类型。
                                   return用于返回具体的值/值变量。
原文地址:https://www.cnblogs.com/LNCC-ZhangXiang/p/10931874.html