zoukankan      html  css  js  c++  java
  • 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用于返回具体的值/值变量。
  • 相关阅读:
    VirtualBox+Windbg 进行双机调试的方法
    (串口通信编程) 开源串口调试助手Common (Com Monitor)
    Win32SDK中(串行)通信资源概要(不断更新)
    对WDK中LIST_ENTRY的遍历
    用C语言写的一个控制台界面的通讯录管理系统
    我对Windows桌面任务栏自动隐藏功能的一点小小改进不再自动弹出(20130226更新)
    对WDK中对LIST_ENTRY的操作的相关函数的实现及简单运用
    我对CONTAINING_RECORD宏的详细解释
    基于51单片机实现模拟IIC总线时序
    uploadfy 常见问题收集
  • 原文地址:https://www.cnblogs.com/LNCC-ZhangXiang/p/10931874.html
Copyright © 2011-2022 走看看