Oracle数据库对象管理(实例介绍)

                   1.同义词管理

 

1.1同义词: 是指为表,视图和序列等对象起的另一个名字。

  

1.2同义词分为两种: 私有同义词和公有同义词。(语法上的区别在于公有同义词在创建时需加上public关键字,更加本质的区别在于使用范围的不同,公有同义词范围大。)

1.3语法规则:

   create [public]synonym<synonym_name>for<object_name>;

 

1.4举例说明:

   为表emp创建同义词

   create synonym employee for emp;

   下面两条select语句是等效的

(1)       select * from emp;

(2)       select * from employee;

 

   假设表emp1不存在,同样可以创建同义词。但必须在创建了表emp1后,所创建的同义词才可以使用,否则会有错“ORA-00980: 同义词转换不再有效”。

   如图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5删除同义词

  drop synonym<synonym_name>(私有同义词)

  drop public synonym<synonym_name>(公有同义词)

 

 

                        2.序列管理

 

2.1 Oracle序列是一个连续的数字生成器。序列常用于关键字,或给数据行排序。序列号可以被设置为上升或者下降,可以没有限制或重复使用直到一个限制值。

 

2.2 语法规则:

    create sequence<sequence_name>keyword

 

               2-1 create sequence个选项的含义

 

      keyword

              描述

     start with

 定义序列生成的第一个数字,默认为1

    increment by

 定义序列号是上升还是下降,对于一个降序列increment by为负值

    minvalue

 定义序列可以生成的最小值,这是降序序列中的限制值

    no minvalue

 没有最小值限制

    maxvalue

 序列能生成的最大数字。这是升序序列中的限制值

    no maxvalue

 没有最大限制值

    cycle

 设置序列值在达到限制值以后可以重复

    nocycle

 设置序列值在达到限制值以后不能重复,这是默认设置。当试图产生maxvalue+1的值时,将会产生一个异常。

    cache

 预先产生的序列个数,默认为20

    nocache

在每次序列号产生时强制数据字典更新,保证在序列值之间没有间隔

 

2.3举例说明:

   为表cm创建序列

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在创建过程中需注意:cache默认为20,也就是说Oracle可以预先在内存里面放置一些sequence,数量为20个。但是初始值100到最大值130,自动增长值为10,那也就是只有100,110,120,130四个,小于cache20,所以会出现图中错误.

 

 

 

 

  建立的序列后,就可以使用属性nextval取得序列的下一个值。第一次nextval返回的是初始值,随后nextval会自动增加定义的increment by ,然后返回增加后的值。属性currval总是返回当前sequence的值,但是,在第一次nextval初始化之后才能使用currval,否则会出错。

 

2.4修改序列

   alter sequence  cm _seq nocache;

2.5删除序列

   drop sequence cm_seq;

 

 

 

 

                        3.视图管理

3.1 视图是一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询的基础上的。

 

3.2 语法规则:

    create[or replace] [force|noforce] view<view_name>

    as select语句

    [with check option constraint[constraint_name]]

    [with read only]

 

3.3创建带错误的视图(注意加上force选项)

 

 

  

 

3.4  with check option with read only选项

  

(1)    with check option 子句的作用是在视图中不允许使用insert或者update命令来对选择的视图中的行进行插入和修改的操作。

如图说明:

 

  

(2)    with read only 可以完全禁止通过视图来修改表格资料,只需在create view句子加入with read only

如图说明:

 

 

 

3.5 删除视图

   Drop view <view_name>

   例如:drop view emp_v;

 

3.6 视图上的DML语句

 

q      在视图上也可以使用修改数据的DML语句,如INSERTUPDATEDELETE

q      视图上的DML语句有如下限制:

q      只能修改一个底层的基表

q      如果修改违反了基表的约束条件,则无法更新视图

q      如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图

q      如果视图包含伪列或表达式,则将无法更新视图

 

 

3.7 通过视图修改数据时需注意: 只有键保留表的列才能被修改。

什么是键保留表呢??

-----在创建视图时如果涉及到了主从表关系,并且如果一个表中的主键同时也当作视图中的主键。那么这个表就上键保留表。

 

                 4.索引管理

 

            

4.1创建索引时需注意的几个条件:

(1)表中重复数据不多(基数高)

(2)要是经常查询的表

(3)数据量多

(4)建索引的列是where子句/group by/order by/的条件列

(5)主键(唯一索引)

(6)不频繁进行行的增,删,改。

 

 

4.2语法规则:

可以基于数据库表中的单列或多列创建索引,语法如下:

create [unique] index <index_name> on<table_name>(col_name1,…….);

创建唯一索引只需在createindex间加上关键字unique

 

 

 

 

4.3

删除索引

   drop  index <index_name>

   例如:  drop index emp_ename_index;

 

4.4跟索引有关的数据字典:

 

(1)    user_indexes :用户创建的索引信息

(2)    user_ind_partitions:用户创建的分区索引的信息

(3)    user_ind_columns:索引相关的列的信息 

 

4.5创建各种类别的索引:

 

  (1)创建标准索引:CREATE INDEX item_index ON itemfile (itemcode)

TABLESPACE index_tbs;

 

  (2)重建索引:ALTER INDEX item_index REBUILD;

 

(4)    唯一索引:CREATE UNIQUE INDEX item_index  ON itemfile (itemcode);

 

  (5)反向键索引:

SQL> CREATE INDEX rev_index  ON itemfile (itemcode) REVERSE;

SQL> ALTER INDEX rev_index REBUID NOREVERSE;

 

(6)位图索引:SQL> CREATE BITMAP INDEX bit_index

                  ON order_master (orderno);

(7)索引组织表:SQL> CREATE TABLE ind_org_tab (

               vencode NUMBER(4) PRIMARY KEY,

               venname VARCHAR2(20)

                )

               ORGANIZATION INDEX;

(8)基于函数的索引:SQL> CREATE INDEX lowercase_idx

                       ON toys (LOWER(toyname));

                  SQL> SELECT toyid FROM toys

                        WHERE LOWER(toyname)='doll';

 

 

(9)组合索引:SQL> CREATE INDEX comp_index ON itemfile(p_category, itemrate);

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值