`
zengshaotao
  • 浏览: 777726 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多

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 
asupdate [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.事务

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

分享到:
评论

相关推荐

    mysql高级部分--包含索引建立优化_函数_存储过程_触发器_及游标

    综上所述,MySQL中的索引、视图、触发器、游标、事务和存储过程都是高级特性,这些工具可以帮助开发人员更好地管理和操作数据库。通过对这些概念的理解和实践,可以大幅提升数据库应用的性能和可靠性。

    sql面试题目汇总 1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经 许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作  

    - 触发器是一种特殊的存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。其主要作用包括: - **维护数据完整性**:触发器可以帮助执行复杂的业务规则,确保数据在插入、更新或删除时...

    Oracle常用对象大全及实例详解.pdf

    Oracle数据库是世界上最流行的数据库管理系统之一,它包含了众多的对象类型,如表、索引、视图、同义词、函数、存储过程、触发器和包等。这些对象在数据库设计和管理中扮演着至关重要的角色。 1. **表**:表是...

    精通SQL 结构化查询语言详解

    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...

    Mysql面试题详解MySQL常见面试题汇总(建议收藏!!!)

    5. 触发器、函数、视图、存储过程的描述:触发器是指自动执行的存储过程,函数是指可以重复使用的代码,视图是指虚拟的表,存储过程是指可以重复使用的代码。 五、表结构相关 1. 主键的定义:主键是指表中的唯一...

    精通SQL--结构化查询语言详解

    15.3.5 使用enterprise manager创建存储过程和函数 315 15.3.6 修改和删除存储过程和函数 317 15.4 oracle中的流控制语句 319 15.4.1 条件语句 319 15.4.2 循环语句 320 15.4.3 标号和goto 322 15.5 oracle...

    最新SQL Server看图教程详解

    10. **高级特性**:SQL Server 2000虽然较旧,但仍然包含了触发器、游标、事务、数据库邮件等高级特性,这些可能会在教程中有所提及。 通过这个"看图教程",你可以直观地学习这些概念,每个步骤都配有图片,使得...

    数据库基础运用

    通过合理利用索引、视图、存储过程、触发器、游标等工具,以及深入理解事务和锁的工作原理,可以有效提升数据库应用的质量和用户体验。同时,关注内存管理,防止内存泄漏,也是保证数据库长期稳定运行的关键因素之一...

    精通SQL-结构化语言查询与详解.rar

    表是数据的主要存储结构,视图提供虚拟表,索引可以加速查询,存储过程和触发器则用于实现更复杂的业务逻辑。 4. **查询操作**:深入学习如何使用WHERE子句进行条件筛选,GROUP BY和HAVING子句进行分组和过滤,JOIN...

    Oracle详解ppt

    总的来说,这份Oracle详解资料提供了全面的学习路径,从基础的SQL语法到复杂的存储过程和触发器,对于想要深入了解Oracle数据库管理和开发的初学者来说,是一份极佳的资源。通过系统学习和实践,你将能够熟练掌握...

    数据库面试宝典面试宝典

    触发器是一种特殊类型的存储过程,它会在特定的数据库事件(如INSERT、UPDATE、DELETE等)发生时自动执行。触发器常用于加强数据的完整性约束,维护数据的完整性和一致性。触发器还可以实现复杂的业务逻辑,如联级...

    Oracle数据操作和控制语言详解

    - `CREATE`:用于创建表、视图、索引、序列、同义词、存储过程、函数等。 - `ALTER`:用于修改已存在的数据库对象,如增加或删除表字段、修改列属性、调整索引等。 - `DROP`:用于删除不再需要的数据库对象,如表...

    pl/sql详解(含可运行实例)

    PL/SQL可以直接操作表、视图、索引、触发器等数据库对象。例如,可以创建触发器以在特定事件(如INSERT、UPDATE或DELETE)发生时自动执行某项操作。 9. **游标**: 游标用于遍历SQL查询的结果集。在PL/SQL中,...

    oracle数据库常见面试题

    4. **PL/SQL**:PL/SQL是Oracle的编程语言,用于编写存储过程、函数、触发器等。理解其语法结构和异常处理机制。 5. **游标**:了解如何在PL/SQL中使用游标进行迭代处理,以及隐式游标和显式游标的区别。 6. **表...

    MySQL数据库工程师常见面试题

    ### MySQL数据库工程师常见面试题详解 #### 问题1:为什么GROUP BY和ORDER BY会使查询变慢? GROUP BY 和 ORDER BY 操作通常会增加查询的复杂度,从而导致性能下降。这是因为这两种操作通常需要对查询结果进行额外...

    sql语言详解

    触发器则是在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行的存储过程。 ```sql CREATE PROCEDURE procedure_name AS BEGIN -- SQL语句 END; CREATE TRIGGER trigger_name ON table_name AFTER INSERT AS ...

    SQL详解_oracle

    【SQL详解_oracle】 SQL(Structured Query Language,结构化查询语言)是用于管理和处理关系数据库的标准语言,Oracle数据库系统就是支持SQL的一种强大的关系型数据库管理系统。Oracle SQL在SQL的基础上进行了扩展...

    sql结构化查询语言详解--源代码

    此外,高级主题如存储过程、触发器、游标、事务处理和并发控制也是SQL的重要组成部分,可能会在教程中有所涉及。 总之,这份“sql结构化查询语言详解--源代码”资源将全面覆盖SQL的基础和进阶知识,结合实际代码...

    sql语句大全和SQL server精华

    SQL Server的经典手册通常包含以下几个部分:系统架构介绍、T-SQL(Transact-SQL,SQL Server的扩展语法)详解、索引和优化、存储过程、触发器、游标、函数、安全性管理、备份与恢复策略、故障排查和性能调优等。...

Global site tag (gtag.js) - Google Analytics