SQL语法总结

 

sql

 

提取

 

插入

 

删除

 

更新

 

查找

 

排序

 

总数

 

求和

 

平均

 

最大

 

最小

while语句

 

游标

分类: SQL

一、SQL基础语法

    选择:select * from table where 范围

    插入:insert into table(field1,field2)values(value1,value2)

    删除:delete from table where 范围

    更新:update table set field1=value1 where 范围

    查找:select * from table1 where field1 like '%value1%'

    排序:select *from table order by field1,field2[desc]

    总数:select count as totalcount from table

    求和:select sum(field)as sumvalue from table

    平均:select avg(field)as avgvalue from table

    最大:select max(field)as maxvalue from table

    最小:select min(field)as minvalue from table

 1.提取数据(提取、增加、删除、修改、查询)

   SELECT 

      RTRIM ( HuoPinPinPai_b.PinPaiBianHao)as PinPaiBianHao,

      RTRIM ( HuoPinLeiXing_b.HuoPinLeiXingBianHao)as HuoPinLeiXingBianHao,

      RTRIM (KuCunShu )as KuCunShu

  FROM        

      HuoPinDangAn_b INNER JOIN

      HuoPinPinPai_b ON HuoPinDangAn_b.PinPaiBianHao = HuoPinPinPai_b.PinPaiBianHao INNER JOIN

      HuoPinLeiXing_b ON HuoPinDangAn_b.HuoPinLeiXingBianHao =HuoPinLeiXing_b.HuoPinLeiXingBianHao

  where   HuoPinLeiXing_b.HuoPinLeiXingBianHao=@hplx1  and HuoPinPinPai_b.PinPaiBianHao=@ppbh1 

  order by  HuoPinLeiXing_b.CangKuBianHao,HuoPinDangAn_b.HuoPinLeiXingBianHao

 2.新增

   insert into  HuoPinDangAn_b                     

                (HuoPinDangAn_b.HuoPinLeiXingBianHao,

                HuoPinDangAn_b.HuoPinMingCheng)

    values      (@hplx1,@hpmc1)                  

 3.删除

    delete from   HuoPinDangAn_b

    where         HuoPinBianHao =@hpbh1 

 4.修改

   update HuoPinDangAn_b

   set

              HuoPinMingCheng=@hpmc1 ,

              HuoPinJianPin=@hpjp1 

   where      HuoPinBianHao=@hpbh1

 5.查询

 SELECT 

       RTRIM ( HuoPinPinPai_b.PinPaiBianHao)as PinPaiBianHao,

       RTRIM ( HuoPinLeiXing_b.HuoPinLeiXingBianHao)as HuoPinLeiXingBianHao

       RTRIM (KuCunShu )as KuCunShu

 FROM        

     HuoPinDangAn_b INNER JOIN

     HuoPinPinPai_b ON HuoPinDangAn_b.PinPaiBianHao = HuoPinPinPai_b.PinPaiBianHao INNER JOIN

     HuoPinLeiXing_b ON HuoPinDangAn_b.HuoPinLeiXingBianHao = HuoPinLeiXing_b.HuoPinLeiXingBianHao

 where  HuoPinDangAn_b.HuoPinMingCheng like '%'+@hpmc1+'%' 

6.判断新增数据的出/入库,然后改变库存表中的库存数

    insert into HuoPinChuRu_b (YuanShiDanHao,  DanJuHao)

    Values     ( @YuanShiDanHao,  @DanJuHao )

    if (@ChuRuLeiXingBianHao=8001)--入库

    begin

           update HuoPinDangAn_b

           set   HuoPinDangAn_b.KuCunShu=HuoPinDangAn_b.KuCunShu+@HuoPinShuLiang

           where HuoPinBianHao =@HuoPinBianHao

    end

    else --出库

    begin

           update HuoPinDangAn_b

           set HuoPinDangAn_b.KuCunShu=HuoPinDangAn_b.KuCunShu-@HuoPinShuLiang

           where HuoPinBianHao =@HuoPinBianHao

    end

二、SQL中实现循环每一行做一定的操作

  1.While语句

    select Department_No as departmentNo,ROW_NUMBER()

    OVER(ORDER BY Department_No) AS rowNumber into

    #depTemp            --建立临时表                        
    from departments;

    declare @max int    --用来获得最大的rowNumber5 B,        

    select @max=max(rownumber)

    from #depTemp

    declare @rowNo int

    set @rowNo=1
    while @rowNo<=@max   --用来对每一个rowNumber来进行循环操作  
    begin                --此处对每一行要进行的操作的代码
    set @rowNo=@rowNo+1

    end

    drop table #depTemp   --清除临时表

  2.游标

    declare @id int,@name varchar(20);   -- 定义游标

    declare cur cursor fast_forward for
    select id,name from a;
    open cur;                           -- 打开游标
    fetch next from cur into @id,@name      -- 提取游标数据
    while @@fetch_status=0
    begin                                     

    --此处对每一行要进行的操作的代码
    fetch next from cur into @id,@name      -- 提取游标数据
    end
    close cur;                                -- 关闭游标
    deallocate cur;                           -- 释放游标

三、其他常用语句
1.数据库中的四舍五入
  SELECT  ROUND(JiangJinJinE , 1) AS JinE --精确到小数点后一位

  from  JiangJinLeiXing_b

 

2.提取某个表中最后一条数据

  
 select top 1 JiaRenXinXi_b.*,


      ZhiWuXinXi_b.ZhiWuMingChen


   FROM        JiaRenXinXi_b INNER JOIN

                ZhiWuXinXi_b ON JiaRenXinXi_b.ZhiWuBianHao = ZhiWuXinXi_b.ZhiWuBianHao  

  order by ZiDongBianHao desc

   3.从数据库中得到当前时间
select DATENAME(YEAR,GETDATE())+'-'+DATENAME(MONTH ,GETDATE())+'-'+DATENAME (DAY,GETDATE ())+' '+DATENAME (HOUR ,GETDATE ())+':'+DATENAME (MINUTE ,GETDATE ())+':'+DATENAME (SECOND ,GETDATE ())+':'+DATENAME (MILLISECOND ,GETDATE ())

  4.SQL 如何得到本月第一个星期天的日期
declare @NowWeekDay nvarchar(20)

set @NowWeekDay=( select datename(dw,datename(year,getdate())+datename(month,getdate())+'01'))select case @NowWeekDay

when '星期日' then datename(year,getdate())+datename(month,getdate())+'01'

when '星期一' then datename(year,getdate())+datename(month,getdate())+'07' 

when '星期二' then datename(year,getdate())+datename(month,getdate())+'06'

when '星期三' then datename(year,getdate())+datename(month,getdate())+'05'

when '星期四' then datename(year,getdate())+datename(month,getdate())+'04'

when '星期五' then datename(year,getdate())+datename(month,getdate())+'03'

when '星期六' then datename(year,getdate())+datename(month,getdate())+'02'  

end
 

 5.获取某一个表的所有字段

  (1)select name

       from   syscolumns

       where  id=object_id('表名')

 

  (2)select name

       from   syscolumns

       where id in(select id from sysobject where type='u' and name='表名')

 6.查看与某一个表相关的视图、存储过程、函数

     select a.*

      from    sysobjects a,syscomments b

      where a.id=b.id and b.text like '%表名%'

 7.查询某一个表的字段和数据类型

     select column_name,data_type

      from   information_schema.columns

      where table_name='表名'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值