视图索引和游标.ppt_第1页
视图索引和游标.ppt_第2页
视图索引和游标.ppt_第3页
视图索引和游标.ppt_第4页
视图索引和游标.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、视图索引游标,视图,使用视图时,要注意下列事项: (1) 只有在当前数据库中才能创建视图。视图的命名必须遵循标识符命名规则,不能与表同名,且对每个用户视图名必须是唯一的,即对不同用户,即使是定义相同的视图,也必须使用不同的名字。 (2) 不能把规则、默认值或触发器与视图相关联。 (3) 不能在视图上建立任何索引,包括全文索引,视图与表(有时为与视图区别,也称表为基本表Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。,视图是从一个或多个表(或视图)导出的表。视图是数据库的

2、用户使用数据库的观点。,1 视图的概念,2 创建视图 1)在管理平台中创建 2)用命令创建,例:创建选修了课程且成绩合格的学生的信息的视图,Management Studio 创建视图,2)T-sql 语句 CREATE VIEW . . view_name ( column ,.n ) AS select_statement WITH CHECK OPTION , 定义视图的用户必须对所参照的表或视图有查询权限,即可执行SELECT语句。不能使用COMPUTE、COMPUTE BY 、ORDER BY 、INTO子句,以及临时表。,3 查询视图 4 更新视图 1)插入数据 2)修改数据 3)

3、删除视图 5 修改视图定义 1)在管理平台中修改 2)用命令修改,1.使用管理平台 2 使用t_sql语句 ALTER VIEW view_name (column,.n) WITHENCRYPTION ASselect_statement WITH CHECK OPTION 示例:为视图V_某班成绩加密,练习: 1 在student数据库中,以“学生”表为基础建立一个视图,其名称为“V_06RJGG001XS”。使用该视图可以查看“06软件工程001班(班级代码为060101001)”所有学生的信息。 2 为“V_06RJGG001XS”视图中添加一条新的学生记录。(班级代码为0601010

4、01) 3 显示视图和基表的内容 4 将“V_06RJGG001XS”视图中姓名为“李菲”的同学改为“李飞”。 5 删除“V_06RJGG001XS”视图中姓名为“李飞”的同学。 6 修改视图(添加with check option 选项) 7添加一条新的学生记录。 (班级代码为060102002),索引,索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。 在数据库系统中建立索引主要有以下作用: 快速存取数据; 保证数据记录的唯一性; 实现表与表之间的参照完整性; 在使用ORDER BY、GROUP BY子句进行数据检索时,利用索引可以减少排序和分组的时间。,二索引的分

5、类 1 聚集索引和非聚集索引(根据索引的存储结构不同) 1)聚集索引 (汉语字(词)典默认按拼音排序编排字典中的每页页码) 聚集索引是指表中数据行的物理存储顺序与索引顺序完全相同(排序)。聚集索引由上下两层组成,上层为索引页,包含表中的索引页面,用于数据检索,下层为数据页. 默认情况下为主键约束创建聚集索引.每个表只能有一个聚集索引。,2)非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。索引有序,表中数据无序 (按笔画排序的索引就是非聚集索引),创建索引,索引可以由系统自动创建也可以手工创建 创建主键约束、唯一约束时会自动创建索引 cre

6、ate table pp (sid int primary key, sname char(14) unique) SQL Server 2008提供了如下几种创建索引的方法: 1. 利用SQL Server管理平台创建索引; 2. 利用Transact-SQL语句中的CREATE INDEX命令创建索引。,二 利用t_sql语句 CREATE UNIQUE CLUSTERED| NONCLUSTERED INDEX index_name ON table | view ( column ASC | DESC ,.n ) with PAD_INDEX,FILLFACTOR=fillfactor

7、,IGNORE_DUP_KEY,DROP_EXISTING ,STATISTICS_NORECOMPUTE ,SORT_IN_TEMPDB ON filegroup ,例 1为sjzpt.student按学号升序建唯一索引. 2 sjzpt.score表按学号升序和课程号降序建唯一索引 3 在Student表的Sname(姓名)列上建立一个聚簇索引 (Student表中的记录将按照Sname值的升序存放 ) 4在sjzpt数据库中的student表上创建名为IX_sexbirth的聚集索引,该索引基于ssex列和sbirthday(降序)列创建。 练习:为班级表创建基于系部代码列的非聚集索引b

8、j_index,游标,声明游标 打开游标 读取数据,声明游标,T-SQL中声明游标使用DECLARE CURSOR语句,该语句有两种格式,分别支持SQL标准和T-SQL扩展的游标声明。 1. SQL语法 语句格式: DECLARE cursor_name INSENSITIVE SCROLL CURSOR FOR select_statement FOR READ ONLY | UPDATE OF column_name ,n ,2. T-SQL扩展 语句格式: DECLARE cursor_name CURSOR LOCAL | GLOBAL /*游标作用域*/ FORWORD_ONLY |

9、 SCROLL /*游标移动方向*/ STATIC | KEYSET | DYNAMIC | FAST_FORWARD /*游标类型*/ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC /*访问属性*/ TYPE_WARNING /*类型转换警告信息*/ FOR select_statement /*SELECT查询语句*/ FOR UPDATE OF column_name ,n /*可修改的列*/,打开游标,声明游标后,要使用游标从中提取数据,就必须先打开游标。在T-SQL中,使用OPEN语句打开游标,其格式为: OPEN GLOBAL cursor_name | cursor_variable_name ,【例】定义游标cursor1,然后打开该游标,输出其行数。 DECLARE cursor1 CURSOR STATIC FOR SELECT * from score OPEN cursor1 SELECT 游标cursor1数据行数 = CURSOR_ROWS,读取数据,游标打开后,就可以使用FETCH语句从中读取数据。 语法格式: FETCH NEXT | PRIOR | FIRST | LAST | ABSOLUTE n | nvar | RELATIVE n | nvar FROM GLOBAL cursor_name | c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论