SQL编程

1、数学函数:操作一个数据,返回一个结果

  取上限 ceiling  如果有一个小数就取大于它的一个最小整数   列如9.5   就会取到 10

select code,name,ceiling(price) from car

 

   取下限 floor   如果有一个小数就会舍掉小数点以后的数取整

select floor(price) from car

 

  ABS 绝对值   一张表中有负数就会变成正数

 

  派PI(),圆周率,括号里不需要加东西

  ROUND 四舍五入

   select round(3.14,1)  l两个参数  前面是一个小数后面是表示保留几位小数

   (3.16,1)输出的结果就是3.2

  SQRT 开根号

  SQUARE平方,自己乘以自己

 

 

2、字符串函数:

  转换成大写  select upper(pic) from car

  转换成小写  select lower() from car

 

  去空格

  select ltrim('   123   ') 去左空格

  select rtrim('   123   ') 去右空格

 

  space()  里面放几个数字,就打印出几个空格

 

  LEFT ,类似于substring,从左边开头截取

  select LEFT('123456',3)  结果是123

 

  len   长度

  select len('aaaaaa')  返回几个长度

 

   replace  替换

   select replace('aaaaabbaaaaa','bb','haha')   把第一个字符串中的bb替换成haha 

 

   reverse   翻转

   select reverse('abc')     结果是cba

 

    字符串转换函数   str

    select str(1.567,3,1)   把1.567转换成字符串,最多留3位,小数点也算一位,保留小数点后1位

 

    字符串截取 SUBSTRING

    select substring('abcdefg',2,3)    从第二位开始截取,截取的长度是3个,结果就是bcd

    

 

    3、日期时间函数:

        

        获取当前系统时间GETADTE()

        select getdate()    获取的是当前电脑上的时间

        sysdatetime()       获取数据库服务的时间

   

         获取年月日   year month day

         select year('1991-1-1')

     

         判断日期是否正确,isdate  返回  bit

         select isdate('2016-2-30')返回bit类型,如果是false就返回0,true就返回1

  

          添加时间  dateadd

           select dateadd(year,5,'2000-1-1')    第一个参数是要添加什么,第二个是添加多少,第三个是给谁添加

            结果返回的是2005-1-1

 

          返回星期几 datename 返回的值是字符串

          select datename(weekday,'2000-1-1')

     

          也可以返回第几天,按月

          select datename(day,'2000-1-1')

 

          一年中第几天

           select datename(dayofyear,'2000-1-1')

   

           datepart  一样可以返回周几,但是返回的是int类型

          

 

  TSQL编程

  1、索引

     添加索引,设计界面,在任何一列前右键--索引/键--点击进入添加某一列为索引

 

  2、视图

      视图就是我们查询出来的虚拟表

       创建视图:create view 视图名

       as

     SQL查询语句,分组,排序,in 等都不能写

     视图的用法:select * from 视图名

   建立视图查询更方便

    下图,点击执行就保存了视图

       

  下图:从数据库中——视图就可显示

      

 

  3、SQL编程     语法格式

 

    定义变量declare @变量名 数据类型             所有的变量都以@开头

    列如:select @a int

    变量赋值:set @变量名= 值

      set @a=10

 

    

 

  select @a  --直接打印在结果框中

   set @a=10  --赋值,不打印

   select @a  --输出 结果   打印在消息框中

   print @a  --第二种输出方式

 

变量使用情况:

查汽车表中名称含有宝马两个字的

  declare @name varchar(20)

  set @name='宝马'

  select * from car where name like '%'+@name+'%'

  

查汽车表中所有汽车的平均值并输出

declare @price decimal(10,4)

select @price=avg(price) from car

print '所有汽车的平均价格为:'+cast(@price as varchar(20))    表示数据转换

 

-------------------------------------------------------------------------

 if....else 的用法,if 后面没有小括号,花括号用begin  end  替代

 if 判断条件

 begin

     要执行的语句

 end

 else

 begin 

     要执行的语句

 end

 

  

--------------------------------------------------------------------------

 declare @a int

 declare @b int

 declare @c int

 set @a=10

 set @b=5

 if @a>@b

 begin

     set @c=@a+@b

 end

 else

 begin

     set @c=@a-@b

 end

 print @c

 

--------------------------------------------------------------------------------

C#里的 switch case  变形到数据库里的用法

 

declare @ccname varchar(20)

 set @ccname='宝马'

 select * from car where name like

 

 case  -- switch...开头

  when @ccname='宝马' then'%宝马%'     当....输出...

  when @ccname='奥迪' then'%奥迪%'

 else '%'    条件都不满足执行这个

 end  --switch.... 结尾

 

----------------------------------------------------------------------------

 

循环:

注意循环四要素

 

declare @str varchar(20)

set @str='你好'

declare @i int

set @i=1

 

while @<=10  条件

begin

     print @str+cast(@i as varchar(20))

     set @i=@i+1          循环体

end

 

-----------------------------------------------

注意:语句结束之后不要写分号或逗号

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/yp11/p/5742950.html