存储过程 视图 触发器 分页

存储过程
存储过程(Stored   (Procedure  这是语法的关键字)) 是一组为了完成特定功能的SQL, 语句集,经编译后存储在数据库,
     用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
     
存储过程的分类:
1)系统提供的存储过程,一般它是以sp开头的
2)自定义的存储过程,一般与我们的业务相关的。
  自定义的存储过程有可以分为有参数和无参数的存储过程。
  
  
  
创建一个存储过程,用来返回所有用户的信息。


select *from sysobjects where name = 'p_getinfo'
And type = 'p'
go         查询存储过程是否存在的语法

if exists (select 1 from sysobjects
where name ='p_getinfo'
   and type='p')   存储过程存在后面使用的语句(关键字   exists)
       
drop proc p_getinfo
go      删除存储过程的语法    

语法: create proc 存储过程名称 或 create procedure 存储过程名字      (systemproc系统的存储过程名字)
(p_getinfo 自定义的语法名字一般用P开头)

create procedure  p_getinfo  --无参的存储过程
as
begin  (用着区分语句的区别 用 begin  end)  
select * from tb_user
end 
go

--语句调用存储过程的语法

exec p_getinfo
go

完成一个存储过程,该存储过程实现的业务是用户登录,(用户输入的是用户名,和用户密码)
 登录成功输出OK,登录失败输出false 
 
 if exists (select 1 from sysobjects
    where name ='p_login'
    and type ='p')
drop procedure p_login
go
 
 create procedure p_login
 (
@username varchar(20), --用户名
@userpwd varchar(20)   --用户密码
@outresult varchar(20) out     --这是传出来的参数语句 
 )
 as
 declare @rowcount int   --定义一个变量
 
 begin
select @rowcount = COUNT(*) from tb_user
where username=@username
and userpwd=@userpwd
if @rowcount >0
set @outresult ='ok'
else
set @outresult ='false'
 end
 go
 --调用这个存储过程
 declare @result varchar(20)     -- 定义一个变量 关键字(declare)
 exec p_login 'zs','123',@result output
 print @result  --页面输出打印
 
 
 
 
 
 触发器
  create proc p_dekleteTeacher
  (
@teacherid char(3)
  )
  as
  delete from course where 教师号 =@teacherid;
  delete from teacher where 教师号 = @teacherid;
  go
  exec p_deleteTeacher '1001'
  go
Select * From sysobjects Where name='tg_deleteStudent'
go
if exists(Select 1 From sysobjects 
 Where name='tg_deleteStudent'
 And type='TR')
drop trigger tg_deleteStudent
go
  
   触发器的语法
  create trigger tg_deleteStudent
  on teacher           --on 表示该触发器作用于哪张表中或者哪个视图中。
  for delete     --for 表示该触发器的执行条件。 --for|after : 表示的是当执行完触发条件的语句成功的时候才会去执行这个触发器。
  as                                                           不能对视图进行after触发器。
  declare @teacheid varchar(20)
  select @teacheid = 教师号 from deleted

  deleted表:把表删除的信息放入到deleted表中,只能用于触发器中
  
 触发器调用:
 不能显示调用,满足触发条件会自动去执行.
 
 
 select * from tb_UserInfo inner join userrole on tb_UserInfo.roleid = userrole.roleid;
 
 视图
 视图是一张虚拟的表,
 create view view_aaaa
 as
 select 
 tb_UserInfo.Id,tb_UserInfo.name,userrole.rolename    --表名,列名
 from tb_UserInfo inner join userrole on tb_UserInfo.roleid = userrole.roleid
 go
 select * from view_aaaa   --查询视图表
 


 select top 1 * from tb_UserInfo where Id not in (select top 4 Id from tb_UserInfo) --分页的语句
-- 1 表示查询需要显示的条数, 4 表示去除前多少条数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值