SQL高级语言
今天学习了SQL高级语言
触发器、存储过程、视图等
--存贮过程格式
--create procedure name --@parms.... --as --begin
--end
---execute name 参数1 参数2
----无参数的存贮过程执行
create procedure proc2
as
begin
select * from 职工 where 工资>2000
end
execute proc2
--有参数的存贮过程
create procedure proc4 @x1 int,@x2 int,@x3 int
as
begin
declare @max int if @x1>@x2
set @max=@x1
else
set @max=@x2
if @x3>@max
set @max=@x3
print ‘3个数字中的最大值是‘+cast(@max as varchar(50)) end
execute proc4 15,18,39
视图
--视图 create view v1 as select 仓库号,城市,面积 from 仓库 create view v2 as select 姓名,工资 from 职工 where 工资>1800 create view v3 as select 仓库.仓库号,城市,面积,创建时间,姓名,性别,工资 from 仓库,职工 where 仓库.仓库号=职工.仓库号 alter view v2 as select 仓库.仓库号,城市,面积 from 仓库 drop view v3 create view test as select * from 仓库 select * from test update test set 面积=面积+88 where 仓库号=‘wh1‘ delete test where 仓库号=‘wh1‘
触发器
--触发器是一种特殊的存贮过程,他就相当于c#中的事件触发器主要是通过事件触发而被执行的 --create trigger 触发器名称 on 表 for insert[update,delete] as -- begin --程序块 --end create trigger rockyR on 仓库 for update as begin insert into 仓库(仓库号,城市,面积,创建时间) values(‘wh01‘,‘郑州‘,1800,‘2014-12-12‘),(‘wh02‘,‘北京‘,1700,‘2014-12-13‘),(‘wh03‘,‘上海‘,1600,‘2014-12-15‘) end update 仓库 set 面积=面积-10 where 仓库号=‘wh2‘
create trigger student_trigger on class after update as declare @count_student int select @count_student=@@rowcount print ‘一共修改了‘+char(48+@count_student)+‘行‘ return go use db_buiness go update class set tClassName=‘14网普‘ where tClassId=10 go exec sp_help student_trigger exec sp_helptext student_trigger
循环语句
declare @cj float,@str varchar(60) set @cj=90 set @str= case when @cj>100 or @cj<0 then ‘您输入的成绩不对,成绩应该在0-100之间‘ when @cj>=60 and @cj<70 then ‘及格‘ when @cj>=70 and @cj<80 then ‘中等‘ when @cj>=80 and @cj<90 then ‘良好‘ when @cj>=90 and @cj<=100 then ‘优秀‘ else ‘不及格‘ end print ‘该学生的成绩评语是‘+@str --case [表达式] -- when 条件表达式1 then 结果1 -- when 条件表达式2 then 结果2 -- ........ -- else -- 结果表达式n -- end
--while 条件表达式 -- begin --命令行或程序 -- end declare @x int,@sum int select @x=0,@sum=0 while @x<=100 begin set @sum=@sum+@x set @x=@x+1 end print ‘1-100之间的和‘+cast(@sum as varchar(50))
continue
--continue declare @x int,@sum int select @x=0,@sum=0 while @x<100 begin set @x=@x+1 if @x%2=1 continue set @sum=@sum+@x end print ‘偶数和‘+cast(@sum as varchar(50))
break
--break declare @x int,@sum int select @x=0,@sum=0 while @x<=10 begin set @x=@x+1 set @sum=@sum+@x if @sum>30 break end print ‘结果‘+cast(@sum as varchar(50))
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。