版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章视图和索引定义与管理主讲教师:时间:202x.xx.xx01视图概述02视图管理03视图数据的更新04索引概述目录CONTNETS05索引管理01PARTONE9.1.1视图概述9.1.2视图的优势9.1.3视图的工作机制
作为常用的数据库对象,视图(View)为数据查询提供了一条捷径;视图是一个虚拟表,其内容由查询定义,即视图中的数据并不像表、索引那样需要占用存储空间,其数据源来自于数据库表,或者其他视图。视图是存储在数据库中的查询SQL语句,使用它主要出于两种原因:第一是安全原因,视图可以隐藏一些数据,例如,学生信息表,可以用视图只显示学号、姓名、性别、班级,而不显示年龄和家庭住址信息等;第二是可使复杂的查询易于理解和使用。视图概述增强数据安全性同一个数据库表可以创建不同的视图,为不同的用户分配不同的视图,这样就可以实现不同的用户只能查询或修改与之对应的数据,继而增强了数据的安全访问控制。提高灵活性,操作变简单有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。提高数据的逻辑独立性使用视图可以向应用程序屏蔽表结构。使用视图可以向数据库表屏蔽应用程序。010203视图的优势视图的优势当调用视图的时候,才会执行视图中的SQL语句,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是和真实表的内容是一致的。视图这样的设计最主要的好处就是比较节省空间,当数据内容总是一样时,就不需要维护视图的内容,维护真实表的内容,就可以保证视图的完整性。视图的工作机制01视图概述02视图管理03视图数据的更新04索引概述目录CONTNETS05管理索引02PARTTWO9.2.1创建视图9.2.2查询视图9.2.3视图的修改9.2.4视图的编译9.2.5删除视图视图是一个从单张或多张基础数据表或其他视图中构建出来的虚拟表,因此除了使用创建视图的关键字CREATEVIEW外,还必须使用SQL语句中的SELECT语句来实现视图的创建。创建视图的SQL语法如下所示:CREATE[ORREPLACE]VIEW[<模式名>.]<视图名>[(<列名>{,<列名>})]AS<查询说明>[WITH[LOCAL|CASCADED]CHECKOPTION]|[withreadonly];注意:使用视图查询时,若其关联的基本表中添加了新字段,则该视图将不包含新字段。如果与视图相关联的表或视图被删除,则该视图将不能使用。视图创建语法【例9-1】在DMHR模式下员工表EMPLOYEE上创建一个简单的视图,视图名为V_EMP,获取员工编码、名称、邮箱和手机号码等信息。create
viewv_empas
selecta.employee_id,a.employee_name,a.email,a.phone_numfromdmhr.employeea;【例9-2】在student表上创建一个名为student_view2的视图,包含学生的姓名、课程名以及对应的成绩。create
view"jxgl"."student_view2"(sname,cname,grade)as
selectsname,cname,grade
from"jxgl"."student"s,"jxgl"."course"c,"jxgl"."sc"scwheres.sno=sc.sno
andsc.cno=c.cno;视图创建示例
视图一旦定义成功,对基表的所有查询操作都可用于视图。对于用户来说,视图和基表在进行查询操作时没有区别。
可以查询user_views或dba_views表来获取视图的定义。如为:select*fromuser_viewswheretable_name='视图名’;【例9-3】查询V_EMP视图获取员工马学铭的信息。select*fromv_empvwherev.employee_name='马学铭';视图的查询DM数据库中通过CREATEORREPLACEVIEW语句来修改视图。语法格式:CREATEORREPLACE[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEW视图名[{属性清单}]ASSELECT语句[WITH[CASCADED|LOCAL]CHECKOPTION];视图修改语法【例9-4】使用CREATEORREPLACEVIEW修改视图student_view2的列名为姓名、选修课、成绩。create
or
replace
view"jxgl"."student_view2"("姓名","选修课","成绩")
as
select"sname","cname","grade"
from"jxgl"."student"s,"jxgl"."course"c,"jxgl"."sc"sc
wheres."sno"=sc."sno"
andc."cno"=sc."cno";视图修改示例视图依赖于其基表或视图,如果基表定义发生改变,如增删一列,或者视图的相关权限发生改变,可能导致视图无法使用。在这种情况下,可对视图重新编译,检查视图的合法性。编译视图的语法格式如下:ALTERVIEW[<模式名>.]<视图名>COMPILE;视图的编译【例9-5】把v_emp视图重新编译。alter
viewv_empcompile;删除视图时,只能删除视图的定义,不会删除数据。语法格式如下。DROPVIEW[IFEXISTS][<模式名>.]<视图名>[RESTRICT|CASCADE];使用说明:删除不存在的视图会报错。若指定IFEXISTS关键字,则不会报错。视图删除有两种方式:RESTRICT/CASCADE。其中RESTRICT为缺省值。当该视图对象被其他对象依赖时,用户在删除视图时必须带CASCADE参数,系统会将依赖于该视图的其他数据库对象一并删除。视图的删除【例9-6】删除视图V_EMP。drop
view
if
existsv_emp;01视图概述02视图管理03视图数据的更新04索引概述目录CONTNETS05索引管理视图是一张虚拟表,保存的只是视图的定义,并不保存数据,所以我们所做的更新视图的操作实际上是对基本表的增加、删除和更新操作。下面我们将针对视图的三种更新操作以及更新视图时的限制条件进行详细讲解。视图更新03PARTTHREE9.3.1插入数据9.3.2修改数据9.3.3删除数据【例9-7】使用SQL语句创建v_student视图。通过v_student向student表中添加一条新的数据记录,sno、sname、ssex、sbirth、zno、sclass字段的值分别为'2021061001','刘青新','男','2021-6-10','1520','小二班'。create
viewv_studentas
select*fromstudent;insert
intov_student(sno,sname,ssex,sbirth,zno,sclass)values('2021061001',
'刘青新',
'男',
'2021-6-10',
'1520',
'小二班’);commit;视图插入数据示例插入后使用SELECT语句查看v_student视图和student表中是否存在添加的数据。select*fromv_studentwheresno='2021061001';select*fromv_studentwheresno='2021061001';视图插入数据示例【例9-8】使用UPDATE语句更新视图。通过修改v_student视图将student表中sname为“刘青新”的ssex修改为“女”(“刘青新”原性别为“男”)。updatev_studentsetssex='女'
wheresname='刘青新';视图更新数据示例【例9-9】使用DELETE语句通过视图删除数据。通过v_student视图删除student表中sname为“刘青新”的信息。delete
fromv_studentwheresname='刘青新';视图删除数据示例01视图概述02视图管理03视图数据的更新04索引概述目录CONTNETS05索引管理索引与书的目录非常相似,由数据表中一列或者多列组合而成,创建索引的目的是为了优化数据库的查询速度。DM8提供了6种最常见类型的索引:聚集索引:每一个普通表有且只有一个聚集索引。非聚集索引:DM默认创建的索引为非聚簇索引,一个表可以有多个非聚簇索引;唯一索引:索引数据根据索引键唯一。函数索引:包含函数/表达式的预先计算的值。位图索引:对低基数的列创建位图索引。全文索引:通过建立索引,可以极大的提升检索效率,解决判断字段是否包含的问题,一般在表的文本列上的索引。索引概述索引需要存储空间。创建或删除一个索引,不会影响基本表、数据库应用或其他索引。一个索引可以对应数据表的一个或多个字段,对每个字段设置索引结果排序方式,默认为按字段值递增排序ASC,也可以指定为递减排序DESC。当插入、更改或删除相关表的行时,DM8会自动管理索引。如果删除索引,所有的应用仍继续工作,但访问数据的速度会变慢。索引可以提高数据的查询效率,但也需要注意,索引会降低某些命令的执行效率,如INSERT、UPDATA、DELETE的性能,因为DM不但要维护基表数据,还要维护索引数据。索引概述01视图概述02视图管理03视图数据的更新04索引概述目录CONTNETS05索引管理05PARTFIVE9.5.1创建索引9.5.2修改索引9.5.3删除索引创建索引语法格式如下:CREATE[ORREPLACE][CLUSTER|NOTPARTIAL][UNIQUE|BITMAP|SPATIAL]INDEX<索引名>ON[<模式名>.]<表名>(<索引列定义>{,<索引列定义>})[GLOBAL][<STORAGE子句>][NOSORT][ONLINE];以上语法可以创建普通索引、聚簇索引、唯一索引、位图索引等。ON关键字表示在哪个表的哪个字段上建立索引,字段的类型不能是多媒体类型。在字段后面指定索引排序方式,ASC递增排序,DESC递减排序,默认递增排序。STORAGE子句设置索引存储表空间,默认与对应表的表空间相同。创建索引语法【例9-10】索引创建举例。1.建立普通索引创建T_EMP表,表结构和数据来源于DMHR模式下EMPLOYEE表,为T_EMP表的EMPLOYEE_ID字段建立索引,索引名为IX_EMP_EMPID。create
table
t_emplike
dmhr.employee;create
indexix_emp_empidONt_emp(employee_id);2.建立唯一索引为t_emp表的email字段建立唯一索引,索引名为ix_emp_email。create
unique
index
ix_emp_emailon
t_emp(email);3.建立组合索引为t_emp表的employee_id,department_id字段建立组合索引。create
index
ix_emp_deptempidon
t_emp(employee_id,department_id);
创建索引示例(SQL)可以使用DM管理工具图形化界面创建索引。如下图所示。创建索引示例(图形化界面方式)查询dba_indexes和dba_ind_columns可以查看索引和索引列信息:索引查看select*fromuser_indexestwheret.table_name='T_EMP';select*fromuser_ind_columnstwheret.table_name='T_EMP';05PARTFIVE9.5.1创建索引9.5.2修改索引9.5.3删除索引DM支持索引的修改,包括修改索引名称、设置索引的查询计划可见性、改变索引有效性、重建索引和索引监控的功能。语法格式:ALTERINDEX[<模式名>.]<索引名><修改索引定义子句><修改索引定义子句>::=RENAMETO[<模式名>.]<索引名>|INVISIBLE|VISIBLE|UNUSABLE|REBUILD[NOSORT][ONLINE][<重建方式>]|<MONITORING|NOMONITORING>USAGE修改索引语法【例9-11】
修改索引示例1、将索引ix_emp_empid重命名为ix_emp_id。alter
indexix_emp_empidrename
toix_emp_id;2、修改索引ix_emp_id为无效状态。alter
indexix_emp_deptempidUNUSABLE;3、重建索引ix_emp_id(失效的索引重建后将会生效)。alter
indexix_emp_deptempidonline;修改索引示例默认索引创建后是可见(VISIBLE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 再生资源分类利用中心项目经济效益和社会效益分析报告
- 锂离子电池隔膜生产线项目社会稳定风险评估报告
- 2026学年黑龙江省五大连池市六年级语文期末高分重点黑金模拟题(详细参考解析)详细答案和解析
- 市场规模发展态势监测体系构建
- 区块链助力小学英语口语教学数据存储与评价体系构建教学研究课题报告
- 2026年注册测绘工程师模拟试卷及答
- 2026年人力资源专业模拟试卷
- 2026年申论大作文高分范文
- 2026年消防演练知识讲座
- 小学语文教学中人工智能辅助的学生迁移能力培养策略研究教学研究课题报告
- 2026贵州安顺市平坝区粮油收储经营有限公司招聘综合及排名笔试历年常考点试题专练附带答案详解
- 2025-2026学年衡阳市中考押题化学预测卷(含答案解析)
- 2026年南京信息职业技术学院单招职业技能考试题库及答案详解(真题汇编)
- 中国通 用技术集团招聘笔试题库2026
- 2025年事业编参公过渡性考试及答案
- 2026年高考新高考二卷语文作文试题(附答案)
- GB/T 31897.201-2025灯具性能第2-1部分:特殊要求LED灯具
- 威海环翠文旅发展集团有限公司招聘笔试题库2025
- 中药材安全与监控题库及答案解析
- 军队建设工程质量管理条例
- 2025宁夏旅游投资集团有限公司招聘16人(第二批)笔试备考题库及答案解析
评论
0/150
提交评论