好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

视图、索引、存储过程 、触发器、游标及事务

视图、索引、存储过程 、触发器、游标及事务

视图、索引、存储过程 、触发器、游标及事务

1.视图不占物理存储空间,它只是一种逻辑对象。可将其看成一个"虚表"

  视图是一个由select 语句指定,用以检索数据库表中某些行或列数据的语句存储定义

   注:创建视图语句中,不能包括order by、compute或者compute by 子句,也不能出现into关键字

2.创建水平视图

  视图的常见用法是限制用户只能够存取表中的某些数据行,用这种方法产生的视图称为水平视图,即表中行的子集

 create   view   student_view1
as
select * from student

where (class_id = ' 0903 ' )

3.创建投影视图

  如果限制用户只能存取表中的部分列的数据,那么,使用这种方法创建的视图就称为投影视图,即表中列的子集

 create   view   student_view2
  as
select student_id as ' 学号 ' ,student_name as ' 姓名 ' ,sex as ' 性别 ' from student where sex = 1 with check option /* 强制视图上执行的所有修改语句必须符合由select 语句设置的准则 */

4.创建联合视图

  用户可以生成从多个表中提取数据的联合视图,把查询结果表示为一个单独的"可见表"

5.索引是数据库的对象之一,索引是为了加速对表中数据行的检索而创建的一种分散的一种存储结构。

  索引是针对一个表而建立的,它是由数据页面以外的索引页面组成的  

6.索引的分类

  聚簇索引

  数据表的物理顺序和索引表的顺序相同,它根据表中的一列或多列值的组合排列记录

 create   unique   clustered   index  book_id_index --  惟一性聚簇索引 

 on  book(book_id  asc  )

  with  

 fillfactor  =  50 /* 填充因子50%*/  

  非聚簇索引

 create   nonclustered   index   student_course_index

  on  student_course(student_id  asc ,course_id  asc  )

  with 
 
 fillfactor  =  50 

7.存储过程

  存储过程是一系列预先编辑好的、能实现特定数据操作功能的SQL代码集。它与特定的数据库相关联,存储在SQL Server 服务器上

  create   proc   spAddStudents
    @name    nvarchar ( 50 ) =  null 
   as 
   begin   transaction   --  事务 
   insert   into   [  StudentInfo  ] . [  dbo  ] . [  Students  ]  
  (Name)
    values  
  (  @name  )

    if   @@ERROR  <>  0 
   begin 
   rollback   tran 
   return 
   end 

   commit   transaction  --  提交事务 

 创建一个实现加法计算并将运算结果作为输出参数的存储过程

  create   proc   spAdd
    @value1   int  ,
    @value2   int  ,
    @result   int   output
    as 
   select   @result  =  @value1  +  @value2 
   go 

 执行spAdd存储过程

   declare   @value1   int 
   declare   @value2   int 
   declare   @result   int 
   set   @value1  =  1 
   set   @value2  =  1 
   exec  spAdd  @value1 , @value2 , @result   output
    print   convert ( char ( 5 ), @value1 )  +  '  +  '  +  convert ( char ( 5 ), @value2 )  +  '  =  '  +   convert ( char ( 5 ), @result )

8.触发器

  触发器是一种实施复杂数据完整性的特殊存储过程,在对表或视图执行update、insert或delete语句时自动触发执行,以防止对数据进行不正确、未授权或不一致的参数

 /*  创建update触发器  */ 
 create   trigger   [  dbo  ] . [  TaocanType_update  ]   on   [  dbo  ] . [  Table_TaocanType  ] 
 for   update  
 as 
 update   [  dbo  ] . [  Table_ChoseTaocanType  ]   set  Taocan =  inserted.Taocan
  from   [  dbo  ] . [  Table_ChoseTaocanType  ]  ,inserted  where   [  dbo  ] . [  Table_ChoseTaocanType  ] .TaocanId = inserted.TaocanId

  触发器能够维持两个表间的参照完整性,就像外键一样。外键执行这个任务的效率更高,因为它们在数据改变之前被测试,而不像触发器在数据改变后才触发

9.游标

  游标是一种处理数据的方法,为了查看或者处理结果集中的数据,游标提供了在结果集中向前或者向后浏览数据的能力

  (1)创建游标

  (2)打开游标

  (3)读取数据

  (4)数据操作

  (5)关闭和释放游标

   declare   @taocan   nvarchar ( 50 ), @youhui   nvarchar ( 50  )
declare taocan_cursor scroll cursor -- 声明游标 for select Taocan,youhui from [ 189Shop ] . [ dbo ] . [ Table_TaocanType ] for read only open taocan_cursor -- -打开游标 fetch from taocan_cursor into @taocan , @youhui -- 从游标中提取行 while @@FETCH_STATUS = 0 -- 表示成功完成FETCH 语句 begin print ' 套餐: ' + @taocan + ' ,优惠: ' + @youhui fetch from taocan_cursor into @taocan , @youhui end close taocan_cursor -- 关闭游标 deallocate taocan_cursor -- 释放游标

10.事务

  所谓事务,是指一个操作序列,这些操作序列要么都被执行,要么都不被执行,它是一个不可分割的工作单元

欢迎转载或分享,如果文章对你有帮助,请给予推荐,欢迎交流及关注!!!

 

分类:  SQL

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于视图、索引、存储过程 、触发器、游标及事务的详细内容...

  阅读:46次