oracle中视图可以创建索引吗?

oracle中视图可以创建索引吗?,第1张

oracle中视图可以创建索引,创建索引方法为:

1、打开Navicat。

2、右击oracle数据库,然后点击【打开连接】。

3、点击【其它】,然后点击【索引】,此时显示oracle数据库中所有的索引。

4、点击【新建索引】,进入索引设计界面。

5、在【常规】标签页,设置类型、表格式、表名、列名等。

6、在【高级】标签页,设置表空间、记录等选项。

7、点击【保存】,输入索引名称,然后点击【确定】。

Oracle数据库之视图与索引

1. 视图简介

视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。

视图基于的表称为基表,视图是存储在数据字典里的一条SELECT语句。通过创建视图可以提取数据的逻辑上的集合或组合。

我们可以像使用表一样使用视图,但需要注意的是:查询视图没有什么限制,插入/更新/删除视图的 *** 作会受到一定的限制;所有针对视图的 *** 作都会影响到视图的基表;为了防止用户通过视图间接修改基表的数据,可以将视图创建为只读视图(带上with read only选项)。

2. 创建视图

语法:

复制代码

复制代码

CREATE [OR REPLACE]

[[NO] FORCE] [EDITIONING] VIEW [schema.] view_name

[ ( { alias [ inline_constraint... ]

| out_of_line_constraint

}

[, { alias [ inline_constraint...]

| out_of_line_constraint

}

]

)

| object_view_clause

| XMLType_view_clause

]

AS subquery [ subquery_restriction_clause ]

复制代码

复制代码

说明:

FORCE:”强制”创建视图,不考虑基表是否存在,也不考虑是否具有使用基表的权限。

alias:视图的列别名,别名的个数必须与SELECT查询中列的个数相同,如果SELECT查询包含函数或表达式,则必须为其定义列别名。

subquery:查询语句。

subquery_restriction_clause:查询语句限制:

WITH { READ ONLY

| CHECK OPTION

} [ CONSTRAINT constraint ]

READ ONLY:创建的视图只能用于查询数据,而不能用于更改数据。

CHECK OPTION:指定对视图执行的dml *** 作必须满足“视图子查询”的条件,即对通过视图进行的增删改 *** 作进行“检查”,要求增删改 *** 作的数据,必须是SELECT查询所能查询到的数据,否则不允许 *** 作并返回错误提示。

完整的语法结构及说明见:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_8004.htm#SQLRF01504

示例:

复制代码

复制代码

CREATE OR REPLACE VIEW vw_dept (name,minsal,maxsal,avgsal)

AS

SELECT d.dname,min(e.salary),max(e.salary),avg(e.salary)

FROM employee e, dept d

WHERE e.did=d.id

GROUP BY d.dname

WITH READ ONLY

复制代码

复制代码

3. 视图的优点

简化对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。

用户通过简单的查询可以从复杂查询中得到结果。

维护数据的独立性,视图可从多个表中检索数据。

对于相同的数据可产生不同的视图。

提供各种数据表现形式,可以使用各种不同的方式将基表的数据展现在用户面前,以便符合用户的使用习惯。

提供安全性保证,视图提供了一种可以控制的方式,即可以让不同的用户看见不同的列,而不允许访问那些敏感的列,这样就可以保证敏感数据不被用户看见。

简化用户权限的管理,可以将视图的权限授予用户,而不必将基表中某些列的权限授予用户,这样就简化了用户权限的定义。

4. 索引

为了提高查询的速度,当用户对查询速度不满意而需要对数据库的性能进行调校时,优先考虑建立索引。

创建索引语法:

CREATE [UNIQUE] INDEX index_name

ON table(column1 [ASC | DESC] [, column2 [ASC | DESC] ]... ...)

示例:

CREATE INDEX idx_ename ON employee (ename, sal DESC)

适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引。

向表中“添加”行或从表中“删除”行时,必须花费额外的时间来更新该表的索引,所以当需要从大表中检索少数几行时创建索引。一般我们认为当任何单个查询要检索的行小于整个表总行数的10%时,索引就非常有用。

表的主键和唯一键将自动创建索引。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10046747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存