博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLServer 基本语法
阅读量:5031 次
发布时间:2019-06-12

本文共 3417 字,大约阅读时间需要 11 分钟。

  最近一直忙于项目,项目中奇奇怪怪的问题也遇到了不少,总结起来,最后解决办法都是从数据库入手,给一个数据源从而来解决项目中存在的问题,比如说:查询出来的grid列表绑定数据源的时候,界面显示的日期列,都会精确到时分秒,界面看是很不友好,截个图给大家看看:

  大家看到我特殊标记的地方了吧,在这里【出车时间】和【返回时间】,根本没有必要显示那么准确的时间,只需要显示到年月日即可,所以呢,数据源查询出来的数据直接绑定就会是这样,如果要处理就必须使用属性给格式化下显示样式,在这里,我需要申明下,我使用的是Devexpress 来做的项目,所以吧一些标签里边写的属性说不定还不起作用(偶也是新学Devexpress控件者),这里我只是举例时间列说明而已,由于不同需求,显示时间也是根据不同的需要来规范格式的,而我说的最简单的一种,精确年月日,html代码可以这么来写一句属性:

  

 这样一句属性即可把界面上显示的时间为‘yyyy-mm-dd‘的样子,

随便一个截图说明下效果。

以上是可以实现你想要的结果,但是还有的效果你从界面上来处理很麻烦,甚至有时候还无法解决,所以呢,此时你从数据库着手是最简单便捷的方式,只需要把sq server的语法掌握熟悉了,然后做起这个东西那是小case 啦。就比如这个时间,如果你对时间函数比较熟悉,就直接在sql脚本里边加上函数就over 了。

    今天写这篇文章的目的,主要是想提醒自己吃透sql 的语法以及常用的函数,因为自己对sql的语法使用不是很熟悉,平时也就使用写简单的查询呀,删除,更新啥的,,不过后来使用了存储过程,很多时候都没有去使用像游标,标量值函数,表值函数,索引...  其实使用了这些为数据底层做了基础,很大程度上也就优化了我们的程序运行的速度和执行效率。所以,今天利用下班时间来写下这片博客,主要是整理了下基本的sql 语法,有错误的地方欢迎大家给指出,还希望高手指点。

以下就是我下班之前加上下班时间晚走了那么一会给整理的sql语法:

一、定义变量

 简单赋值
declare @a int
set @a=5
print @a
--使用select语句赋值
declare @user1 nvarchar(50)
select @user1='张三'
print @user1
declare @user2 nvarchar(50)
select @user2 = Name from ST_User where ID=1
print @user2
--使用update语句赋值
declare @user3 nvarchar(50)
update ST_User set @user3 = Name where ID=1
print @user3
二、表、临时表、表变量
view sourceprint?--创建临时表1
create table #DU_User1
(
  [ID] [int] NOT NULL,
  [Oid] [int] NOT NULL,
  [Login] [nvarchar](50) NOT NULL,
  [Rtx] [nvarchar](4) NOT NULL,
  [Name] [nvarchar](5) NOT NULL,
  [Password] [nvarchar](max) NULL,
  [State] [nvarchar](8) NOT NULL
);
--向临时表1插入一条记录
insert into #DU_User1 (ID,Oid,[Login],Rtx,Name,[Password],State)

values (100,2,'LS','0000','临时','321','特殊');

--从ST_User查询数据,填充至新生成的临时表
select * into #DU_User2 from ST_User where ID<8
--查询并联合两临时表
select * from #DU_User2 where ID<3 union select * from #DU_User1
--删除两临时表
drop table #DU_User1
drop table #DU_User2
view
sourceprint?--创建临时表
CREATE TABLE #t
(
  [ID] [int] NOT NULL,
  [Oid] [int] NOT NULL,  
  [Login] [nvarchar](50) NOT NULL,
  [Rtx] [nvarchar](4) NOT NULL,
  [Name] [nvarchar](5) NOT NULL,
  [Password] [nvarchar](max) NULL,
  [State] [nvarchar](8) NOT NULL,
)
--将查询结果集(多条数据)插入临时表
insert into #t select * from ST_User
--不能这样插入
--select * into #t from dbo.ST_User
--添加一列,为int型自增长子段
alter table #t

add [myid] int NOT NULL IDENTITY(1,1)

--添加一列,默认填充全球唯一标识
alter table #t add [myid1] uniqueidentifier NOT NULL default(newid())
select * from #t
drop table #t
view sourceprint?--给查询结果集增加自增长列
--无主键时:
select IDENTITY(int,1,1)as ID, Name,[Login],[Password]

into #t from ST_User  select * from #t

--有主键时:
select (select SUM(1) from ST_User where ID<= a.ID) as myID,* from ST_User a order by myID
view sourceprint?--定义表变量
declare @t table
(  
   id int not null,  
   msg nvarchar(50) null
)
insert into @t values(1,'1') 

insert into @t values(2,'2')  select * from @t

三、循环
view sourceprint?--while循环计算1到100的和
declare @a int
declare @sum int

set @a=1

set @sum=0
while
  @a<=100
    begin
      set @sum+=@a
      set @a+=1
    end

  print @sum
四、条件语句
view sourceprint?--if,else条件分支
if(1+1=2)
  begin
    print '对'
  end
else
  begin
    print '错'
  end
--when then条件分支
declare @today int
declare @week nvarchar(3)
set @today=3
set @week=case
  when @today=1 then '星期一'
  when @today=2 then '星期二'
  when @today=3 then '星期三'
  when @today=4 then '星期四'
  when @today=5 then '星期五'
  when @today=6 then '星期六'
  when @today=7 then '星期日'
  else '值错误'
end
print @week

     由于时间关系,整理到这里,接下来整理下游标,触发器,存储过程,自定义函数,希望大家给以指导!

 

 

转载于:https://www.cnblogs.com/sky-me/archive/2012/12/04/SqlServer.html

你可能感兴趣的文章
Confluence 6 SQL Server 数据库驱动修改
查看>>
Confluence 6 通过 SSL 或 HTTPS 运行 - 备注和问题解决
查看>>
【47.76%】【Round #380B】Spotlights
查看>>
Git(使用码云)
查看>>
分享Java web 开发必游之路
查看>>
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题(转载)
查看>>
Bean的Scope
查看>>
【BZOJ】3142: [Hnoi2013]数列
查看>>
http初探
查看>>
W3C标准以及规范
查看>>
elasticsearch的安装
查看>>
__next__()
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
UpdatePanel 内控件 更新“外的”控件【转】
查看>>
[CF508E] Arthur and Brackets
查看>>
[CF1029E] Tree with Small Distances
查看>>
tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)
查看>>
美团推荐算法实践
查看>>
Netty官方示例
查看>>