SQL存储过程高级基础语法

发布 2020-01-02 09:28:28 阅读 2894

sql存储过程基本语法:

一。注释。- 单行注释,从这到本行结束为注释sql 语法,类似c++,c#中//

/* 多行注释,类似c++,c#中/*

二。变量(int, smallint, tinyint, decimal,float,real, money ,smallmoneysql 语法, text ,image, char, varchar。。。

语法:declare

} [n]例如:

declare @id int --申明一个名为@id的变量,类型为int型。

三。在sql server窗口中打印出变量的值。

语法:print 'any ascii text' |local_variable | function | string_expr

四。变量赋值。

例如:-从数据表中取出第一行数据的id,赋值给变量@id,然后打印出来。

declare @id int

set @id = select top(1) categoryid from categories)

print @id

在sql中,我们不能像**那样直接给变量赋值,例如@id = 1,如果要达到这样的功能,可以这样写:

declare @id int

set @id = select 1) -类似 @id=1

select @id=1 --类似 @id=1

print @id

五。变量运算(+,sql 语法,/,

以下必要时候省略变量申明。

set @id = select 1+5) -类似 @id=1+5

set @id=(select 1-@id) -类似 @id=1-@id

六。比较操作符。

>(greater than).

<(less than).

= equals).

<=less than or equal to).

>=greater than or equal to).

!=not equal to).

<>not equal to).

!

!>not greater than).

没什么说的。

七。语句块:begin … end

将多条语句作为一个块,类似与c++,c#中的。

例如:begin

set @id1 = select 1)

set @id2 = select 2)

end八。if, if…else…

语法:if boolean_expressionelse

例如:if @id is not null

print ‘@id is not null

if @id = 1

beginset @id = select 1 + 1)

endelse

begin

set @id=(select 1+2)

end上面的例子用到了比较操作符,语句块,和if的语法。

九。执行其他存储过程 exec

例如。exec dbo.[sales by year] @beginning_date=’1/01/90’, ending_date=’1/01/08’

十。事务。语法:

begin tran[saction] [transaction_name | tran_name_variable]

例如。begin tran

- 做某些操作,例如insert into …

if @@error <>0

beginrollback tran

endelse

begincommit tran

end十一。游标。

我们可以在存储过程中用select语句取出每一行数据进行操作,这就需要用到游标。

语法:declare cursor_name cursor

local | global]

forward_only | scroll]

static | keyset | dynamic | fast_forward]

read_only | scroll_locks | optimistic]

type_warning]

for select_statement

for update [of column_name [,n]]]

例如:declare @au_id varchar(11), au_fname varchar(20) –申明变量。

-申明一个游标。

declare authors_cursor cursor for

select au_id, au_fname from authors

-打开游标。

open authors_cursor

-取出值。fetch next from authors_cursor into @au_id, @au_fname

-循环取出游标的值。

while @@fetch_status = 0

beginprint @au_id

print @au_fname

print ‘

fetch next from authors_cursor

into @au_id, @au_fname

endclose authors_cursor –关闭游标。

deallocate authors_cursor --释放游标。

Oracle高级编程 存储过程

存储过程 pl sql提供了三种判断语句。1 if then 2 if then else 3 if then else if else 编写一个存储过程输入员工号,如果该员工初始的工资小于1200,则给其增加10 j a程序调用procedure 循环语句 1 loop是pl sql中最简单的循环...

存储过程格式

过程的命名,一般是目标表名前加p 比如目标表是table 01,则过程名字是p table 01。一个过程可以有若干个插入语句,插入语句之后,不要忘记commit.我们只拿一个的举例子。过程中用到的表都是提前建好的。一般不在过程中建表。表名也可以。作为输入参数,如果表名作为输入参数,则对该表的操作,...

存储过程学习总结

存储过程。一 概述。存储过程 stored procedure 应用在大型数据库系统中,是sql语句和流程控制语句的集合,经编译后存储在数据库系统中,用户通过指定存储过程的名字并给出参数 如果带有参数的话 来执行,类似高级语言中的函数。在创建时编译一次,以后执行时运行很快。存储过程的种类 1系统存储...