SQLServer数据库编程基本语法汇总.docx

上传人:b****6 文档编号:5151715 上传时间:2022-12-13 格式:DOCX 页数:17 大小:17.08KB
下载 相关 举报
SQLServer数据库编程基本语法汇总.docx_第1页
第1页 / 共17页
SQLServer数据库编程基本语法汇总.docx_第2页
第2页 / 共17页
SQLServer数据库编程基本语法汇总.docx_第3页
第3页 / 共17页
SQLServer数据库编程基本语法汇总.docx_第4页
第4页 / 共17页
SQLServer数据库编程基本语法汇总.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

SQLServer数据库编程基本语法汇总.docx

《SQLServer数据库编程基本语法汇总.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库编程基本语法汇总.docx(17页珍藏版)》请在冰豆网上搜索。

SQLServer数据库编程基本语法汇总.docx

SQLServer数据库编程基本语法汇总

 

一、定义变量

 

--简单赋值

 

declare@aint

 

set@a=5

 

print@a

 

--使用select语句赋值

 

declare@user1nvarchar(50)

 

select@user1='张三'

 

print@user1

 

declare@user2nvarchar(50)

 

select@user2=NamefromST_User

 

print@user2

 

whereID=1

 

--使用update语句赋值

 

declare@user3nvarchar(50)

 

updateST_Userset@user3=NamewhereID=1

 

print@user3

 

二、表、临时表、表变量

 

--创建临时表1

 

createtable#DU_User1

 

 

[ID][int]NOTNULL,

 

[Oid][int]NOTNULL,

 

[Login][nvarchar](50)NOTNULL,

 

[Rtx][nvarchar](4)NOTNULL,

 

[Name][nvarchar](5)NOTNULL,

 

[Password][nvarchar](max)NULL,

 

[State][nvarchar](8)NOTNULL

 

);

 

--向临时表1插入一条记录

 

insertinto#DU_User1(ID,Oid,[Login],Rtx,Name,[Password],State)

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

 

--从ST_User查询数据,填充至新生成的临时表

 

select*into#DU_User2fromST_UserwhereID<8

 

--查询并联合两临时表

 

select*from#DU_User2whereID<3unionselect*from#DU_User1

 

--删除两临时表

 

droptable#DU_User1

 

droptable#DU_User2

--创建临时表

 

CREATETABLE#t

 

 

[ID][int]NOTNULL,

 

[Oid][int]NOTNULL,

 

[Login][nvarchar](50)NOTNULL,

 

[Rtx][nvarchar](4)NOTNULL,

 

[Name][nvarchar](5)NOTNULL,

 

[Password][nvarchar](max)NULL,

 

[State][nvarchar](8)NOTNULL,

 

 

--将查询结果集(多条数据)插入临时表

 

insertinto#tselect*fromST_User

 

--不能这样插入

 

--select*into#tfromdbo.ST_User

 

--添加一列,为int型自增长子段

 

altertable#tadd[myid]intNOTNULLIDENTITY(1,1)

 

--添加一列,默认填充全球唯一标识

 

altertable#tadd[myid1]uniqueidentifierNOTNULLdefault(newid())

 

select*from#t

 

droptable#t

--给查询结果集增加自增长列

 

--无主键时:

 

selectIDENTITY(int,1,1)asID,Name,[Login],[Password]into#tfromST_User

select*from#t

 

--有主键时:

 

select(selectSUM

(1)fromST_UserwhereID<=a.ID)

ST_UseraorderbymyID

asmyID,*from

--定义表变量

 

declare

@ttable

idint

not

null,

msgnvarchar(50)null

insert

into

@tvalues(1,'1'

insert

into

@tvalues(2,'2'

select

*from@t

 

三、循环

 

--while循环计算1到100的和

 

declare@aint

 

declare@sumint

 

set@a=1

 

set@sum=0

 

while@a<=100

 

begin

 

set@sum+=@a

 

set@a+=1

 

end

 

print@sum

 

四、条件语句

 

--if,else条件分支

 

if(1+1=2)

 

begin

 

print'对'

 

end

 

else

 

begin

 

print'错'

 

end

 

--whenthen条件分支

 

declare@todayint

 

declare@weeknvarchar(3)

 

set@today=3

 

set@week=case

 

when@today=1then'星期一'

 

when@today=2then'星期二'

 

when@today=3then'星期三'

 

when@today=4then'星期四'

 

when@today=5then'星期五'

 

when@today=6then'星期六'

 

when@today=7then'星期日'

 

else'值错误'

 

end

 

print@week

 

五、游标

 

declare@IDint

 

declare@Oidint

 

declare@Loginvarchar(50)

 

--定义一个游标

 

declareuser_curcursorforselectID,Oid,[Login]fromST_User

 

--打开游标

 

openuser_cur

 

while@@fetch_status=0

 

begin

 

--读取游标

 

fetchnextfromuser_curinto@ID,@Oid,@Login

 

print@ID

 

--print@Login

 

end

 

closeuser_cur

 

--摧毁游标

 

deallocateuser_cur

 

六、触发器

 

触发器中的临时表:

 

Inserted

 

存放进行insert和update操作后的数据

 

Deleted

 

存放进行delete和update操作前的数据

 

--创建触发器

 

CreatetriggerUser_OnUpdate

 

OnST_User

 

forUpdate

 

As

 

declare@msgnvarchar(50)

 

--@msg记录修改情况

 

select@msg=N'姓名从“'+Deleted.Name+N'”修改为“'+Inserted.Name+'”'fromInserted,Deleted

 

--插入日志表

 

insertinto[LOG](MSG)values(@msg)

 

--删除触发器

 

droptriggerUser_OnUpdate

 

七、存储过程

 

--创建带output参数的存储过程

 

CREATEPROCEDURE_Sum

 

@aint,

 

@bint,

 

@sumintoutput

 

AS

 

BEGIN

 

set@sum=@a+@b

 

END

 

--创建Return返回值存储过程

 

CREATEPROCEDURE_Sum2

 

@aint,

 

@bint

 

AS

 

BEGIN

 

Return@a+@b

 

END

 

--执行存储过程获取output型返回值

 

declare@mysumint

 

executePR_Sum1,2,@mysumoutput

 

print@mysum

 

--执行存储过程获取Return型返回值

 

declare@mysum2int

 

execute@mysum2=PR_Sum21,2

 

print@mysum2

 

八、自定义函数

 

函数的分类:

 

1)标量值函数

 

2)表值函数

 

a:

内联表值函数

 

b:

多语句表值函数

 

3)系统函数

 

--新建标量值函数

 

createfunctionFUNC_Sum1

 

 

@aint,

 

@bint

 

 

returnsint

 

as

 

begin

 

return@a+@b

 

end

 

--新建内联表值函数

 

createfunctionFUNC_UserTab_1

 

 

@myIdint

 

 

returnstable

 

as

 

return(select*fromST_UserwhereID<@myId)

 

--新建多语句表值函数

 

createfunctionFUNC_UserTab_2

 

 

@myIdint

 

 

returns@ttable

 

 

[ID][int]NOTNULL,

 

[Oid][int]NOTNULL,

 

[Login][nvarchar](50)NOTNULL,

 

[Rtx][nvarchar](4)NOTNULL,

 

[Name][nvarchar](5)NOTNULL,

 

[Password][nvarchar](max)NULL,

 

[State][nvarchar](8)NOTNULL

 

 

as

 

begin

 

insertinto@tselect*fromST_UserwhereID<@myId

 

return

 

end

 

--调用表值函数

 

select*fromdbo.FUNC_UserTab_1(15)

 

--调用标量值函数

 

declare@sint

 

set@s=dbo.FUNC_Sum100,(50)

 

print@s

 

--删除标量值函数

 

dropfunctionFUNC_Sum1

 

谈谈自定义函数与存储过程的区别:

 

一、自定义函数:

 

1.可以返回表变量

 

2.限制颇多,包括

 

·不能使用output参数;

 

·不能用临时表;

 

·函数内部的操作不能影响到外部环境;

 

·不能通过select返回结果集;

 

·不能update,delete,数据库表;

 

3.必须return一个标量值或表变量

 

自定义函数一般用在复用度高,功能简单单一,争对性强的地方。

二、存储过程

 

1.不能返回表变量

 

2.限制少,可以执行对数据库表的操作,可以返回数据集

 

3.可以return一个标量值,也可以省略return

 

存储过程一般用在实现复杂的功能,数据操纵方面。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1